3057 Remove sgml util from cmd/man
authorYuri Pankov <yuri.pankov@nexenta.com>
Sat, 18 Aug 2012 05:52:16 -0500
changeset 13833 1d7e7613366b
parent 13832 80b84226b49f
child 13834 cd512c80fd75
child 13977 5b2230e6150a
3057 Remove sgml util from cmd/man Reviewed by: Garrett D'Amore <[email protected]> Reviewed by: Gary Mills <[email protected]> Approved by: Richard Lowe <[email protected]>
exception_lists/check_rtime
usr/src/cmd/man/src/Makefile
usr/src/cmd/man/src/util/Makefile
usr/src/cmd/man/src/util/THIRDPARTYLICENSE
usr/src/cmd/man/src/util/THIRDPARTYLICENSE.descrip
usr/src/cmd/man/src/util/aap-shortref.gml
usr/src/cmd/man/src/util/allisoents.gml
usr/src/cmd/man/src/util/ati-dflt.dcl
usr/src/cmd/man/src/util/ati-eqn1.gml
usr/src/cmd/man/src/util/ati-graph.gml
usr/src/cmd/man/src/util/ati-math.elm
usr/src/cmd/man/src/util/ati-num.gml
usr/src/cmd/man/src/util/ati-tbl.elm
usr/src/cmd/man/src/util/atilogo.eps
usr/src/cmd/man/src/util/basic.dcl
usr/src/cmd/man/src/util/cals-tbl.elm
usr/src/cmd/man/src/util/capref.gml
usr/src/cmd/man/src/util/catalog
usr/src/cmd/man/src/util/caution.eps
usr/src/cmd/man/src/util/core.gml
usr/src/cmd/man/src/util/docbook-to-man.ts
usr/src/cmd/man/src/util/ereview.gml
usr/src/cmd/man/src/util/html-latin.sgml
usr/src/cmd/man/src/util/instant.src/Makefile
usr/src/cmd/man/src/util/instant.src/README
usr/src/cmd/man/src/util/instant.src/THIRDPARTYLICENSE.descrip
usr/src/cmd/man/src/util/instant.src/allVersion.c
usr/src/cmd/man/src/util/instant.src/browse.c
usr/src/cmd/man/src/util/instant.src/general.h
usr/src/cmd/man/src/util/instant.src/hyper.c
usr/src/cmd/man/src/util/instant.src/info.c
usr/src/cmd/man/src/util/instant.src/main.c
usr/src/cmd/man/src/util/instant.src/masterVersion.c
usr/src/cmd/man/src/util/instant.src/tables.c
usr/src/cmd/man/src/util/instant.src/tptregexp/Imakefile
usr/src/cmd/man/src/util/instant.src/tptregexp/Makefile
usr/src/cmd/man/src/util/instant.src/tptregexp/README
usr/src/cmd/man/src/util/instant.src/tptregexp/README.osf
usr/src/cmd/man/src/util/instant.src/tptregexp/regerror.c
usr/src/cmd/man/src/util/instant.src/tptregexp/regexp.3
usr/src/cmd/man/src/util/instant.src/tptregexp/regexp.c
usr/src/cmd/man/src/util/instant.src/tptregexp/regmagic.h
usr/src/cmd/man/src/util/instant.src/tptregexp/regsub.c
usr/src/cmd/man/src/util/instant.src/tptregexp/strerror.c
usr/src/cmd/man/src/util/instant.src/tptregexp/tests
usr/src/cmd/man/src/util/instant.src/tptregexp/timer.c
usr/src/cmd/man/src/util/instant.src/tptregexp/tptregexp.h
usr/src/cmd/man/src/util/instant.src/tptregexp/try.c
usr/src/cmd/man/src/util/instant.src/traninit.c
usr/src/cmd/man/src/util/instant.src/translate.c
usr/src/cmd/man/src/util/instant.src/translate.h
usr/src/cmd/man/src/util/instant.src/tranvar.c
usr/src/cmd/man/src/util/instant.src/util.c
usr/src/cmd/man/src/util/iso-amsa.gml
usr/src/cmd/man/src/util/iso-amsb.gml
usr/src/cmd/man/src/util/iso-amsc.gml
usr/src/cmd/man/src/util/iso-amsn.gml
usr/src/cmd/man/src/util/iso-amso.gml
usr/src/cmd/man/src/util/iso-amsr.gml
usr/src/cmd/man/src/util/iso-box.gml
usr/src/cmd/man/src/util/iso-cyr1.gml
usr/src/cmd/man/src/util/iso-cyr2.gml
usr/src/cmd/man/src/util/iso-dia.gml
usr/src/cmd/man/src/util/iso-grk1.gml
usr/src/cmd/man/src/util/iso-grk2.gml
usr/src/cmd/man/src/util/iso-grk3.gml
usr/src/cmd/man/src/util/iso-grk4.gml
usr/src/cmd/man/src/util/iso-lat1.gml
usr/src/cmd/man/src/util/iso-lat2.gml
usr/src/cmd/man/src/util/iso-num.gml
usr/src/cmd/man/src/util/iso-pub.gml
usr/src/cmd/man/src/util/iso-tech.gml
usr/src/cmd/man/src/util/nsgmls.src/COPYING
usr/src/cmd/man/src/util/nsgmls.src/COPYING.descrip
usr/src/cmd/man/src/util/nsgmls.src/Makefile
usr/src/cmd/man/src/util/nsgmls.src/Makefile.comm
usr/src/cmd/man/src/util/nsgmls.src/Makefile.lib
usr/src/cmd/man/src/util/nsgmls.src/Makefile.prog
usr/src/cmd/man/src/util/nsgmls.src/VERSION
usr/src/cmd/man/src/util/nsgmls.src/doc/Makefile
usr/src/cmd/man/src/util/nsgmls.src/doc/archform.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/build.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/catalog
usr/src/cmd/man/src/util/nsgmls.src/doc/catalog.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/features.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/generic.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/ideas.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/index.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/new.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/nsgmls.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/sgmldecl.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/sgmlnorm.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/sgmlsout.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/spam.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/spent.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/sysdecl.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/sysid.htm
usr/src/cmd/man/src/util/nsgmls.src/doc/winntu.htm
usr/src/cmd/man/src/util/nsgmls.src/generic/EventGenerator.h
usr/src/cmd/man/src/util/nsgmls.src/generic/ParserEventGeneratorKit.h
usr/src/cmd/man/src/util/nsgmls.src/generic/SGMLApplication.h
usr/src/cmd/man/src/util/nsgmls.src/include/Allocator.h
usr/src/cmd/man/src/util/nsgmls.src/include/ArcEngine.h
usr/src/cmd/man/src/util/nsgmls.src/include/Attribute.h
usr/src/cmd/man/src/util/nsgmls.src/include/Attributed.h
usr/src/cmd/man/src/util/nsgmls.src/include/Big5CodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/Boolean.h
usr/src/cmd/man/src/util/nsgmls.src/include/CharMap.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/CharMap.h
usr/src/cmd/man/src/util/nsgmls.src/include/CharsetDecl.h
usr/src/cmd/man/src/util/nsgmls.src/include/CharsetInfo.h
usr/src/cmd/man/src/util/nsgmls.src/include/CharsetRegistry.h
usr/src/cmd/man/src/util/nsgmls.src/include/CmdLineApp.h
usr/src/cmd/man/src/util/nsgmls.src/include/CodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/CodingSystemKit.h
usr/src/cmd/man/src/util/nsgmls.src/include/ConsoleOutput.h
usr/src/cmd/man/src/util/nsgmls.src/include/ContentState.h
usr/src/cmd/man/src/util/nsgmls.src/include/ContentToken.h
usr/src/cmd/man/src/util/nsgmls.src/include/CopyOwner.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/CopyOwner.h
usr/src/cmd/man/src/util/nsgmls.src/include/DescriptorManager.h
usr/src/cmd/man/src/util/nsgmls.src/include/Dtd.h
usr/src/cmd/man/src/util/nsgmls.src/include/EUCJPCodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/ElementType.h
usr/src/cmd/man/src/util/nsgmls.src/include/Entity.h
usr/src/cmd/man/src/util/nsgmls.src/include/EntityApp.h
usr/src/cmd/man/src/util/nsgmls.src/include/EntityCatalog.h
usr/src/cmd/man/src/util/nsgmls.src/include/EntityDecl.h
usr/src/cmd/man/src/util/nsgmls.src/include/EntityManager.h
usr/src/cmd/man/src/util/nsgmls.src/include/ErrnoMessageArg.h
usr/src/cmd/man/src/util/nsgmls.src/include/ErrorCountEventHandler.h
usr/src/cmd/man/src/util/nsgmls.src/include/Event.h
usr/src/cmd/man/src/util/nsgmls.src/include/EventsWanted.h
usr/src/cmd/man/src/util/nsgmls.src/include/ExtendEntityManager.h
usr/src/cmd/man/src/util/nsgmls.src/include/ExternalId.h
usr/src/cmd/man/src/util/nsgmls.src/include/Fixed2CodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/GenericEventHandler.h
usr/src/cmd/man/src/util/nsgmls.src/include/Hash.h
usr/src/cmd/man/src/util/nsgmls.src/include/HashTable.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/HashTable.h
usr/src/cmd/man/src/util/nsgmls.src/include/HashTableItemBase.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/HashTableItemBase.h
usr/src/cmd/man/src/util/nsgmls.src/include/IList.h
usr/src/cmd/man/src/util/nsgmls.src/include/IListBase.h
usr/src/cmd/man/src/util/nsgmls.src/include/IListIter.h
usr/src/cmd/man/src/util/nsgmls.src/include/IListIterBase.h
usr/src/cmd/man/src/util/nsgmls.src/include/IQueue.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/IQueue.h
usr/src/cmd/man/src/util/nsgmls.src/include/ISO8859InputCodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/ISet.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/ISet.h
usr/src/cmd/man/src/util/nsgmls.src/include/ISetIter.h
usr/src/cmd/man/src/util/nsgmls.src/include/IdentityCodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/InputSource.h
usr/src/cmd/man/src/util/nsgmls.src/include/InternalInputSource.h
usr/src/cmd/man/src/util/nsgmls.src/include/Link.h
usr/src/cmd/man/src/util/nsgmls.src/include/LinkProcess.h
usr/src/cmd/man/src/util/nsgmls.src/include/List.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/List.h
usr/src/cmd/man/src/util/nsgmls.src/include/ListIter.h
usr/src/cmd/man/src/util/nsgmls.src/include/LiteralStorage.h
usr/src/cmd/man/src/util/nsgmls.src/include/Location.h
usr/src/cmd/man/src/util/nsgmls.src/include/Lpd.h
usr/src/cmd/man/src/util/nsgmls.src/include/Markup.h
usr/src/cmd/man/src/util/nsgmls.src/include/Message.h
usr/src/cmd/man/src/util/nsgmls.src/include/MessageArg.h
usr/src/cmd/man/src/util/nsgmls.src/include/MessageBuilder.h
usr/src/cmd/man/src/util/nsgmls.src/include/MessageEventHandler.h
usr/src/cmd/man/src/util/nsgmls.src/include/MessageFormatter.h
usr/src/cmd/man/src/util/nsgmls.src/include/MessageReporter.h
usr/src/cmd/man/src/util/nsgmls.src/include/MessageTable.h
usr/src/cmd/man/src/util/nsgmls.src/include/Mode.h
usr/src/cmd/man/src/util/nsgmls.src/include/NCVector.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/NCVector.h
usr/src/cmd/man/src/util/nsgmls.src/include/NCVector.h.dist
usr/src/cmd/man/src/util/nsgmls.src/include/NCVector.sed
usr/src/cmd/man/src/util/nsgmls.src/include/Named.h
usr/src/cmd/man/src/util/nsgmls.src/include/NamedResource.h
usr/src/cmd/man/src/util/nsgmls.src/include/NamedResourceTable.h
usr/src/cmd/man/src/util/nsgmls.src/include/NamedTable.h
usr/src/cmd/man/src/util/nsgmls.src/include/Notation.h
usr/src/cmd/man/src/util/nsgmls.src/include/NotationStorage.h
usr/src/cmd/man/src/util/nsgmls.src/include/OpenElement.h
usr/src/cmd/man/src/util/nsgmls.src/include/Options.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/Options.h
usr/src/cmd/man/src/util/nsgmls.src/include/OutputByteStream.h
usr/src/cmd/man/src/util/nsgmls.src/include/OutputCharStream.h
usr/src/cmd/man/src/util/nsgmls.src/include/Owner.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/Owner.h
usr/src/cmd/man/src/util/nsgmls.src/include/OwnerTable.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/OwnerTable.h
usr/src/cmd/man/src/util/nsgmls.src/include/ParserApp.h
usr/src/cmd/man/src/util/nsgmls.src/include/ParserOptions.h
usr/src/cmd/man/src/util/nsgmls.src/include/PointerTable.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/PointerTable.h
usr/src/cmd/man/src/util/nsgmls.src/include/PosixStorage.h
usr/src/cmd/man/src/util/nsgmls.src/include/Ptr.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/Ptr.h
usr/src/cmd/man/src/util/nsgmls.src/include/RangeMap.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/RangeMap.h
usr/src/cmd/man/src/util/nsgmls.src/include/Resource.h
usr/src/cmd/man/src/util/nsgmls.src/include/RewindStorageObject.h
usr/src/cmd/man/src/util/nsgmls.src/include/SJISCodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/SOEntityCatalog.h
usr/src/cmd/man/src/util/nsgmls.src/include/Sd.h
usr/src/cmd/man/src/util/nsgmls.src/include/SdText.h
usr/src/cmd/man/src/util/nsgmls.src/include/SearchResultMessageArg.h
usr/src/cmd/man/src/util/nsgmls.src/include/SgmlParser.h
usr/src/cmd/man/src/util/nsgmls.src/include/ShortReferenceMap.h
usr/src/cmd/man/src/util/nsgmls.src/include/StdioStorage.h
usr/src/cmd/man/src/util/nsgmls.src/include/StorageManager.h
usr/src/cmd/man/src/util/nsgmls.src/include/StringC.h
usr/src/cmd/man/src/util/nsgmls.src/include/StringOf.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/StringOf.h
usr/src/cmd/man/src/util/nsgmls.src/include/StringResource.h
usr/src/cmd/man/src/util/nsgmls.src/include/SubstTable.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/SubstTable.h
usr/src/cmd/man/src/util/nsgmls.src/include/Syntax.h
usr/src/cmd/man/src/util/nsgmls.src/include/Text.h
usr/src/cmd/man/src/util/nsgmls.src/include/TranslateCodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/TranslateInputCodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/TypeId.h
usr/src/cmd/man/src/util/nsgmls.src/include/URLStorage.h
usr/src/cmd/man/src/util/nsgmls.src/include/UTF8CodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/UnicodeCodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/UnivCharsetDesc.h
usr/src/cmd/man/src/util/nsgmls.src/include/Vector.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/Vector.h
usr/src/cmd/man/src/util/nsgmls.src/include/Win32CodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/WinApp.h
usr/src/cmd/man/src/util/nsgmls.src/include/WinInetStorage.h
usr/src/cmd/man/src/util/nsgmls.src/include/XMLCodingSystem.h
usr/src/cmd/man/src/util/nsgmls.src/include/XcharMap.cxx
usr/src/cmd/man/src/util/nsgmls.src/include/XcharMap.h
usr/src/cmd/man/src/util/nsgmls.src/include/config.h
usr/src/cmd/man/src/util/nsgmls.src/include/constant.h
usr/src/cmd/man/src/util/nsgmls.src/include/macros.h
usr/src/cmd/man/src/util/nsgmls.src/include/rtti.h
usr/src/cmd/man/src/util/nsgmls.src/include/sptchar.h
usr/src/cmd/man/src/util/nsgmls.src/include/types.h
usr/src/cmd/man/src/util/nsgmls.src/include/xnew.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Allocator.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ArcEngine.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ArcEngineMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/ArcProcessor.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Attribute.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Big5CodingSystem.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/CatalogEntry.h
usr/src/cmd/man/src/util/nsgmls.src/lib/CatalogMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/CharsetDecl.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/CharsetInfo.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/CharsetRegistry.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/CmdLineApp.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/CmdLineAppMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/CodingSystem.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/CodingSystemKit.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ConsoleOutput.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ContentState.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ContentToken.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/DescriptorManager.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Dtd.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/EUCJPCodingSystem.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ElementType.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Entity.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/EntityApp.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/EntityCatalog.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/EntityDecl.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/EntityManager.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/EntityManagerMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/EquivClass.h
usr/src/cmd/man/src/util/nsgmls.src/lib/ErrnoMessageArg.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ErrorCountEventHandler.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Event.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/EventGenerator.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/EventQueue.h
usr/src/cmd/man/src/util/nsgmls.src/lib/ExtendEntityManager.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ExternalId.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Fixed2CodingSystem.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/GenericEventHandler.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Group.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Group.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Hash.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/IListBase.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Id.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Id.h
usr/src/cmd/man/src/util/nsgmls.src/lib/IdentityCodingSystem.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/InputSource.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/InternalInputSource.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Link.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/LinkProcess.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/LiteralStorage.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Location.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Lpd.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/LpdEntityRef.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Makefile.sub
usr/src/cmd/man/src/util/nsgmls.src/lib/Markup.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/MarkupScan.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Message.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/MessageArg.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/MessageEventHandler.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/MessageFormatter.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/MessageFormatterMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/MessageReporter.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/MessageReporterMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/MessageTable.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ModeInfo.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ModeInfo.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Mutex.h
usr/src/cmd/man/src/util/nsgmls.src/lib/NameToken.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Notation.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/NotationStorage.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/NumericCharRefOrigin.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/NumericCharRefOrigin.h
usr/src/cmd/man/src/util/nsgmls.src/lib/OffsetOrderedList.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/OffsetOrderedList.h
usr/src/cmd/man/src/util/nsgmls.src/lib/OpenElement.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/OutputByteStream.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/OutputCharStream.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/OutputState.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/OutputState.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Param.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Param.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Parser.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Parser.h
usr/src/cmd/man/src/util/nsgmls.src/lib/ParserApp.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ParserAppMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/ParserEventGeneratorKit.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ParserMessages.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ParserMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/ParserOptions.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ParserState.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ParserState.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Partition.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Partition.h
usr/src/cmd/man/src/util/nsgmls.src/lib/PosixStorage.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/PosixStorageMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Priority.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Recognizer.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Recognizer.h
usr/src/cmd/man/src/util/nsgmls.src/lib/RewindStorageObject.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/SGMLApplication.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/SJISCodingSystem.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/SOEntityCatalog.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Sd.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/SdFormalError.h
usr/src/cmd/man/src/util/nsgmls.src/lib/SdText.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/SearchResultMessageArg.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/SgmlParser.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/ShortReferenceMap.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/SrInfo.h
usr/src/cmd/man/src/util/nsgmls.src/lib/StdioStorage.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/StdioStorageMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/StorageManager.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/StorageObjectPosition.h
usr/src/cmd/man/src/util/nsgmls.src/lib/StringVectorMessageArg.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/StringVectorMessageArg.h
usr/src/cmd/man/src/util/nsgmls.src/lib/Syntax.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Text.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/TokenMessageArg.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/TokenMessageArg.h
usr/src/cmd/man/src/util/nsgmls.src/lib/TranslateCodingSystem.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Trie.h
usr/src/cmd/man/src/util/nsgmls.src/lib/TrieBuilder.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/TrieBuilder.h
usr/src/cmd/man/src/util/nsgmls.src/lib/TypeId.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/URLStorage.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/URLStorageMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/UTF8CodingSystem.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Undo.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Undo.h
usr/src/cmd/man/src/util/nsgmls.src/lib/UnicodeCodingSystem.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/UnivCharsetDesc.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/Win32CodingSystem.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/WinApp.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/WinInetStorage.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/WinInetStorageMessages.h
usr/src/cmd/man/src/util/nsgmls.src/lib/XMLCodingSystem.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/app_inst.m4
usr/src/cmd/man/src/util/nsgmls.src/lib/arc_inst.m4
usr/src/cmd/man/src/util/nsgmls.src/lib/assert.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/big5.h
usr/src/cmd/man/src/util/nsgmls.src/lib/entmgr_inst.m4
usr/src/cmd/man/src/util/nsgmls.src/lib/events.h
usr/src/cmd/man/src/util/nsgmls.src/lib/gb2312.h
usr/src/cmd/man/src/util/nsgmls.src/lib/instmac.m4
usr/src/cmd/man/src/util/nsgmls.src/lib/ir.out
usr/src/cmd/man/src/util/nsgmls.src/lib/iso646-jis.h
usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-2.h
usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-3.h
usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-4.h
usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-5.h
usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-6.h
usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-7.h
usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-8.h
usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-9.h
usr/src/cmd/man/src/util/nsgmls.src/lib/jis0201.h
usr/src/cmd/man/src/util/nsgmls.src/lib/jis0208.h
usr/src/cmd/man/src/util/nsgmls.src/lib/jis0212.h
usr/src/cmd/man/src/util/nsgmls.src/lib/ksc5601.h
usr/src/cmd/man/src/util/nsgmls.src/lib/memmove.c
usr/src/cmd/man/src/util/nsgmls.src/lib/parseAttribute.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/parseCommon.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/parseDecl.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/parseInstance.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/parseMode.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/parseParam.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/parseSd.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/parser_inst.m4
usr/src/cmd/man/src/util/nsgmls.src/lib/splib.cxx
usr/src/cmd/man/src/util/nsgmls.src/lib/splib.h
usr/src/cmd/man/src/util/nsgmls.src/lib/splibpch.h
usr/src/cmd/man/src/util/nsgmls.src/lib/strerror.c
usr/src/cmd/man/src/util/nsgmls.src/lib/token.h
usr/src/cmd/man/src/util/nsgmls.src/lib/version.h
usr/src/cmd/man/src/util/nsgmls.src/lib/xentmgr_inst.m4
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/Makefile.sub
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/NsgmlsMessages.h
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/NsgmlsMessages.rc
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/RastEventHandler.cxx
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/RastEventHandler.h
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/RastEventHandlerMessages.h
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/RastEventHandlerMessages.rc
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/SgmlsEventHandler.cxx
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/SgmlsEventHandler.h
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/StringSet.cxx
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/StringSet.h
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/nsgmls.cxx
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/nsgmls.rc
usr/src/cmd/man/src/util/nsgmls.src/nsgmls/nsgmls_inst.m4
usr/src/cmd/man/src/util/nsgmls.src/sunfix.sh
usr/src/cmd/man/src/util/roff.cmap
usr/src/cmd/man/src/util/roff.sdata
usr/src/cmd/man/src/util/sgml2roff.sh
usr/src/cmd/man/src/util/solbookv2/Makefile
usr/src/cmd/man/src/util/solbookv2/THIRDPARTYLICENSE.descrip
usr/src/cmd/man/src/util/solbookv2/solbook.dcl
usr/src/cmd/man/src/util/solbookv2/solbook.dtd
usr/src/cmd/man/src/util/sun_iso.gml
usr/src/cmd/man/src/util/synref.gml
usr/src/cmd/man/src/util/warn.eps
usr/src/pkg/manifests/developer-build-onbld.mf
usr/src/pkg/manifests/text-doctools.mf
usr/src/tools/Makefile
usr/src/tools/Makefile.tools
usr/src/tools/depcheck/Makefile
usr/src/tools/depcheck/get_depend_info.1
usr/src/tools/depcheck/make_pkg_db.1
--- a/exception_lists/check_rtime	Fri Aug 17 14:11:30 2012 -0400
+++ b/exception_lists/check_rtime	Sat Aug 18 05:52:16 2012 -0500
@@ -205,7 +205,6 @@
 NOSYMSORT	lib/amd64/libnsl\.so\.1				# C++
 NOSYMSORT	lib/sparcv9/libnsl\.so\.1			# C++
 NOSYMSORT	lib/sparcv9/libfru\.so\.1			# C++
-NOSYMSORT	usr/lib/sgml/nsgmls				# C++
 NOSYMSORT	usr/lib/lms					# C++
 NOSYMSORT	ld\.so\.1					# libc_pic.a user
 NOSYMSORT	lib/libsun_fc\.so\.1				# C++
--- a/usr/src/cmd/man/src/Makefile	Fri Aug 17 14:11:30 2012 -0400
+++ b/usr/src/cmd/man/src/Makefile	Sat Aug 18 05:52:16 2012 -0500
@@ -30,7 +30,6 @@
 LIBPROG =	getNAME
 LIBSHELL =	makewhatis
 LNKPROG =	catman apropos whatis
-SGMLUTILDIR = 	util
 
 PROG =		$(BINPROG) $(LIBPROG)
 
@@ -54,19 +53,13 @@
 
 .KEEP_STATE :
 
-all :		$(PROG) $(LIBSHELL) $(LNKPROG) buildsubs
+all :		$(PROG) $(LIBSHELL) $(LNKPROG)
 
 makewhatis :	[email protected]
 		cat [email protected] > $@
 
-buildsubs :		
-		cd $(SGMLUTILDIR); pwd; $(MAKE) all
-
 install :	all $(ROOTPROG) $(ROOTLIBPROG)	\
-		$(ROOTLIBSHELL) $(ROOTLNKPROG) installsubs
-
-installsubs :		
-		cd $(SGMLUTILDIR); pwd; $(MAKE) install
+		$(ROOTLIBSHELL) $(ROOTLNKPROG)
 
 $(ROOTLNKPROG) :	$(ROOTBIN)/man
 		-$(RM) $@; $(LN) $(ROOTBIN)/man $@
@@ -81,15 +74,7 @@
 	cat     $(POFILES)      > $@
 
 
-clean :		sgml_clean
-
-sgml_clean :
-		cd $(SGMLUTILDIR); pwd; $(MAKE) clean
-
-clobber :	sgml_clobber
-
-sgml_clobber :
-		cd $(SGMLUTILDIR); pwd; $(MAKE) clobber
+clean :
 
 strip :
 		$(STRIP) $(PROG)
--- a/usr/src/cmd/man/src/util/Makefile	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-
-include		../../../Makefile.cmd
-
-BINPROG =	nsgmls instant
-
-SGMLUTILSOLBOOKV2DIR = solbookv2
-
-LIBSHELL =	sgml2roff
-SGMLENTS =      aap-shortref.gml \
-		allisoents.gml \
-		ati-dflt.dcl \
-		ati-eqn1.gml \
-		ati-graph.gml \
-		ati-math.elm \
-		ati-num.gml \
-		ati-tbl.elm \
-		atilogo.eps \
-		basic.dcl \
-		cals-tbl.elm \
-		capref.gml \
-		caution.eps \
-		core.gml \
-		ereview.gml \
-		html-latin.sgml \
-		iso-amsa.gml \
-		iso-amsb.gml \
-		iso-amsc.gml \
-		iso-amsn.gml \
-		iso-amso.gml \
-		iso-amsr.gml \
-		iso-box.gml \
-		iso-cyr1.gml \
-		iso-cyr2.gml \
-		iso-dia.gml \
-		iso-grk1.gml \
-		iso-grk2.gml \
-		iso-grk3.gml \
-		iso-grk4.gml \
-		iso-lat1.gml \
-		iso-lat2.gml \
-		iso-num.gml \
-		iso-pub.gml \
-		iso-tech.gml \
-		sun_iso.gml \
-		synref.gml \
-		warn.eps
-CATALOG =	catalog
-SOLBOOKV2 =	solbook.dcl \
-		solbook.dtd
-SOLBOOKV1 =	solbook.dtd
-TPTFILES =	docbook-to-man.ts \
-		roff.cmap \
-		roff.sdata
-
-PROG =		$(BINPROG) 
-
-SHSRCS =	sgml2roff.sh
-
-PROGDIR =	$(ROOTLIB)/sgml
-SGMLSHLIB =	$(ROOTSHLIB)/sgml
-SGMLSHLIBLOCALE =	$(ROOTSHLIB)/sgml/locale
-SGMLSHLIBLOCALEC =	$(ROOTSHLIB)/sgml/locale/C
-SGMLENTSDIR =	$(ROOTSHLIB)/sgml/locale/C/entities
-SGMLDTDDIR = 	$(ROOTSHLIB)/sgml/locale/C/dtds
-DOCBOOKDIR =	$(SGMLDTDDIR)/docbook
-SOLBOOKV1DIR =	$(SGMLDTDDIR)/solbookv1
-SOLBOOKV2DIR =	$(SGMLDTDDIR)/solbookv2
-TPTDIR =	$(ROOTSHLIB)/sgml/locale/C/transpec
-
-ROOTPROG =	$(BINPROG:%=$(PROGDIR)/%)
-ROOTLIBSHELL =	$(LIBSHELL:%=$(PROGDIR)/%)
-ROOTENTS =	$(SGMLENTS:%=$(SGMLENTSDIR)/%)
-ROOTSOLBOOKV2 = $(SOLBOOKV2:%=$(SOLBOOKV2DIR)/%)
-ROOTCATALOG =	$(CATALOG:%=$(SGMLDTDDIR)/%)
-ROOTTPT =	$(TPTFILES:%=$(TPTDIR)/%)
-
-CLOBBERFILES +=	$(LIBSHELL) 
-
-FILEMODE = 	0644
-$(ROOTPROG) 	:=	FILEMODE = 0755
-$(ROOTLIBSHELL) :=	FILEMODE = 0755
-
-.KEEP_STATE :
-
-all :		$(PROG) $(LIBSHELL) 
-
-install :	all $(PROGDIR) $(SGMLSHLIB) $(SGMLSHLIBLOCALE) \
-	$(SGMLSHLIBLOCALEC) $(SGMLDTDDIR) $(SGMLENTSDIR) $(ROOTPROG) \
-	$(ROOTLIBSHELL) $(TPTDIR) $(ROOTENTS) $(ROOTCATALOG) $(ROOTTPT) \
-	$(ROOTSOLBOOKV2)
-
-$(PROGDIR) :	
-		$(INS.dir) 
-
-$(SGMLSHLIB) :	
-		$(INS.dir) 
-
-$(SGMLSHLIBLOCALE) :	
-		$(INS.dir) 
-
-$(SGMLSHLIBLOCALEC) :	
-		$(INS.dir) 
-
-$(SGMLDTDDIR) :	
-		$(INS.dir)
-
-$(SGMLENTSDIR) :
-		$(INS.dir) 
-
-$(TPTDIR) :	
-		$(INS.dir)
-
-$(ROOTPROG) :	instant nsgmls
-
-instant :	FRC
-		@cd [email protected]; pwd; $(MAKE) $(TARGET)
-		$(CP) [email protected]/$@ .
-
-nsgmls :	FRC
-		@cd [email protected]; pwd; $(MAKE) $(TARGET)
-		$(CP) [email protected]/$@/$@ .
-
-sgml2roff :	sgml2roff.sh
-		cat [email protected] > $@
-
-FRC:
-
-clean : _localclean
-
-_localclean:
-		@cd instant.src; pwd; $(MAKE) clean
-		@cd nsgmls.src; pwd; $(MAKE) clean
-
-clobber : clean _localclobber
-
-_localclobber:
-		@cd instant.src; pwd; $(MAKE) clobber
-		@cd nsgmls.src; pwd; $(MAKE) clobber
-		@cd solbookv2; pwd; $(MAKE) clobber
-		$(RM) instant nsgmls sgml2roff
-		$(RM) -r $(PROGDIR)
-		$(RM) -r $(ROOTSHLIB)/sgml
-
-$(PROGDIR)/%:	%
-		$(INS.file)
-
-$(SGMLENTSDIR)/%:	%
-		$(INS.file)
-
-$(SGMLDTDDIR)/%:	%
-		$(INS.file)
-
-$(TPTDIR)/%:	%
-		$(INS.file)
-
-$(ROOTSOLBOOKV2):
-		cd $(SGMLUTILSOLBOOKV2DIR); pwd; $(MAKE) install; cd ..; pwd
--- a/usr/src/cmd/man/src/util/THIRDPARTYLICENSE	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-    (C) International Organization for Standardization 1986
-	Permission to copy in any form is granted for use with
-	conforming SGML systems and applications as defined in
-	ISO 8879, provided this notice is included in all copies.
--- a/usr/src/cmd/man/src/util/THIRDPARTYLICENSE.descrip	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-MAN COMMAND ISO GML FILES
--- a/usr/src/cmd/man/src/util/aap-shortref.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- Public entity for AAP short reference maps.  Typical invocation:
-  <!ENTITY % srmaps PUBLIC "-//USA/AAP//SHORTREF SR-1//EN" >   %srmaps;
-  NOTE: The entity "mdash" must be defined before invoking this one.
--->
-<!ENTITY  s..line  STARTTAG "line">
-<!ENTITY  s..p     STARTTAG "p" >
-<!ENTITY  s..q     STARTTAG "q" >
-<!ENTITY  e..q     ENDTAG   "q" >
-<!ENTITY  s..li    STARTTAG "li" >
-<!ENTITY  s..c     STARTTAG "c" >
-<!ENTITY  s..row   STARTTAG "row" >
-<!ENTITY  c..null  CDATA    "" >
-<!ENTITY  s..dt    STARTTAG "dt" >
-<!ENTITY  s..dd    STARTTAG "dd" >
-<!SHORTREF bkmap
-           "&#RS;&#RE" s..p  -- null record is paragraph start-tag  --
-           "&#RS;B"    c..null -- leading blanks are suppressed --
-           '"'      s..q     -- quotation is quote start-tag --
-           "--"     mdash    -- two hyphens is an em dash --
->
-<!SHORTREF qmap
-           '"'      e..q     -- quotation is quote end-tag --
-           "--"     mdash    -- two hyphens is an em dash --
->
-<!SHORTREF dlmap
-           "#"      s..dt    -- number sign is def term start-tag --
-           "|"      s..dd    -- vertical bar is def descr start-tag --
-           "&#RS;&#RE;" s..p  -- null record is paragraph start-tag  --
-           "&#RS;B"    c..null -- leading blanks are suppressed --
-           '"'      s..q     -- quotation is quote start-tag --
-           "--"     mdash    -- two hyphens is an em dash --
->
-<!SHORTREF listmap
-           "#"      s..li    -- number sign is list item start-tag --
-           "&#RS;&#RE;" s..p  -- null record is paragraph start-tag  --
-           "&#RS;B"    c..null -- leading blanks are suppressed --
-           '"'      s..q     -- quotation is quote start-tag --
-           "--"     mdash    -- two hyphens is an em dash --
->
-<!SHORTREF litmap
-           "&#RS;"   s..line -- record start is line start-tag --
-           "--"     mdash    -- two hyphens is an em dash --
->
-<!SHORTREF tblmap
-           "@"      s..row   -- commercial at is row start-tag --
-           "|"      s..c     -- vertical bar is tbl entry start-tag --
-           "&#RS;&#RE;" s..p -- null record is paragraph start-tag  --
-           "&#RS;B"    c..null -- leading blanks are suppressed --
-           '"'      s..q     -- quotation is quote start-tag --
-           "--"     mdash    -- two hyphens is an em dash --
->
--- a/usr/src/cmd/man/src/util/allisoents.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!ENTITY % ISOpub PUBLIC 
- "ISO 8879:1986//ENTITIES Publishing//EN">
-%ISOpub;
-
-<!ENTITY % ISOnum PUBLIC 
- "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN">
-%ISOnum;
-
-<!ENTITY % ISOtech PUBLIC 
- "ISO 8879:1986//ENTITIES General Technical//EN">
-%ISOtech;
-
-<!ENTITY % ISOdia PUBLIC 
- "ISO 8879:1986//ENTITIES Diacritical Marks//EN">
-%ISOdia;
-
-<!ENTITY % ISOlat1 PUBLIC 
- "ISO 8879:1986//ENTITIES Added Latin 1//EN">
-%ISOlat1;
-
-<!ENTITY % ISOlat2 PUBLIC 
- "ISO 8879:1986//ENTITIES Added Latin 2//EN">
-%ISOlat2;
-
-<!ENTITY % ISOamso PUBLIC 
- "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN">
-%ISOamso;
-
-<!ENTITY % ISOgrk1 PUBLIC 
- "ISO 8879:1986//ENTITIES Greek Letters//EN">
-%ISOgrk1;
-
-<!ENTITY % ISOgrk3 PUBLIC 
- "ISO 8879:1986//ENTITIES Greek Symbols//EN">
-%ISOgrk3;
--- a/usr/src/cmd/man/src/util/ati-dflt.dcl	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-<!SGML	"ISO 8879:1986"  
---  --
--- CDDL HEADER START --
---  --
--- The contents of this file are subject to the terms of the --
--- Common Development and Distribution License, Version 1.0 only --
--- (the "License").  You may not use this file except in compliance --
--- with the License. --
---  --
--- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --
--- or http://www.opensolaris.org/os/licensing. --
--- See the License for the specific language governing permissions --
--- and limitations under the License. --
---  --
--- When distributing Covered Code, include this CDDL HEADER in each --
--- file and include the License file at usr/src/OPENSOLARIS.LICENSE. --
--- If applicable, add the following below this CDDL HEADER, with the --
--- fields enclosed by brackets "[]" replaced with your own identifying --
--- information: Portions Copyright [yyyy] [name of copyright owner] --
---  --
--- CDDL HEADER END --
---  --
--- ArborText's default SGML declaration --
-
-CHARSET
-BASESET	"ISO 646-1983//CHARSET
- International Reference Version (IRV)//ESC 2/5 4/0"
-DESCSET
-	0	9   UNUSED
-	9	2   9
-       11	2   UNUSED
-       13	1   13
-       14	18  UNUSED
-       32	95  32
-      127	1   UNUSED
-      128	128 "High-order characters"
-
-CAPACITY SGMLREF
-	TOTALCAP	200000
-	ENTCAP		35000
-	ENTCHCAP	35000
-	ELEMCAP		35000
-	GRPCAP		150000
-	EXGRPCAP	35000
-	EXNMCAP		35000
-	ATTCAP		50000
-	ATTCHCAP	35000
-	AVGRPCAP	35000
-	NOTCAP		35000
-	NOTCHCAP	35000
-	IDCAP		35000
-	IDREFCAP	35000
-	MAPCAP		35000
-	LKSETCAP	35000
-	LKNMCAP		35000
-
-SCOPE 	 DOCUMENT
-
-SYNTAX   
-	SHUNCHAR 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
-		18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
-BASESET  "ISO 646-1983//CHARSET
-          International Reference Version (IRV)//ESC 2/5 4/0"
-DESCSET  0	128	0
-       128	128	"High-order characters"
-FUNCTION RE	13
-	 RS	10
-	 SPACE	32
-	 TAB	SEPCHAR	9
-NAMING	 LCNMSTRT ""
-	 UCNMSTRT ""
-	 LCNMCHAR "-."
-	 UCNMCHAR "-."
-	 NAMECASE GENERAL YES
-		  ENTITY  NO
-DELIM	 GENERAL SGMLREF
-	 SHORTREF SGMLREF
-NAMES	 SGMLREF
-QUANTITY SGMLREF
-	ATTCNT		100
-	ATTSPLEN	960
-	BSEQLEN		960
-	DTAGLEN		16
-	DTEMPLEN	16
-	ENTLVL		16
-	GRPCNT		100
-	GRPGTCNT	96
-	GRPLVL		16
-	LITLEN		800
-	NAMELEN		32
-	NORMSEP		2
-	PILEN		1024
-	TAGLEN		960
-	TAGLVL		24
-
-
-FEATURES
-MINIMIZE DATATAG NO     OMITTAG  YES    RANK     NO     SHORTTAG YES
-LINK     SIMPLE  NO     IMPLICIT NO     EXPLICIT NO
-OTHER    CONCUR  NO     SUBDOC   NO     FORMAL   YES
-APPINFO NONE>
--- a/usr/src/cmd/man/src/util/ati-eqn1.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,366 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- ArborText equation entity set. Typical invocation:
-     <!ENTITY % ATIeqn1 PUBLIC "-//ArborText//ENTITIES Equation1//EN">
-     %ATIeqn1;
--->
-<!ENTITY i		SDATA   "[i]">
-<!ENTITY dotbelow	SDATA   "[dotbelow]">
-<!ENTITY barbelow	SDATA   "[barbelow]">
-<!ENTITY huml		SDATA   "[huml]">
-<!ENTITY fgr		SDATA   "[fgr]">
-<!ENTITY Fgr		SDATA   "[Fgr]">
-<!ENTITY inches		SDATA   "[inches]">
-<!ENTITY feet		SDATA   "[feet]">
-<!ENTITY Aelig		SDATA   "[Aelig]">
-<!ENTITY Oelig		SDATA   "[Oelig]">
-<!ENTITY slaquo		SDATA   "[slaquo]">
-<!ENTITY sraquo		SDATA   "[sraquo]">
-
-<!ENTITY Barwed		SDATA   "[Barwed]">
-<!ENTITY Cap		SDATA   "[Cap]">
-<!ENTITY Cup		SDATA   "[Cup]">
-<!ENTITY Empty		SDATA   "[Empty]">
-<!ENTITY Gg		SDATA   "[Gg]">
-<!ENTITY Gt		SDATA   "[Gt]">
-<!ENTITY Im		SDATA   "[Im]">
-<!ENTITY Larr		SDATA   "[Larr]">
-<!ENTITY Ll		SDATA   "[Ll]">
-<!ENTITY Lt		SDATA   "[Lt]">
-<!ENTITY Rarr		SDATA   "[Rarr]">
-<!ENTITY Re		SDATA   "[Re]">
-<!ENTITY Sub		SDATA   "[Sub]">
-<!ENTITY Sup		SDATA   "[Sup]">
-<!ENTITY Vdash		SDATA   "[Vdash]">
-<!ENTITY Vvdash		SDATA   "[Vvdash]">
-<!ENTITY amalg		SDATA   "[amalg]">
-<!ENTITY ang		SDATA   "[ang]">
-<!ENTITY angl0		SDATA   "[angl0]">
-<!ENTITY angmsd		SDATA   "[angmsd]">
-<!ENTITY angr0		SDATA   "[angr0]">
-<!ENTITY ape		SDATA   "[ape]">
-<!ENTITY ar		SDATA   "[ar]">
-<!ENTITY asymp		SDATA   "[asymp]">
-<!ENTITY backeps	SDATA   "[backeps]">
-<!ENTITY barwed		SDATA   "[barwed]">
-<!ENTITY beth		SDATA   "[beth]">
-<!ENTITY bigand		SDATA   "[bigand]">
-<!ENTITY bigcap		SDATA   "[bigcap]">
-<!ENTITY bigcirc	SDATA   "[bigcirc]">
-<!ENTITY bigcup		SDATA   "[bigcup]">
-<!ENTITY bigodot	SDATA   "[bigodot]">
-<!ENTITY bigoplus	SDATA   "[bigoplus]">
-<!ENTITY bigor		SDATA   "[bigor]">
-<!ENTITY bigotimes	SDATA   "[bigotimes]">
-<!ENTITY bigsqcap	SDATA   "[bigsqcap]">
-<!ENTITY bigsqcup	SDATA   "[bigsqcup]">
-<!ENTITY bigstar	SDATA   "[bigstar]">
-<!ENTITY biguplus	SDATA   "[biguplus]">
-<!ENTITY bigxdtri	SDATA   "[bigxdtri]">
-<!ENTITY bigxutri	SDATA   "[bigxutri]">
-<!ENTITY bowtie		SDATA   "[bowtie]">
-<!ENTITY bprime		SDATA   "[bprime]">
-<!ENTITY bsim		SDATA   "[bsim]">
-<!ENTITY bsime		SDATA   "[bsime]">
-<!ENTITY bsolm0		SDATA   "[bsolm0]">
-<!ENTITY bump		SDATA   "[bump]">
-<!ENTITY bumpe		SDATA   "[bumpe]">
-<!ENTITY cdots		SDATA   "[cdots]">
-<!ENTITY ceill0		SDATA   "[ceill0]">
-<!ENTITY ceilr0		SDATA   "[ceilr0]">
-<!ENTITY chkmrk		SDATA   "[chkmrk]">
-<!ENTITY circR		SDATA   "[circR]">
-<!ENTITY circS		SDATA   "[circS]">
-<!ENTITY circe		SDATA   "[circe]">
-<!ENTITY comp		SDATA   "[comp]">
-<!ENTITY cubl0		SDATA   "[cubl0]">
-<!ENTITY cubr0		SDATA   "[cubr0]">
-<!ENTITY cubl1                SDATA   "[cubl1]">
-<!ENTITY cubl2                SDATA   "[cubl2]">
-<!ENTITY cubl3                SDATA   "[cubl3]">
-<!ENTITY cubl4                SDATA   "[cubl4]">
-<!ENTITY cubr1                SDATA   "[cubr1]">
-<!ENTITY cubr2                SDATA   "[cubr2]">
-<!ENTITY cubr3                SDATA   "[cubr3]">
-<!ENTITY cubr4                SDATA   "[cubr4]">
-<!ENTITY cuepr		SDATA   "[cuepr]">
-<!ENTITY cuesc		SDATA   "[cuesc]">
-<!ENTITY cularr		SDATA   "[cularr]">
-<!ENTITY curarr		SDATA   "[curarr]">
-<!ENTITY cuvee		SDATA   "[cuvee]">
-<!ENTITY cuwed		SDATA   "[cuwed]">
-<!ENTITY d1		SDATA   "[d1]">
-<!ENTITY d11		SDATA   "[d11]">
-<!ENTITY d12		SDATA   "[d12]">
-<!ENTITY d13		SDATA   "[d13]">
-<!ENTITY d14		SDATA   "[d14]">
-<!ENTITY d15		SDATA   "[d15]">
-<!ENTITY d2		SDATA   "[d2]">
-<!ENTITY d3		SDATA   "[d3]">
-<!ENTITY d4		SDATA   "[d4]">
-<!ENTITY d5		SDATA   "[d5]">
-<!ENTITY d9		SDATA   "[d9]">
-<!ENTITY dArr		SDATA   "[dArr]">
-<!ENTITY daleth		SDATA   "[daleth]">
-<!-- in iso-amsa; ENTITY darr2		SDATA   "[darr2]"-->
-<!ENTITY dashv		SDATA   "[dashv]">
-<!ENTITY ddots		SDATA   "[ddots]">
-<!ENTITY dharl		SDATA   "[dharl]">
-<!ENTITY dharr		SDATA   "[dharr]">
-<!ENTITY diam		SDATA   "[diam]">
-<!ENTITY diams		SDATA   "[diams]">
-<!ENTITY divonx		SDATA   "[divonx]">
-<!ENTITY dlarr		SDATA   "[dlarr]">
-<!ENTITY drarr		SDATA   "[drarr]">
-<!ENTITY dvbm0		SDATA   "[dvbm0]">
-<!ENTITY dvbr		SDATA   "[dvbr]">
-<!ENTITY eDot		SDATA   "[eDot]">
-<!ENTITY ecir		SDATA   "[ecir]">
-<!ENTITY efDot		SDATA   "[efDot]">
-<!ENTITY egs		SDATA   "[egs]">
-<!ENTITY els		SDATA   "[els]">
-<!ENTITY empty		SDATA   "[empty]">
-<!ENTITY eqsim		SDATA   "[eqsim]">
-<!ENTITY erDot		SDATA   "[erDot]">
-<!ENTITY eth		SDATA   "[eth]">
-<!ENTITY fll0		SDATA   "[fll0]">
-<!ENTITY flr0		SDATA   "[flr0]">
-<!ENTITY fork		SDATA   "[fork]">
-<!ENTITY frown		SDATA   "[frown]">
-<!ENTITY gE		SDATA   "[gE]">
-<!ENTITY gap		SDATA   "[gap]">
-<!ENTITY gdot		SDATA   "[gdot]">
-<!-- in iso-amsr; ENTITY gel		SDATA   "[gel]"-->
-<!-- in iso-amsr; ENTITY ges		SDATA   "[ges]"-->
-<!ENTITY gimel		SDATA   "[gimel]">
-<!ENTITY gl		SDATA   "[gl]">
-<!ENTITY gnE		SDATA   "[gnE]">
-<!ENTITY gnap		SDATA   "[gnap]">
-<!ENTITY gne		SDATA   "[gne]">
-<!ENTITY gnsim		SDATA   "[gnsim]">
-<!ENTITY gsim		SDATA   "[gsim]">
-<!ENTITY gvertnE	SDATA   "[gvertnE]">
-<!ENTITY hArr		SDATA   "[hArr]">
-<!ENTITY harr		SDATA   "[harr]">
-<!ENTITY harrr		SDATA   "[harrr]">
-<!ENTITY harrw		SDATA   "[harrw]">
-<!ENTITY hslash		SDATA   "[hslash]">
-<!ENTITY intcal		SDATA   "[intcal]">
-<!ENTITY j0		SDATA   "[j0]">
-<!ENTITY lAarr		SDATA   "[lAarr]">
-<!ENTITY lArrr		SDATA   "[lArrr]">
-<!ENTITY lE		SDATA   "[lE]">
-<!ENTITY lEg		SDATA   "[lEg]">
-<!ENTITY lap		SDATA   "[lap]">
-<!-- in iso-num; ENTITY larr		SDATA   "[larr]"-->
-<!-- in iso-amsa; ENTITY larr2		SDATA   "[larr2]"-->
-<!-- in iso-amsa; ENTITY larrhk		SDATA   "[larrhk]"-->
-<!-- in iso-amsa; ENTITY larrlp		SDATA   "[larrlp]"-->
-<!ENTITY larrr		SDATA   "[larrr]">
-<!ENTITY ldot		SDATA   "[ldot]">
-<!ENTITY ldots		SDATA   "[ldots]">
-<!-- in iso-amsr; ENTITY leg		SDATA   "[leg]"-->
-<!-- in iso-amsr; ENTITY les		SDATA   "[les]"-->
-<!ENTITY lg		SDATA   "[lg]">
-<!ENTITY lhard		SDATA   "[lhard]">
-<!ENTITY lharu		SDATA   "[lharu]">
-<!ENTITY lnE		SDATA   "[lnE]">
-<!ENTITY lnap		SDATA   "[lnap]">
-<!ENTITY lne		SDATA   "[lne]">
-<!ENTITY lnsim		SDATA   "[lnsim]">
-<!ENTITY lrarr2		SDATA   "[lrarr2]">
-<!ENTITY lrhar2		SDATA   "[lrhar2]">
-<!ENTITY lsh		SDATA   "[lsh]">
-<!ENTITY lsim		SDATA   "[lsim]">
-<!-- in iso-amsb; ENTITY lthree		SDATA   "[lthree]"-->
-<!-- in iso-amsb; ENTITY ltimes		SDATA   "[ltimes]"-->
-<!ENTITY lvertnE	SDATA   "[lvertnE]">
-<!ENTITY m22		SDATA   "[m22]">
-<!ENTITY m7		SDATA   "[m7]">
-<!ENTITY mho		SDATA   "[mho]">
-<!ENTITY mid		SDATA   "[mid]">
-<!-- in iso-amsb; ENTITY minusb		SDATA   "[minusb]"-->
-<!ENTITY models		SDATA   "[models]">
-<!ENTITY mumap		SDATA   "[mumap]">
-<!ENTITY nVDash		SDATA   "[nVDash]">
-<!ENTITY nVdash		SDATA   "[nVdash]">
-<!ENTITY napprox	SDATA   "[napprox]">
-<!ENTITY ncong		SDATA   "[ncong]">
-<!ENTITY nearr		SDATA   "[nearr]">
-<!ENTITY nexist		SDATA   "[nexist]">
-<!ENTITY ngE		SDATA   "[ngE]">
-<!ENTITY nge		SDATA   "[nge]">
-<!ENTITY nges		SDATA   "[nges]">
-<!ENTITY ngt		SDATA   "[ngt]">
-<!ENTITY nharr		SDATA   "[nharr]">
-<!ENTITY nlArr		SDATA   "[nlArr]">
-<!ENTITY nlE		SDATA   "[nlE]">
-<!ENTITY nlarr		SDATA   "[nlarr]">
-<!ENTITY nle		SDATA   "[nle]">
-<!ENTITY nles		SDATA   "[nles]">
-<!ENTITY nlt		SDATA   "[nlt]">
-<!ENTITY nltri		SDATA   "[nltri]">
-<!ENTITY nltrie		SDATA   "[nltrie]">
-<!ENTITY nmid		SDATA   "[nmid]">
-<!ENTITY npar		SDATA   "[npar]">
-<!ENTITY npr		SDATA   "[npr]">
-<!ENTITY npre		SDATA   "[npre]">
-<!ENTITY nrArr		SDATA   "[nrArr]">
-<!ENTITY nrarr		SDATA   "[nrarr]">
-<!ENTITY nrtri		SDATA   "[nrtri]">
-<!ENTITY nrtrie		SDATA   "[nrtrie]">
-<!ENTITY nsc		SDATA   "[nsc]">
-<!ENTITY nsce		SDATA   "[nsce]">
-<!ENTITY nsim		SDATA   "[nsim]">
-<!ENTITY nsmid		SDATA   "[nsmid]">
-<!ENTITY nspar		SDATA   "[nspar]">
-<!ENTITY nsubE		SDATA   "[nsubE]">
-<!ENTITY nsube		SDATA   "[nsube]">
-<!ENTITY nsup		SDATA   "[nsup]">
-<!ENTITY nsupE		SDATA   "[nsupE]">
-<!ENTITY nsupe		SDATA   "[nsupe]">
-<!ENTITY nvDash		SDATA   "[nvDash]">
-<!ENTITY nvdash		SDATA   "[nvdash]">
-<!ENTITY nwarr		SDATA   "[nwarr]">
-<!ENTITY oast		SDATA   "[oast]">
-<!ENTITY ocirc		SDATA   "[ocirc]">
-<!ENTITY odash		SDATA   "[odash]">
-<!ENTITY odot		SDATA   "[odot]">
-<!ENTITY olarr		SDATA   "[olarr]">
-<!ENTITY ominus		SDATA   "[ominus]">
-<!ENTITY oplus		SDATA   "[oplus]">
-<!ENTITY orarr		SDATA   "[orarr]">
-<!ENTITY osol		SDATA   "[osol]">
-<!ENTITY otimes		SDATA   "[otimes]">
-<!ENTITY parl0		SDATA   "[parl0]">
-<!ENTITY parr0		SDATA   "[parr0]">
-<!ENTITY plank		SDATA   "[plank]">
-<!ENTITY plusb		SDATA   "[plusb]">
-<!ENTITY plusdo		SDATA   "[plusdo]">
-<!ENTITY pr		SDATA   "[pr]">
-<!ENTITY prap		SDATA   "[prap]">
-<!ENTITY pre		SDATA   "[pre]">
-<!ENTITY preccurlyeq	SDATA   "[preccurlyeq]">
-<!ENTITY prnE		SDATA   "[prnE]">
-<!ENTITY prnap		SDATA   "[prnap]">
-<!ENTITY prnsim		SDATA   "[prnsim]">
-<!ENTITY rAarr		SDATA   "[rAarr]">
-<!ENTITY rArrr		SDATA   "[rArrr]">
-<!-- in iso-amsa; ENTITY rarr2		SDATA   "[rarr2]"-->
-<!-- in iso-amsa; ENTITY rarrhk		SDATA   "[rarrhk]"-->
-<!-- in iso-amsa; ENTITY rarrlp		SDATA   "[rarrlp]"-->
-<!ENTITY rarrr		SDATA   "[rarrr]">
-<!-- in iso-amsa; ENTITY rarrtl		SDATA   "[rarrtl]"-->
-<!-- in iso-amsa; ENTITY rarrw		SDATA   "[rarrw]"-->
-<!ENTITY rhard		SDATA   "[rhard]">
-<!ENTITY rharu		SDATA   "[rharu]">
-<!ENTITY rlarr2		SDATA   "[rlarr2]">
-<!ENTITY rlhar2		SDATA   "[rlhar2]">
-<!ENTITY rsh		SDATA   "[rsh]">
-<!ENTITY rthree		SDATA   "[rthree]">
-<!ENTITY rtimes		SDATA   "[rtimes]">
-<!ENTITY rtrie		SDATA   "[rtrie]">
-<!ENTITY samalg		SDATA   "[samalg]">
-<!ENTITY sc		SDATA   "[sc]">
-<!ENTITY sccue		SDATA   "[sccue]">
-<!ENTITY sce		SDATA   "[sce]">
-<!ENTITY scnE		SDATA   "[scnE]">
-<!ENTITY scnap		SDATA   "[scnap]">
-<!ENTITY sdotb		SDATA   "[sdotb]">
-<!ENTITY setmn		SDATA   "[setmn]">
-<!ENTITY sfrown		SDATA   "[sfrown]">
-<!ENTITY smallint	SDATA   "[smallint]">
-<!ENTITY smallsetminus	SDATA   "[smallsetminus]">
-<!ENTITY smid		SDATA   "[smid]">
-<!ENTITY smile		SDATA   "[smile]">
-<!ENTITY solm0		SDATA   "[solm0]">
-<!ENTITY spar		SDATA   "[spar]">
-<!ENTITY sqbl0		SDATA   "[sqbl0]">
-<!ENTITY sqbr0		SDATA   "[sqbr0]">
-<!ENTITY sqbl1                SDATA   "[sqbl1]">
-<!ENTITY sqbl2                SDATA   "[sqbl2]">
-<!ENTITY sqbl3                SDATA   "[sqbl3]">
-<!ENTITY sqbl4                SDATA   "[sqbl4]">
-<!ENTITY sqbr1                SDATA   "[sqbr1]">
-<!ENTITY sqbr2                SDATA   "[sqbr2]">
-<!ENTITY sqbr3                SDATA   "[sqbr3]">
-<!ENTITY sqbr4                SDATA   "[sqbr4]">
-<!ENTITY sqcap		SDATA   "[sqcap]">
-<!ENTITY sqcup		SDATA   "[sqcup]">
-<!ENTITY sqsub		SDATA   "[sqsub]">
-<!ENTITY sqsube		SDATA   "[sqsube]">
-<!ENTITY sqsup		SDATA   "[sqsup]">
-<!ENTITY sqsupe		SDATA   "[sqsupe]">
-<!ENTITY ssmile		SDATA   "[ssmile]">
-<!ENTITY sstarf		SDATA   "[sstarf]">
-<!ENTITY subE		SDATA   "[subE]">
-<!ENTITY subnE		SDATA   "[subnE]">
-<!ENTITY subne		SDATA   "[subne]">
-<!ENTITY supE		SDATA   "[supE]">
-<!ENTITY supnE		SDATA   "[supnE]">
-<!ENTITY supne		SDATA   "[supne]">
-<!ENTITY surd		SDATA   "[surd]">
-<!ENTITY thickapprox	SDATA   "[thickapprox]">
-<!ENTITY thicksim	SDATA   "[thicksim]">
-<!-- in iso-amsb; ENTITY timesb		SDATA   "[timesb]"-->
-<!ENTITY top		SDATA   "[top]">
-<!ENTITY trie		SDATA   "[trie]">
-<!ENTITY twixt		SDATA   "[twixt]">
-<!ENTITY uArr		SDATA   "[uArr]">
-<!-- in iso-amsa; ENTITY uarr2		SDATA   "[uarr2]"-->
-<!ENTITY uharl		SDATA   "[uharl]">
-<!ENTITY uharr		SDATA   "[uharr]">
-<!ENTITY uplus		SDATA   "[uplus]">
-<!ENTITY vArr		SDATA   "[vArr]">
-<!ENTITY vDash		SDATA   "[vDash]">
-<!ENTITY vDelta		SDATA	"[vDelta]">
-<!ENTITY vGamma		SDATA	"[vGamma]">
-<!ENTITY vLambda	SDATA	"[vLambda]">
-<!ENTITY vOmega		SDATA	"[vOmega]">
-<!ENTITY vPhi		SDATA	"[vPhi]">
-<!ENTITY vPi		SDATA	"[vPi]">
-<!ENTITY vPsi		SDATA	"[vPsi]">
-<!ENTITY vSigma		SDATA	"[vSigma]">
-<!ENTITY vTheta		SDATA	"[vTheta]">
-<!ENTITY vUpsilon	SDATA	"[vUpsilon]">
-<!ENTITY vXi		SDATA	"[vXi]">
-<!ENTITY varr		SDATA   "[varr]">
-<!ENTITY vbm0		SDATA   "[vbm0]">
-<!ENTITY vdash		SDATA   "[vdash]">
-<!ENTITY veebar		SDATA   "[veebar]">
-<!ENTITY vltri		SDATA   "[vltri]">
-<!ENTITY vprop		SDATA   "[vprop]">
-<!ENTITY vrtri		SDATA   "[vrtri]">
-<!ENTITY vsubnE		SDATA   "[vsubnE]">
-<!ENTITY vsubne		SDATA   "[vsubne]">
-<!ENTITY vsupnE		SDATA   "[vsupnE]">
-<!ENTITY vsupne		SDATA   "[vsupne]">
-<!ENTITY vtri		SDATA   "[vtri]">
-<!ENTITY weierp		SDATA   "[weierp]">
-<!ENTITY xdtri		SDATA   "[xdtri]">
-<!ENTITY xhArr		SDATA   "[xhArr]">
--- a/usr/src/cmd/man/src/util/ati-graph.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- ArborText graphic entity set. Typical invocation:
-     <!ENTITY % ATIgrph PUBLIC
-       "-//ArborText//ENTITIES Graphic Notation//EN">
-     %ATIgrph;
--->
-
-<!ENTITY #DEFAULT SYSTEM NDATA ATIGRAPH>
-<!NOTATION ATIGRAPH SYSTEM>
--- a/usr/src/cmd/man/src/util/ati-math.elm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- Public document type declaration subset. Typical invocation:
-<!ENTITY % atimath PUBLIC "-//ArborText//ELEMENTS Math Equation Structures//EN">
-%atimath;
--->
-
-<!-- Declarations for ArborText Equations (based on AAP math)
-$Header: ati-math.elm,v 18.2 93/06/22 18:14:58 txf Exp $
-
-NOTE: Dtgen excludes ati-math tags from the <docname>.menu and
-<docname>.tags files it builds since the user cannot manipulate
-these tags directly.  The tag exclusion algorithm requires that
-the first and last math elements (in the order they are defined
-in this file) be named <fd> and <rm> respectively.
-
-If these assumptions are invalidated, then some math elements may
-be included into the menus, or some of the DTD's elements might be 
-excluded from the menus.
--->
-
-<!ENTITY % p.em.ph	"b|it|rm">
-<!ENTITY % p.fnt.ph	"blkbd|ig|sc|ge|ty|mit">
-<!ENTITY % sp.pos	"vmk|vmkr|vsp|hsp|tu">
-<!ENTITY % f-cs		"a|%p.em.ph|%p.fnt.ph|g|bg|%sp.pos">
-<!ENTITY % f-cstxt	"#PCDATA|%f-cs">
-<!ENTITY % f-scs	"rf|inc|v|dy|fi">
-<!ENTITY % limits	"pr|in|sum">
-<!ENTITY % f-bu		"fr|rad|lim|ar|stk|cases|eqaln|fen">
-<!ENTITY % f-ph		"unl|ovl|unb|ovb|sup|inf">
-<!ENTITY % f-butxt	"%f-bu|%limits|%f-cstxt|%f-scs|%f-ph|phr">
-<!ENTITY % f-phtxt	"#PCDATA|%p.em.ph">
-<!ENTITY % f-post       "par|sqb|llsqb|rrsqb|cub|ceil|fl|ang
-                            |sol|vb|uc|dc">
-<!ENTITY % f-style      "s|d|t|da|dot|b|bl|n">
-
-<!ELEMENT fd		- - (fl)*>
-<!ELEMENT fl		O O (%f-butxt)*>
-
-  <![IGNORE [
-  <!ELEMENT fd		- - (la?,fl)+>
-  <!ELEMENT la		- - (%f-cstxt;|%f-ph;)*>
-  <!ATTLIST la		loc		CDATA	#IMPLIED>
-  ]]>
-
-<!ELEMENT f		- - (%f-butxt)*>
-
-<!ELEMENT fr		- - (nu,de)>
-<!ATTLIST fr		shape		CDATA	#IMPLIED
-			align		CDATA	#IMPLIED
-			style		CDATA	#IMPLIED>
-<!ELEMENT (nu|de)	O O (%f-butxt)*>
-  <![IGNORE [
-  <!ELEMENT lim		- - (op,ll,ul,opd?)>
-  ]]>
-<!ELEMENT lim		- - (op,ll?,ul?,opd?)>
-<!ATTLIST lim		align		(r|c)	#IMPLIED>
-  <![IGNORE [
-  <!ELEMENT op		- - (%f-cstxt|rf|%f-ph) -(tu)>
-  ]]>
-<!ELEMENT op		- - (%f-cstxt|rf|%f-ph)* -(tu)>
-<!ELEMENT (ll|ul)	O O (%f-butxt)*>
-<!ELEMENT opd		- O (%f-butxt)*>
-  <![IGNORE [
-  <!ELEMENT (%limits)	- - (ll,ul,opd?)>
-  ]]>
-<!ELEMENT (%limits)	- - (ll?,ul?,opd?)>
-<!ATTLIST (%limits)	align		CDATA	#IMPLIED>
-<!ELEMENT rad		- - (rcd,rdx?)>
-<!ELEMENT rcd		O O (%f-butxt)*>
-<!ELEMENT rdx		- O (%f-butxt)* -(tu)>
-  <![IGNORE [
-  <!ELEMENT fen		- - ((%f-butxt)*,(cp,(%f-butxt)*)*,rp)>
-  ]]>
-<!ELEMENT fen		- - (%f-butxt|cp|rp)*>
-<!ATTLIST fen		lp		(%f-post;)	vb
-			style		(%f-style;)     s>
-<!ELEMENT (cp|rp)	- O EMPTY>
-<!ATTLIST (cp|rp)	post		(%f-post;)      vb
-			style		(%f-style;)	s>
-<!ELEMENT ar		- - (arr+)>
-<!ATTLIST ar		cs		CDATA	#IMPLIED
-			rs		CDATA	#IMPLIED
-			ca		CDATA	#IMPLIED>
-<!ELEMENT arr		- O (arc+)>
-<!ELEMENT arc		O O (%f-butxt)*>
-<!ATTLIST arc		align		CDATA	#IMPLIED>
-<!ELEMENT cases		- - (arr+)>
-<!ELEMENT eqaln		- - (eqline+)>
-<!ELEMENT eqline	- - (%f-butxt)*>
-<!ELEMENT stk		- - (lyr+)>
-<!ELEMENT lyr		O O (%f-butxt)* -(tu)>
-<!ATTLIST lyr		align		CDATA	#IMPLIED>
-<!ELEMENT ach		- - (%f-butxt)*>
-<!ATTLIST ach		atom		CDATA	#IMPLIED>
-<!ELEMENT (sup|inf)	- - (%f-butxt)* -(tu)>
-<!ATTLIST (sup|inf)	loc		CDATA	#IMPLIED>
-<!ELEMENT (unl|ovl)	- - (%f-butxt)*>
-<!ATTLIST (unl|ovl)	style		CDATA	#IMPLIED>
-<!ELEMENT (unb|ovb)	- - (%f-butxt)*>
-<!ELEMENT a		- - (ac,ac) -(tu)>
-<!ATTLIST a		valign		CDATA	#IMPLIED>
-  <![IGNORE [
-  <!ELEMENT ac		O O (%f-cstxt|%f-scs)* -(sup|inf)>
-  ]]>
-<!ELEMENT ac		O O (%f-cstxt|%f-scs|sup|inf)*>
-<!ELEMENT (%f-scs)	- O (%f-cstxt|sup|inf)* -(tu|%limits|%f-bu|%f-ph)>
-<!ELEMENT phr		- O (%f-phtxt)*>
-<!ELEMENT vmk		- O EMPTY>
-<!ATTLIST vmk		id		CDATA	#IMPLIED>
-<!ELEMENT vmkr		- O EMPTY>
-<!ATTLIST vmkr		rid		CDATA	#IMPLIED>
-<!ELEMENT (hsp|vsp)	- O EMPTY>
-<!ATTLIST (hsp|vsp)	sp		CDATA	#IMPLIED>
-<!ELEMENT tu		- O EMPTY>
-<!ELEMENT (g|bg)	- - (#PCDATA)>
-<!ELEMENT (%p.fnt.ph;)	- - (%f-cstxt)*>
-<!ELEMENT (%p.em.ph;)	- - (%f-cstxt)*>
-
-<!ENTITY % ISOamsa PUBLIC
- "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN">
-%ISOamsa;
-
-<!ENTITY % ISOamsb PUBLIC
- "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN">
-%ISOamsb;
-
-<!ENTITY % ISOamsn PUBLIC
- "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN">
-%ISOamsn;
-
-<!ENTITY % ISOamso PUBLIC
- "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN">
-%ISOamso;
-
-<!ENTITY % ISOamsr PUBLIC
- "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN">
-%ISOamsr;
-
-<!ENTITY % ISOcyr1 PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN">
-%ISOcyr1;
-
-<!ENTITY % ISOdia PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN">
-%ISOdia;
-
-<!ENTITY % ISOlat1 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN">
-%ISOlat1;
-
-<!ENTITY % ISOlat2 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN">
-%ISOlat2;
-
-<!ENTITY % ISOnum PUBLIC
- "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN">
-%ISOnum;
-
-<!ENTITY % ISOpub PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN">
-%ISOpub;
-
-<!ENTITY % ISOtech PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN">
-%ISOtech;
-
-<!ENTITY % ATIeqn1 PUBLIC "-//ArborText//ENTITIES Equation1//EN">
-%ATIeqn1;
-
-
-
-
-
--- a/usr/src/cmd/man/src/util/ati-num.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- ArborText character entity set. Typical invocation:
-     <!ENTITY % ATInum PUBLIC
-       "-//ArborText//ENTITIES Numeric and Special Graphic//EN">
-     %ATInum;
--->
-
-<!ENTITY peso   SDATA "[peso  ]"--=peso sign-->
-
-<!ENTITY monthname   SDATA "[monthname  ]" -- current month, e.g., January -->
-<!ENTITY monthnum   SDATA "[monthnum  ]" -- current month as number, e.g., 1 -->
-<!ENTITY day   SDATA "[day  ]" -- current day of the month -->
-<!ENTITY year   SDATA "[year  ]" -- current year -->
-
-<!ENTITY brkpt   SDATA "[brkpt  ]" -- allowable point to break line -->
-
--- a/usr/src/cmd/man/src/util/ati-tbl.elm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- ArborText style table -->
-
-<!-- It is assumed that %tblcon is defined when this file is included,
-     to specify content for tablecell, e.g.,
-	<!ENTITY % tblcon "#PCDATA|emphasis|%eqn|graphic" >
--->
-
-<!-- [JFS] The table, tablerow and tablecell elements have a new
-           attribute defined called "label". This attribute is
-	   intended to be used by command language processing.
-	   <tablecell> also has another attribute called "action". It
-	   is anticipated that this attribute will also contribute to
-	   command language processing of tables.
--->
-
-<!ELEMENT table		- - (rowrule,(tablerow,rowrule)+)>
-<!ATTLIST table		acl		CDATA	#IMPLIED
-			chj		CDATA	#IMPLIED
-			csl		CDATA	#IMPLIED
-			cst		CDATA	#IMPLIED
-			ctl		CDATA	#IMPLIED
-			cwl		CDATA	#REQUIRED
-			hff		CDATA	#IMPLIED
-			hfs		CDATA	#IMPLIED
-			htm		CDATA	#IMPLIED
-			hts		CDATA	#IMPLIED
-			jst		CDATA	#IMPLIED
-			ncols		CDATA	#IMPLIED
-			off		CDATA	#IMPLIED
-			rth		CDATA	#IMPLIED
-			rst		CDATA	#IMPLIED
-			rvj		CDATA	#IMPLIED
-			tff		CDATA	#IMPLIED
-			tfs		CDATA	#IMPLIED
-			tts		CDATA	#IMPLIED
-			unt		CDATA	#IMPLIED
-			wdm		CDATA	#REQUIRED
-			ctmarg		CDATA	#IMPLIED
-			cbmarg		CDATA	#IMPLIED
-			clmarg		CDATA	#IMPLIED
-			crmarg		CDATA	#IMPLIED
-			dispwid		CDATA	#IMPLIED
-			label		CDATA	#IMPLIED
-			>
-
-<!ELEMENT tablerow	- O (cellrule,(tablecell,cellrule)+)>
-<!ATTLIST tablerow	hdr		CDATA	#IMPLIED
-			rht		CDATA	#IMPLIED
-			rvj		CDATA	#IMPLIED
-			label           CDATA   #IMPLIED
-			>
-
-<!ELEMENT tablecell	- - (%tblcon)*>
-
-<!ATTLIST tablecell	cff		CDATA	#IMPLIED
-			cfs		CDATA	#IMPLIED
-			chj		CDATA	#IMPLIED
-			cts		CDATA	#IMPLIED
-			cvj		CDATA	#IMPLIED
-			shd		CDATA	#IMPLIED
-			spn		CDATA	#IMPLIED
-			vspn		CDATA	#IMPLIED
-			label           CDATA   #IMPLIED
-			action		CDATA	#IMPLIED>
-
-<!ELEMENT rowrule	- O EMPTY>
-<!ATTLIST rowrule	rty		CDATA	#IMPLIED
-			rtl		CDATA	#IMPLIED>
-
-<!ELEMENT cellrule	- O EMPTY>
-<!ATTLIST cellrule	rty		CDATA	#IMPLIED>
Binary file usr/src/cmd/man/src/util/atilogo.eps has changed
--- a/usr/src/cmd/man/src/util/basic.dcl	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-<!SGML	"ISO 8879:1986"  
---  --
--- CDDL HEADER START --
---  --
--- The contents of this file are subject to the terms of the --
--- Common Development and Distribution License, Version 1.0 only --
--- (the "License").  You may not use this file except in compliance --
--- with the License. --
---  --
--- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --
--- or http://www.opensolaris.org/os/licensing. --
--- See the License for the specific language governing permissions --
--- and limitations under the License. --
---  --
--- When distributing Covered Code, include this CDDL HEADER in each --
--- file and include the License file at usr/src/OPENSOLARIS.LICENSE. --
--- If applicable, add the following below this CDDL HEADER, with the --
--- fields enclosed by brackets "[]" replaced with your own identifying --
--- information: Portions Copyright [yyyy] [name of copyright owner] --
---  --
--- CDDL HEADER END --
---  --
--- Basic SGML declaration using Reference Concrete Syntax --
-CHARSET
-BASESET	"ISO 646-1983//CHARSET
-        International Reference Version (IRV)//ESC 2/5 4/0"
-DESCSET
-	0	9   UNUSED
-	9	2   9
-       11	2   UNUSED
-       13	1   13
-       14	18  UNUSED
-       32	95  32
-      127	1   UNUSED
-
-CAPACITY SGMLREF
-	TOTALCAP	35000
-	ENTCAP		35000
-	ENTCHCAP	35000
-	ELEMCAP		35000
-	GRPCAP		35000
-	EXGRPCAP	35000
-	EXNMCAP		35000
-	ATTCAP		35000
-	ATTCHCAP	35000
-	AVGRPCAP	35000
-	NOTCAP		35000
-	NOTCHCAP	35000
-	IDCAP		35000
-	IDREFCAP	35000
-	MAPCAP		35000
-	LKSETCAP	35000
-	LKNMCAP		35000
-
-SCOPE 	 DOCUMENT
-
-SYNTAX   
-	SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
-		18 19 20 21 22 23 24 25 26 27 28 29 30 31 127 255
-BASESET  "ISO 646-1983//CHARSET
-          International Reference Version (IRV)//ESC 2/5 4/0"
-DESCSET  0	128	0
-FUNCTION RE	13
-	 RS	10
-	 SPACE	32
-	 TAB	SEPCHAR	9
-NAMING	 LCNMSTRT ""
-	 UCNMSTRT ""
-	 LCNMCHAR "-."
-	 UCNMCHAR "-."
-	 NAMECASE GENERAL YES
-		  ENTITY  NO
-DELIM	 GENERAL SGMLREF
-	 SHORTREF SGMLREF
-NAMES	 SGMLREF
-QUANTITY SGMLREF
-	ATTCNT		40
-	ATTSPLEN	960
-	BSEQLEN		960
-	DTAGLEN		16
-	DTEMPLEN	16
-	ENTLVL		16
-	GRPCNT		32
-	GRPGTCNT	96
-	GRPLVL		16
-	LITLEN		240
-	NAMELEN		8
-	NORMSEP		2
-	PILEN		240
-	TAGLEN		960
-	TAGLVL		24
-
-FEATURES
-MINIMIZE DATATAG NO     OMITTAG  YES     RANK     NO     SHORTTAG YES
-LINK     SIMPLE  NO     IMPLICIT NO     EXPLICIT NO
-OTHER    CONCUR  NO     SUBDOC   NO     FORMAL   NO
-APPINFO NONE>
--- a/usr/src/cmd/man/src/util/cals-tbl.elm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-
-<!--	This entity is fragment of:
-
-	<!DOCTYPE doc PUBLIC "-//USA-DOD//DTD MIL-M-38784B 910201//EN">
-
-	...and contains the elements that define CALS tables.
-
-	NOTE:  The table elements and ATTLISTs reference a number
-	of other elements and parametric entities that are not
-	defined in this fragment.  They are listed below.
-
-
-Parametric entities that must be defined by the referencing entity:
-
-	ENTITY NAME	WHERE USED
-	%titles		In content model of:
-			<table>
-			<chart>
-
-	%yesorno	In ATTLIST of:
-			<table>
-			<chart>
-			<tgroup>
-			<colspec>
-			<spanspec>
-			<row>
-			<entry>
-			<entrytbl>
-
-	%bodyatt	In ATTLIST of:
-			<table>
-			<chart>
-			
-	%secur		In ATTLIST of:
-			<table>
-			<chart>
-			<tgroup>
-			<thead>
-			<tfoot>
-			<tbody>
-			<row>
-			<entry>
-			<entrytbl>
-
-	%paracon	In content model of:
-			<entry>
-
-
-
-Elements that are referenced either in a content model,
-inclusions, or exclusions. 
-
-	<chart>/<table> content model:
-		%titles;
-
-	<chart>/<table> exclusion list: 
-		<figure>
-
-	<entry> content model:
-		<para>
-		<warning>
-		<caution>
-		<note>
-		<legend>
-		%paracon;
-
--->
-
-
-<!-- The table elements:  -->
-
-<!ELEMENT (table | chart) - - (%titles;, tgroup+)     -(table | chart | figure)>
-
-<!ATTLIST (table | chart)   tabstyle    NMTOKEN     #IMPLIED
-                            tocentry    %yesorno;   "1"
-                            shortentry  %yesorno;   #IMPLIED
-                            frame  (top|bottom|topbot|all|sides|none) #IMPLIED
-                            colsep      %yesorno;    #IMPLIED
-                            rowsep      %yesorno;    #IMPLIED
-                            orient    (port | land)  #IMPLIED
-                            pgwide      %yesorno;    #IMPLIED
-                            %bodyatt;
-                            %secur; >
-
-<!ELEMENT tgroup  - o   (colspec*, spanspec*, thead?, tfoot?, tbody) >
-
-<!ATTLIST tgroup  cols         NUMBER   #REQUIRED
-                  tgroupstyle  NMTOKEN  #IMPLIED
-                  colsep       %yesorno;  #IMPLIED
-                  rowsep       %yesorno;  #IMPLIED
-                  align  (left | right | center | justify | char )  "left"
-                  charoff      NUTOKEN     "50"
-                  char         CDATA       ""
-                  %secur; >
-
-<!ELEMENT colspec    - o   EMPTY>
-
-<!ATTLIST colspec  colnum     NUMBER      #IMPLIED
-                   colname    NMTOKEN     #IMPLIED
-                   align  (left|right|center|justify|char)  #IMPLIED
-                   charoff    NUTOKEN     #IMPLIED
-                   char       CDATA       #IMPLIED
-                   colwidth   CDATA       #IMPLIED
-                   colsep     %yesorno;   #IMPLIED
-                   rowsep     %yesorno;   #IMPLIED>
-
-<!ELEMENT spanspec    - o   EMPTY >
-
-<!ATTLIST spanspec  namest    NMTOKEN     #REQUIRED
-                    nameend   NMTOKEN     #REQUIRED
-                    spanname  NMTOKEN     #REQUIRED
-                    align  (left|right|center|justify|char)  "center"
-                    charoff   NUTOKEN     #IMPLIED
-                    char      CDATA       #IMPLIED
-                    colsep    %yesorno;   #IMPLIED
-                    rowsep    %yesorno;   #IMPLIED>
-
-<!ELEMENT (thead | tfoot)   - o   (colspec*, row+)  -(entrytbl) >
-
-<!ATTLIST thead   valign  (top | middle | bottom) "bottom"
-                  %secur; >
-
-<!ATTLIST tfoot   valign   (top | middle | bottom) "top"
-                  %secur; >
-
-<!ELEMENT tbody   - o   (row+) >
-
-<!ATTLIST tbody   valign  (top | middle | bottom)  "top"
-                  %secur; >
-
-<!ELEMENT row     - o   (entry | entrytbl)+ >
-
-<!ATTLIST row   rowsep   %yesorno;   #IMPLIED
-                %secur; >
-
-<!--CHANGE 910201 - FOLLOWING ELEMENT CHANGED  -->
-
-<!ELEMENT entry   - o   (para | warning | caution | note | legend | %paracon;)+>
-
-<!--CHANGE 910201 - FOLLOWING ATTLIST CHANGED  -->
-
-<!ATTLIST entry   colname     NMTOKEN     #IMPLIED
-                  namest      NMTOKEN     #IMPLIED
-                  nameend     NMTOKEN     #IMPLIED
-                  spanname    NMTOKEN     #IMPLIED
-                  morerows    NUMBER      "0"
-                  colsep      %yesorno;   #IMPLIED
-                  rowsep      %yesorno;   #IMPLIED
-                  rotate      %yesorno;   "0"
-                  valign  (top | bottom | middle)  "top"
-                  align  (left | right | center | justify | char )  #IMPLIED 
-                  charoff      NUTOKEN    #IMPLIED
-                  char         CDATA      #IMPLIED
-                  %secur; >
-
-<!-- ELEMENT      ATTR  MIN   VALUE CONTENT     DEFAULT     EXCEPT -->
-
-<!ELEMENT entrytbl   - -  (colspec*, spanspec*, thead?, tbody)+     -(entrytbl)>
-
-<!ATTLIST entrytbl  cols    NUMBER    #REQUIRED
-                   tgroupstyle  NMTOKEN  #IMPLIED
-                   colname      NMTOKEN  #IMPLIED
-                   spanname     NMTOKEN  #IMPLIED
-                   colsep       %yesorno; #IMPLIED
-                   rowsep       %yesorno; #IMPLIED
-                   align  (left | right | center | justify | char )  #IMPLIED
-                   charoff      NUTOKEN    #IMPLIED
-                   char         CDATA      #IMPLIED
-                   %secur; >
-
-
-
-
-
-
-
-
--- a/usr/src/cmd/man/src/util/capref.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-TOTALCAP	35000
-ENTCAP		35000
-ENTCHCAP	35000
-ELEMCAP		35000
-GRPCAP		35000
-EXGRPCAP	35000
-EXNMCAP		35000
-ATTCAP		35000
-ATTCHCAP	35000
-AVGRPCAP	35000
-NOTCAP		35000
-NOTCHCAP	35000
-IDCAP		35000
-IDREFCAP	35000
-MAPCAP		35000
-LKSETCAP	35000
-LKNMCAP		35000
--- a/usr/src/cmd/man/src/util/catalog	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
--- ident	"%Z%%M%	%I%	%E% SMI" --
---  --
--- CDDL HEADER START --
---  --
--- The contents of this file are subject to the terms of the --
--- Common Development and Distribution License, Version 1.0 only --
--- (the "License").  You may not use this file except in compliance --
--- with the License. --
---  --
--- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --
--- or http://www.opensolaris.org/os/licensing. --
--- See the License for the specific language governing permissions --
--- and limitations under the License. --
---  --
--- When distributing Covered Code, include this CDDL HEADER in each --
--- file and include the License file at usr/src/OPENSOLARIS.LICENSE. --
--- If applicable, add the following below this CDDL HEADER, with the --
--- fields enclosed by brackets "[]" replaced with your own identifying --
--- information: Portions Copyright [yyyy] [name of copyright owner] --
---  --
--- CDDL HEADER END --
---  --
--- Sun DocBook variant --
-PUBLIC "-//Sun Microsystems//DTD DocBook V2.4-Based SolBook Subset V1.0//EN" "solbookv1/solbook.dtd"
-PUBLIC "-//Sun Microsystems//DTD DocBook V3.0-Based SolBook Subset V2.0//EN" "solbookv2/solbook.dtd"
-PUBLIC "-//Sun Microsystems//DTD DocBook V3.0-Based SolBook Subset V2.1//EN" "solbookv2/solbook.dtd"
-PUBLIC "-//Sun Microsystems//DTD SolBook 3.0//EN" "solbookv2/solbook.dtd"
-PUBLIC "-//Sun Microsystems//DTD SolBook 3.1//EN" "solbookv2/solbook.dtd"
-
-SGMLDECL "solbookv2/solbook.dcl"
-
-PUBLIC "-//Sun Microsystems//ENTITIES SolBook ISO 8879:1986 Subset//EN" "../entities/sun_iso.gml"
-
Binary file usr/src/cmd/man/src/util/caution.eps has changed
--- a/usr/src/cmd/man/src/util/core.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- CORE DTD SUBSET
-	This subset declaration defines a core set of elements. The subset
-	includes some common basic elemnents such as paragraphs, lists,
-	figures, footnotes, etc. It does not contain any definitions for
-	heirarchical elements such as front, body, rear, chapters,
-	sections, etc. The elements below are intended to be included in a
-	master dtd by reference, e.g., to defined the content of a section,
-	the master dtd would only need to declare the section and any
-	heirarchical elements included therein, but not need to decalare
-	anything at the "leaf" level:
-
-		<!ELEMENT section - O (title,(%parlevel;|subsect))
-
-	In other words the dtd author concentrates on the document
-	structure and simply references the leaf level components.
--->
-
-<!ENTITY % par "par">
-<!ENTITY % fig "figure">
-<!ENTITY % footnote "footnote">
-<!ENTITY % graphic "graphic">
-<!ENTITY % list "list">
-<!ENTITY % xref "xref">
-
-<!ENTITY % notes "%footnote;|endnote|citation">
-<!ENTITY % text  "CDATA" -- text, no entities (e.g., no diacritics) -->
-<!ENTITY % etext "#PCDATA" -- text with entities (e.g., diacritics) -->
-<!ENTITY % eqn  "display-equation">
-<!ENTITY % table "table">
-<!ENTITY % emphasis "bold|ital|boldit|under">
-<!ENTITY % figures "%graphic;|reserve-space|%table|figurepar">
-<!ENTITY % parlevel "%par;|%fig;|%list;|list|computer|poetry|%eqn|extract">
-<!ENTITY % subp.a1 "%etext|%xref;|super|sub|%emphasis|indexterm|inline-equation">
-<!ENTITY % subp.a2 "%subp.a1|%notes">
-<!-- note, since subp.b is a subset of parlevel, don't include subp.b
- in any model that contains parlevel (in the same "or" group)-->
-<!ENTITY % subp.b "computer|%eqn|%list|extract|poetry">
-
-<!ENTITY % tblcon "%subp.a2|%subp.b|graphic" >
-
-<!ENTITY % jfstable PUBLIC "-//ArborText//ELEMENTS jfs Table Structures//EN">
-%jfstable;
-
-<!ELEMENT %par;  - - (%subp.a2|%subp.b)*>
-
-<!ELEMENT %list;  - - (item)*>
-<!ELEMENT list - O (li,li,li*) >
-
-<!ELEMENT (item|li) O O (%subp.a2|%subp.b)*>
-<!ATTLIST item state (0|1) "0" 
-               id  ID #IMPLIED>
-
-<!ELEMENT %fig; - - (caption?,(%figures|%subp.b)*)>
-
-<!ELEMENT extract - O (%parlevel)*>
-
-<!ELEMENT poetry - O (%subp.a2)*>
-
-<!ELEMENT caption - O (%subp.a2)*>
-<!ATTLIST caption id  ID #IMPLIED>
-
-<!ELEMENT %graphic; - O EMPTY>
-<!ATTLIST %graphic; filename CDATA #IMPLIED
-   type       CDATA #IMPLIED
-   mag        NUMBER #IMPLIED
-   vertadjpct CDATA -25>
-
-<!ELEMENT reserve-space - O EMPTY>
-
-
-<!-- eqn [mostly aap]-->
-<!-- NOTE:
-        We include and use our
-        math equation document declaration subset.
--->
-
-<!ENTITY % atimath PUBLIC "-//ArborText//ELEMENTS Math Equation Structures//EN">
-%atimath;
-
-<!ELEMENT display-equation - - (equation-caption?,fd?) >
-<!ATTLIST display-equation id  ID #IMPLIED>
-
-<!ELEMENT equation-caption - - (%subp.a2)*>
-
-<!ELEMENT inline-equation - - (f)? >
-
-
-<!ELEMENT figurepar - - (%subp.a1|%subp.b)*>
-
-<!ELEMENT computer - - (%etext)*>
-
-<!ELEMENT super  - - (%subp.a1)*  -(super)>
-
-<!ELEMENT sub  - - (%subp.a1)*  -(sub)>
-
-<!ELEMENT (%emphasis;) - - (%subp.a1)*  -(%emphasis;)>
-
-<!ELEMENT indexterm - - (%etext|indextopic)* >
-
-<!ELEMENT indextopic - - (%etext)*>
-
-<!ELEMENT %footnote; - - (notepar)+>
-
-<!ELEMENT endnote - - (notepar)+>
-
-<!ELEMENT endnotes - O EMPTY>
-
-<!ELEMENT notepar O O (%subp.a1|%subp.b)*>
-
-<!ELEMENT %xref; - O EMPTY>
-<!ATTLIST %xref; refid IDREF #REQUIRED>
-
-<!ELEMENT citation - - %text>
-<!ATTLIST citation citid  ID #IMPLIED>
--- a/usr/src/cmd/man/src/util/docbook-to-man.ts	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2278 +0,0 @@
-#############################################################################
-# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#	solbook-to-man.ts
-#
-#############################################################################
-#
-# Copyright (c) 1996 X Consortium
-# Copyright (c) 1996 Dalrymple Consulting
-# 
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-# 
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-# 
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-# 
-# Except as contained in this notice, the names of the X Consortium and
-# Dalrymple Consulting shall not be used in advertising or otherwise to
-# promote the sale, use or other dealings in this Software without prior
-# written authorization.
-# 
-#############################################################################
-#
-# Written 5/29/96 by Fred Dalrymple
-#
-#############################################################################
-#
-#  Variables
-#
-Var:	callout 0
-Var:	orderlist 0
-Var:	nestorderlist 0
-Var:	procstep 0
-Var:	procsubstep 0
-Var:	examplenum 1
-Var:	tablenum 1
-Var:	firstpara false
-Var:	nestedpara false
-Var:	termcount 0
-#
-#
-#
-#
-#############################################################################
-#
-#  Hierarchy (and document meta stuff)
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		REFENTRY
-StartText:	.TH ${_followrel descendant REFENTRYTITLE 1000}
-		${_followrel descendant MANVOLNUM 1000}
-EndText:	...\\" created by instant / solbook-to-man, ${date}
--
-#
-GI:		REFMISCINFO
-#	The Last Change date
-AttValue:	CLASS DATE
-Set:	the_date ${+content}
-Ignore:	data
--
-#
-GI:		REFMISCINFO
-#	The OS release string
-AttValue:	CLASS SOFTWARE
-Set:	the_release ${+content}
-Ignore:	data
--
-#
-GI:		REFMISCINFO
-#	The section title
-AttValue:	CLASS SECTDESC
-Set:	the_sect ${+content}
-Ignore:	data
--
-GI:		REFMISCINFO
-# Do nothing
-Ignore:		data
--
-#
-GI:		REFMETA
-# Use the end of refmeta to output the arguments for the .TH macro
-EndText:	\s"${the_date}"\s"${the_release}"\s"${the_sect}"
--
-#
-#
-GI:		DOCINFO
-Ignore:		all
--
-#
-GI:		TITLE
-Context:	DOCINFO
-#	inside DocInfo, which we're ignoring
--
-GI:		REFNAMEDIV
-StartText:	.SH "NAME"
--
-#
-GI:		REFDESCRIPTOR
-EndText:	,\s${_set refnameseen xy}
--
-#
-GI:		REFNAME
-Relation:	sibling-1 REFDESCRIPTOR
-EndText:	,\s
--
-#
-GI:		REFNAME
-StartText:	${_isset refnameseen xxx 20}
-EndText:	${_set refnameseen xxx}
--
-#
-GI:		_rfname
-SpecID:		20
-Ignore:		data
-StartText:	,\s
-EndText:	${_set refnameseen xy}
--
-#
-GI:		REFPURPOSE
-StartText:	\s\\-\s
-EndText:	
--
-#
-GI:		REFCLASS
-StartText:	.PP
-EndText:	
--
-#
-GI:		REFSYNOPSISDIV
-StartText:	.SH "SYNOPSIS"
-EndText:	
--
-#
-GI:             TITLE
-Context:        REFSYNOPSISDIV
-Ignore:         all
--
-#
-GI:		REFSECT1
-StartText:	.SH "${_followrel child TITLE 1000}"
-EndText:	
--
-#
-GI:		REFSECT2
-StartText:	.SS "${_followrel child TITLE 1000}"
-EndText:	
--
-#
-GI:		REFSECT3
-StartText:	.SS "${_followrel child TITLE 1000}"
-EndText:	
--
-#
-GI:		BRIDGEHEAD
-StartText:	.PP\\fB
-EndText:	\\fR.PP
--
-#
-GI:		TITLE
-Context:	REFSECT1
-Ignore:		all
--
-#
-GI:		TITLE
-Context:	REFSECT2
-Ignore:		all
--
-#
-GI:		TITLE
-Context:	REFSECT3
-Ignore:		all
--
-#
-GI:		LEGALNOTICE
-#	part of the DocInfo structure, which is ignored
-Ignore:		all
--
-#
-GI:		TITLE
-Context:	LEGALNOTICE
-#	part of the DocInfo structure, which is ignored
-Ignore:		all
--
-#
-GI:		REFENTRYTITLE
-Context:	REFMETA
-#	part of the DocInfo structure, which is ignored
-Ignore:		all
--
-#
-GI:		MANVOLNUM
-Context:	REFMETA
-#	part of the DocInfo structure, which is ignored, though this element
-#	if accessed directly by the _followrel call from the REFENTRY element.
-Ignore:		all
--
-#
-GI:		SUBTITLE
-#	part of the DocInfo structure, which is ignored
-Ignore:		all
--
-#
-GI:		AUTHORGROUP
-#	part of the DocInfo structure, which is ignored
-Ignore:		all
--
-#
-GI:		AUTHOR
-Context:	AUTHORGROUP
-#	part of the DocInfo structure, which is ignored
-Ignore:		all
--
-#
-GI:		EDITOR
-Context:	AUTHORGROUP
-#	part of the DocInfo structure, which is ignored
-Ignore:		all
--
-#
-GI:		COLLAB
-Context:	AUTHORGROUP
-#	part of the DocInfo structure, which is ignored
-Ignore:		all
--
-#
-GI:		COLLABNAME
-Context:	COLLAB
-#	part of the DocInfo structure, which is ignored
-Ignore:		all
--
-#
-GI:		CORPAUTHOR
-Context:	AUTHORGROUP
-#	part of the DocInfo structure, which is ignored
-Ignore:		all
--
-#
-GI:		OTHERCREDIT
-Context:	AUTHORGROUP
-#	part of the DocInfo structure, which is ignored
-Ignore:		all
--
-#
-#
-#############################################################################
-#
-#  (before we get into the branch stuff, we turn off paragraphs in some
-#   contexts where they would break the flow.  Generally, this happens
-#   within indented areas, such as within lists.
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		PARA
-Context:	ENTRY
-NthChild:	1
-#	nothing in this context
--
-#
-GI:		PARA
-Context:	ENTRY
-StartText: .br.sp 1
--
-#
-GI:		PARA
-Context:	NOTE
-NthChild:	1
-EndText:	.sp 1
--
-#
-GI:		PARA
-Context:	NOTE
-# EndText handled in NOTE EndText
--
-#
-GI:		PARA
-Context:	CAUTION
-# EndText handled in CAUTION EndText
--
-#
-GI:		PARA
-Context:	GLOSSDEF
-NthChild:	1
-#	nothing in this context
--
-#
-GI:		PARA
-Context:	STEP
-NthChild:	1
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:     PARA
-Context:    STEP
-Relation:   sibling-1 TITLE
-StartText:  \\fB
-EndText:    \\fR
--
-#
-GI:		PARA
-Context:	STEP
-StartText:	.sp 2n
--
-#
-GI:		PARA
-Context:	CALLOUT
-NthChild:	1
-#	nothing in this context
--
-#
-GI:		PARA
-Context:	MSGTEXT
-NthChild:	1
-#	nothing in this context
--
-#
-GI:		PARA
-Context:	MSGEXPLAN
-NthChild:	1
-#	nothing in this context
--
-#
-#
-#############################################################################
-#
-#  Regular "branch" stuff
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		FORMALPARA
-#	it's all done in TITLE (FORMALPARA) and PARA
--
-#
-GI:		TITLE
-Context:	FORMALPARA
-StartText:	.PP\\fB
-EndText:	\\fR
--
-#
-GI:		PARA
-Context:	LISTITEM
-EndText:	.sp
--
-#
-GI:		PARA
-Relation:	ancestor ORDEREDLIST
-StartText:	.sp
--
-#
-GI:		PARA
-Context:	LISTITEM
-Relation:	ancestor VARLISTENTRY
-NthChild:	1
-EndText:	.sp
--
-#
-GI:       PARA
-Relation:   ancestor VARLISTENTRY
-StartText:    .sp
--
-#
-GI:		PARA
-Context:	INFORMALEXAMPLE
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		PARA
-Relation:	ancestor STEP
-StartText:	.IP "" 10
--
-#
-GI:		PARA
-StartText:	.PP
--
-#
-GI:		SIMPARA
-StartText:	.PP
--
-#
-GI:     PROGRAMLISTING
-StartText:  .sp.nf\\f(CW
-EndText:    \\fR.fi.sp
--
-#
-GI:		LITERALLAYOUT
-Context:	ENTRY
-StartText:	.nf
-EndText:	.fi
--
-#
-#GI:		LITERALLAYOUT
-#Relation:	ancestor LISTITEM
-#StartText:	.nf.sp
-#EndText:	.fi.sp
-#-
-#
-GI:		LITERALLAYOUT
-StartText:	.sp.nf
-EndText:	.fi.sp
--
-#
-GI:		BLOCKQUOTE
-StartText:	.PP.RS
-EndText:	.RE
--
-#
-GI:		TITLE
-Context:	BLOCKQUOTE
-StartText:	\\fB
-EndText:	\\fR.PP
--
-#
-GI:		EPIGRAPH
-StartText:	.PP.RS
-EndText:	.RE
--
-#
-GI:		ATTRIBUTION
-StartText:	\\fI
-EndText:	\\fR.PP
--
-#
-GI:		ABSTRACT
-Relation:	child TITLE
--
-#
-GI:		ABSTRACT
-StartText:	.SS "Abstract"
--
-#
-GI:		TITLE
-Context:	ABSTRACT
-StartText:	.SS "
-EndText:	"
--
-#
-GI:		REVHISTORY
-StartText:	.SS "Revision History"
-EndText:	
--
-#
-GI:		REVISION
-StartText:	.PP\\fBRevision:\\fR\s
-EndText:	
--
-#
-GI:		REVNUMBER
-StartText:	#\s
-EndText:	;\s
--
-#
-GI:		DATE
-EndText:	;\s
--
-#
-GI:		AUTHORINITIALS
-Context:	REVISION
-StartText:	\s
--
-#
-GI:		REVREMARK
-StartText:	;\s\s
-EndText:	
--
-#
-GI:		PROGRAMLISTINGCO
-#	nothing to do specifically in ProgramListingCO -- it falls to
-#	the content of ProgramListing and any callout list
--
-#
-GI:		SCREEN
-Relation:	ancestor LISTITEM
-StartText:	.nf.sp
-EndText:	.fi.sp
--
-#
-GI:		SCREEN
-StartText:	.PP.nf
-EndText:	.fi
--
-#
-GI:		SCREENCO
-#	nothing to do specifically in ScreenCO -- it falls to
-#	the content of Screen and any callout list
--
-#
-GI:		SCREENSHOT
-#	nothing specific to do here -- defer to any ScreenInfo or the
-#	included graphic
--
-#
-GI:		SCREENINFO
-StartText:	.PP\\fI
-EndText:	\\fR.PP
--
-#
-GI:		GRAPHICCO
-#	nothing to do specifically in GraphicCO -- it falls to
-#	the content of Graphic and any callout list
--
-#
-GI:		INFORMALEXAMPLE
-StartText:	.sp
-EndText:	.sp
--
-#
-GI:		EXAMPLE
-#	nothing special to do here -- it falls to the content.
--
-#
-GI:		TITLE
-Context:	EXAMPLE
-StartText:	.PP\\fBExample ${examplenum}: 
-EndText:	\\fR
-Increment:	examplenum 1
--
-#
-GI:		FIGURE
-#	nothing special to do here -- it falls to the content.
--
-#
-GI:		TITLE
-Context:	FIGURE
-StartText:	.PP\\fB
-EndText:	\\fR
--
-#
-GI:		SIDEBAR
-Relation:	child TITLE
-StartText:	.PP.RS
-EndText:	.RE
--
-#
-GI:		SIDEBAR
-StartText:	.PP.RS\\fB[ Sidebar ]\\fR
-EndText:	.RE
--
-#
-GI:		TITLE
-Context:	SIDEBAR
-StartText:	\\fB[ Sidebar:\s
-EndText:	\s]\\fR
--
-#
-GI:		HIGHLIGHTS
-StartText:	.SS "Highlights"
--
-#
-GI:		AUTHORBLURB
-#	nothing to do specially -- an included title may occur
--
-#
-GI:		TITLE
-Context:	AUTHORBLURB
-StartText:	.PP\\fB
-EndText:	\\fR
--
-#
-#
-#############################################################################
-#
-#  Call-out material
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		CO
-#	nothing to do for the anchor of a callout
--
-#
-GI:		AREASPEC
-Ignore:		all
-#	not much to do with representing the anchor of callouts in n/troff
--
-#
-GI:		AREA
-Ignore:		all
-#	part of AreaSpec, which is being ignored
--
-#
-GI:		AREASET
-Ignore:		all
-#	part of AreaSpec, which is being ignored
--
-#
-#
-#############################################################################
-#
-#  Address block
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		ADDRESS
-StartText:	.PP.nf
-EndText:	.fi
--
-#
-GI:		STREET
-#	just the content...
--
-#
-GI:		POB
-#	just the content...
--
-#
-GI:		POSTCODE
-#	just the content...
--
-#
-GI:		CITY
-EndText:	,\s
--
-#
-GI:		STATE
-#	just the content
--
-#
-GI:		COUNTRY
-#	just the content
--
-#
-GI:		PHONE
-StartText:	voice:\s
--
-#
-GI:		FAX
-StartText:	fax:\s
--
-#
-GI:		OTHERADDR
-#	just the content..
--
-#
-GI:		EMAIL
-Context:	ADDRESS
-#	just the content..
--
-#
-#
-#############################################################################
-#
-#  Lists
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		GLOSSLIST
-Relation:	ancestor ITEMIZEDLIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		GLOSSLIST
-Relation:	ancestor GLOSSLIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		GLOSSLIST
-Relation:	ancestor ORDEREDLIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		GLOSSLIST
-Relation:	ancestor SIMPLELIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		GLOSSLIST
-Relation:	ancestor VARIABLELIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		GLOSSLIST
-Relation:	ancestor SEGMENTEDLIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		GLOSSLIST
-#	Nothing to do here..  see glossentry, etc
--
-#
-GI:		GLOSSENTRY
-#	nothing to do..
--
-#
-GI:		GLOSSTERM
-Context:	GLOSSENTRY
-StartText:	.IP "
-EndText:	" 10
--
-#
-GI:		GLOSSTERM
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		ACRONYM
-Context:	GLOSSENTRY
-StartText:	(\\fIacronym:\s\\fR
-EndText:	)\s\s
--
-#
-GI:		ABBREV
-Context:	GLOSSENTRY
-StartText:	(\\fIabbreviation:\s\\fR
-EndText:	)\s\s
--
-#
-GI:		GLOSSSEE
-StartText:	\\fISee \\fR
--
-#
-GI:		GLOSSDEF
-#	nothing special to do -- just pass the content.
--
-#
-GI:		GLOSSSEEALSO
-StartText:	\\fISee Also \\fR
--
-#
-GI:		ITEMIZEDLIST
-Relation:	ancestor LISTITEM
-StartText:	.sp.in +2
-EndText:	.in -2
--
-#
-GI:		ITEMIZEDLIST
-StartText:	.sp.in +2
-EndText:	.in -2
--
-#
-GI:		LISTITEM
-Context:	ITEMIZEDLIST
-PAttSet:	MARK NONE
-StartText:	.mk.in +3.rt
-EndText:	.in -3
--
-#
-GI:		LISTITEM
-Context:	ITEMIZEDLIST
-StartText:	\\(bu.mk.in +3.rt
-EndText:	.in -3
--
-#
-GI:		ORDEREDLIST
-Relation:	ancestor ITEMIZEDLIST
-StartText:	.RS ${_set orderlist 1}
-EndText:	.RE
--
-#
-GI:		ORDEREDLIST
-Relation:	ancestor GLOSSLIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		ORDEREDLIST
-Relation:	ancestor ORDEREDLIST
-StartText:	.in +4${_set nestorderlist ${orderlist}} ${_set orderlist a}
-EndText:	.in -4.sp${_set orderlist ${nestorderlist}}
--
-#
-GI:		ORDEREDLIST
-Relation:	ancestor SIMPLELIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		ORDEREDLIST
-Relation:	ancestor VARIABLELIST
-StartText:	.in +4${_set orderlist 1}
-EndText:	.sp.in -4
--
-#
-GI:		ORDEREDLIST
-Relation:	ancestor SEGMENTEDLIST
-StartText:	.RS${_set orderlist 1}
-EndText:	.RE
--
-#
-GI:		ORDEREDLIST
-StartText:	${_set orderlist 1}
--
-#
-GI:		LISTITEM
-Context:	ORDEREDLIST
-Increment:	orderlist 1
-StartText:	.br.sp${orderlist}..mk.in +4.rt
-EndText:	.in -4
--
-#
-GI:		SIMPLELIST
-Relation:	ancestor ITEMIZEDLIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		SIMPLELIST
-Relation:	ancestor GLOSSLIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		SIMPLELIST
-Relation:	ancestor ORDEREDLIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		SIMPLELIST
-Relation:	ancestor SIMPLELIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		SIMPLELIST
-Relation:	ancestor VARIABLELIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		SIMPLELIST
-Relation:	ancestor SEGMENTEDLIST
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		SIMPLELIST
-#	nothing to do here..
--
-#
-GI:		MEMBER
-PAttSet:	TYPE INLINE
-NthChild:	1
--
-#
-GI:		MEMBER
-PAttSet:	TYPE INLINE
-StartText:	,\s
--
-#
-GI:		MEMBER
-PAttSet:	TYPE HORIZ
-NthChild:	1
-StartText:	.PP\t
--
-#
-GI:		MEMBER
-PAttSet:	TYPE HORIZ
-StartText:	\t
--
-#
-GI:		MEMBER
-PAttSet:	TYPE VERT
-StartText:	.IP "" 10
-EndText:	
--
-#
-#GI:		VARIABLELIST
-#Relation:	ancestor ITEMIZEDLIST
-#StartText:	.RS 4
-#EndText:	.sp.RE
-#-
-#
-GI:		VARIABLELIST
-Relation:	ancestor GLOSSLIST
-StartText:	.RS 4
-EndText:	.sp.RE
--
-#
-GI:		VARIABLELIST
-Relation:	ancestor ORDEREDLIST
-StartText:	.RS 4
-EndText:	.sp.RE
--
-#
-GI:		VARIABLELIST
-Relation:	ancestor SIMPLELIST
-StartText:	.RS 4
-EndText:	.sp.RE
--
-#
-GI:		VARIABLELIST
-Relation:	ancestor VARIABLELIST
-StartText:	${_set twotermlen ${onetermlen}}${_set onetermlen ${etermlength}}
-EndText:	${_set etermlength ${onetermlen}}${_set onetermlen ${twotermlen}}
--
-#
-GI:		VARIABLELIST
-Relation:	ancestor SEGMENTEDLIST
-StartText:	.RS 4
-EndText:	.RE
--
-#
-GI:		VARIABLELIST
-Context:	PARA
-EndText:	.sp
--
-#
-GI:		VARIABLELIST
-#Catch all
--
-# Determine how much to indent VarlistEntry's ListItem
-#
-GI:		VARLISTENTRY
-PAttSet:	TERMLENGTH XTRANARROW
-StartText: ${_set stermlength \.in\s+9n.rt}${_set etermlength \.in\s-9n}
--
-GI:		VARLISTENTRY
-PAttSet:	TERMLENGTH NARROW
-StartText:	${_set stermlength \.in\s+16n.rt}${_set etermlength \.in\s-16n}
--
-#
-GI:		VARLISTENTRY
-PAttSet:	TERMLENGTH MEDIUM
-StartText:	${_set stermlength \.in\s+24n.rt}${_set etermlength \.in\s-24n}
--
-#
-GI:		VARLISTENTRY
-PAttSet:	TERMLENGTH WIDE
-StartText:	${_set stermlength \.in\s+32n.rt}${_set etermlength \.in\s-32n}
--
-#
-GI:		VARLISTENTRY
-PAttSet:	TERMLENGTH XTRAWIDE
-StartText:	${_set stermlength \.in\s+40n.rt}${_set etermlength \.in\s-40n}
--
-#
-GI:		VARLISTENTRY
-PAttSet:	TERMLENGTH WHOLELINE
-StartText:	${_set stermlength \.sp\s.6\.in\s+4}${_set etermlength \.in\s-4}
--
-#
-GI:		VARLISTENTRY
-StartText:	${_set stermlength \.sp\s.6\.in\s+4}${_set etermlength \.in\s-4}
--
-#
-GI:		TERM
-NthChild:	1
-StartText:	.sp.ne 2.mk\\fB
-Increment:	termcount 1
-EndText:	\\fR
--
-#
-GI:		TERM
-StartText:	.br\\fB
-Increment:	termcount 1
-EndText:	\\fR
--
-#
-GI:		LISTITEM
-Relation:	parent VARLISTENTRY
-StartText:	${stermlength}
-EndText:	.sp ${termcount}${etermlength}${_set termcount 0}
--
-#
-GI:		SEGMENTEDLIST
-Relation:	ancestor ITEMIZEDLIST
-StartText:	.RS${_followrel child TITLE 400}.TStab();l l l l l l l l l l l l l l l l l l.
-EndText:	.TE.RE
--
-#
-GI:		SEGMENTEDLIST
-Relation:	ancestor GLOSSLIST
-StartText:	.RS${_followrel child TITLE 400}.TStab();l l l l l l l l l l l l l l l l l l.
-EndText:	.TE.RE
--
-#
-GI:		SEGMENTEDLIST
-Relation:	ancestor ORDETERLIST
-StartText:	.RS${_followrel child TITLE 400}.TStab();l l l l l l l l l l l l l l l l l l.
-EndText:	.TE.RE
--
-#
-GI:		SEGMENTEDLIST
-Relation:	ancestor SIMPLELIST
-StartText:	.RS${_followrel child TITLE 400}.TStab();l l l l l l l l l l l l l l l l l l.
-EndText:	.TE.RE
--
-#
-GI:		SEGMENTEDLIST
-Relation:	ancestor VARIABLELIST
-StartText:	.RS${_followrel child TITLE 400}.TStab();l l l l l l l l l l l l l l l l l l.
-EndText:	.TE.RE
--
-#
-GI:		SEGMENTEDLIST
-Relation:	ancestor SEGMENTEDLIST
-StartText:	.RS${_followrel child TITLE 400}.TStab();l l l l l l l l l l l l l l l l l l.
-EndText:	.TE.RE
--
-#
-GI:		SEGMENTEDLIST
-Relation:	child TITLE
-StartText:	${_followrel child TITLE 400}.TStab();l l l l l l l l l l l l l l l l l l.
-EndText:	.TE
--
-#
-GI:		TITLE
-Context:	SEGMENTEDLIST
-#	ignored by default -- must be called by SEGMENTEDLIST gi
-Ignore:		all
--
-#
-GI:		_segmentedlist_title
-SpecID:		400
-StartText:	.sp 1\\fB
-EndText:	\\fR
--
-#
-GI:		SEGTITLE
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		SEGLISTITEM
-StartText:	
-EndText:	
--
-#
-GI:		SEG
-EndText:	
--
-#
-GI:		PROCEDURE
-AttValue:	ROLE SINGLE-STEP
-StartText:	${_set singlestep xxx}${_set manysteps xy}
--
-#
-GI:		PROCEDURE
-#	defer to the content...
-StartText:	${_set procstep 1}${_set procsubstep a}${_set manysteps xxx}
--
-#
-GI:		TITLE
-Context:	PROCEDURE
-StartText:	.PP\\fB
-EndText:	\\fR
--
-#
-GI:	 _onestep
-SpecID:	9000
-StartText:	.PP.RS
-EndText:	.RE${_set singlestep xy}
--
-#
-GI:	_manysteps
-SpecID:	9001
-StartText:	.RS.TP 4\\fB${procstep}.\\fR
-EndText:	.RE
-Increment:	procstep 1
--
-#
-GI:		STEP
-Context:	SUBSTEPS
-StartText:	.TP 4\\fB${procsubstep}\\fR.
-EndText:	
-Increment:	procsubstep 1
--
-#
-GI:		STEP
-StartText:	${_isset singlestep xxx 9000}${_isset manysteps xxx 9001}
-Ignore:		all
-EndText:	
--
-#
-GI:		TITLE
-Context:	STEP
-# Ignore - Optional titles deprecated
-Ignore:		all
--
-#
-GI:		SUBSTEPS
-StartText:	.RS
-EndText:	.RE
--
-#
-GI:		CALLOUTLIST
-StartText:	${_set callout 1}
-#	nothing to do specifically, defer to the content...
--
-#
-GI:		TITLE
-Context:	CALLOUTLIST
-StartText:	\\fB
-EndText:	\\fR.PP
--
-#
-GI:		CALLOUT
-StartText:	.PP\\fICallout ${callout}.\s\s\\fR
-EndText:	
-Increment:	callout
--
-#
-#
-#############################################################################
-#
-#  Messages
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		MSGSET
-StartText:	.PP
--
-#
-GI:		MSGENTRY
-EndText:	.sp
--
-#
-GI:		MSG
-Relation:	child TITLE
-StartText:	.PP
-EndText:	
--
-#
-GI:		MSG
-EndText:	
--
-#
-GI:		TITLE
-Context:	MSG
-StartText:	.PP\\fB
-EndText:	\\fR.PP
--
-#
-GI:		MSGINFO
-#	nothing specific -- just groups (MsgLevel | MsgOrig | MsgAud)*
--
-#
-GI:		MSGEXPLAN
-AttValue:     ROLE DESCRIPTION
-StartText:	.RS 3.sp\\fBDescription\\fR:.RS 3
-EndText:	.RE.RE
--
-#
-GI:		MSGEXPLAN
-AttValue:     ROLE CAUSE
-StartText:	.RS 3.sp\\fBCause\\fR:.RS 3
-EndText:	.RE.RE
--
-#
-GI:		MSGEXPLAN
-AttValue:     ROLE EXAMPLE
-StartText:	.RS 3.sp\\fBExample\\fR:.RS 3
-EndText:	.RE.RE
--
-#
-GI:		MSGEXPLAN
-AttValue:     ROLE SOLUTION
-StartText:	.RS 3.sp\\fBSolution\\fR:.RS 3
-EndText:	.RE.RE
--
-#
-GI:		MSGEXPLAN
-#			No gentext
-StartText:	.RS 2.sp
-EndText:	.RE
--
-GI:		TITLE
-Context:	MSGEXPLAN
-StartText:	.PP\\fB
-EndText:	\\fR
--
-#
-GI:		MSGMAIN
-#	defer to content
--
-#
-GI:		TITLE
-Context:	MSGMAIN
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		MSGSUB
-#	defer to content
--
-#
-GI:		TITLE
-Context:	MSGSUB
-StartText:	.PP\\fB
-EndText:	\\fR
--
-#
-GI:		MSGREL
-#	defer to content
--
-#
-GI:		TITLE
-Context:	MSGREL
-StartText:	.PP\\fB
-EndText:	\\fR
--
-#
-GI:		MSGLEVEL
-StartText:	.PP\\fIMessage level:\s\s\\fR
-EndText:	
--
-#
-GI:		MSGORIG
-StartText:	.PP\\fIMessage origin:\s\s\\fR
-EndText:	
--
-#
-GI:		MSGAUD
-StartText:	.PP\\fIMessage audience:\s\s\\fR
-EndText:	
--
-#
-GI:		MSGTEXT
-StartText:	\\f(CW
-EndText:	\\fR
--
-#
-#
-#############################################################################
-#
-#  Admonitions
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		CAUTION
-Relation:	child TITLE
-StartText:	.PP.RS
-EndText:	.RE
--
-#
-GI:		CAUTION
-StartText:	.sp.mk\\fBCaution\\fR\s\\-\s.in +10.rt
-EndText:	.in -10
--
-#
-GI:		TITLE
-Context:	CAUTION
-StartText:	.sp.mk\\fBCaution\\fR\s\\-\s.in +10.rt
-EndText:	.in -10
--
-#
-GI:		IMPORTANT
-Relation:	child TITLE
-StartText:	.PP.RS
-EndText:	.RE
--
-#
-GI:		IMPORTANT
-StartText:	.PP.RS\\fBImportant:\s\s
-EndText:	.RE
--
-#
-GI:		TITLE
-Context:	IMPORTANT
-StartText:	\\fBImportant:\s\s
-EndText:	\\fR.PP
--
-#
-GI:		NOTE
-Relation:	child TITLE
-StartText:	.PP.RS
-EndText:	.RE
--
-#
-GI:		NOTE
-StartText:	.sp.mk\\fBNote\\fR\s\\-\s.in +8.rt
-EndText:	.in -8
--
-#
-GI:		TITLE
-Context:	NOTE
-StartText:	.sp.mk\\fBNote\\fR\s\\-\s.in +8.rt
-EndText:	.in -8
--
-#
-GI:		TIP
-Relation:	child TITLE
-StartText:	.PP.RS
-EndText:	.RE
--
-#
-GI:		TIP
-StartText:	.PP.RS\\fBTip:\s\s
-EndText:	.RE
--
-#
-GI:		TITLE
-Context:	TIP
-StartText:	\\fBTip:\s\s
-EndText:	\\fR.PP
--
-#
-GI:		WARNING
-Relation:	child TITLE
-StartText:	.PP.RS
-EndText:	.RE
--
-#
-GI:		WARNING
-StartText:	.PP.RS\\fBWarning:\s\s
-EndText:	.RE
--
-#
-GI:		TITLE
-Context:	WARNING
-StartText:	\\fBWarning:\s\s
-EndText:	\\fR.PP
--
-#
-#
-#############################################################################
-#
-#  Synopses
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		SYNOPSIS
-StartText:	.PP.nf
-EndText:	.fi
--
-#
-GI:		CMDSYNOPSIS
-StartText:	.PP
-EndText:	
--
-#
-GI:		ARG
-Context:	GROUP
-NthChild:	1
-AttValue:	CHOICE OPT
-StartText:	\s[
-EndText:	${_attval REP REPEAT 505}]
--
-#
-GI:		ARG
-Context:	GROUP
-NthChild:	1
-EndText:	${_attval REP REPEAT 505}
--
-#
-GI:		ARG
-Context:	GROUP
-AttValue:	CHOICE OPT
-StartText:	\s|\s[
-EndText:	${_attval REP REPEAT 505}]
--
-#
-GI:		ARG
-Context:	GROUP
-StartText:	\s|\s
-EndText:	${_attval REP REPEAT 505}
--
-#
-GI:		ARG
-AttValue:	CHOICE OPT
-StartText:	\s[
-EndText:	${_attval REP REPEAT 505}]
--
-#
-GI:     ARG
-AttValue:   CHOICE REQ
-StartText:  \s{
-EndText:    ${_attval REP REPEAT 505}}
--
-#
-GI:		ARG
-AttValue:	CHOICE PLAIN
-StartText:	\s
-EndText:	${_attval REP REPEAT 505}
--
-#
-GI:		ARG
-#	no special attrs -- just pass content through
-EndText:	${_attval REP REPEAT 505}
--
-#
-GI:		_arg_group
-SpecID:		505
-StartText:	\\&...
-Ignore:		all
--
-#
-GI:		GROUP
-AttValue:	CHOICE OPT
-StartText:	\s[
-EndText:	]\s${_attval REP REPEAT 505}
--
-#
-GI:		GROUP
-AttValue:	CHOICE REQ
-StartText:	\s{
-EndText:	}\s${_attval REP REPEAT 505}
--
-#
-GI:		GROUP
-AttValue:	CHOICE PLAIN
-StartText:	\s
-EndText:	${_attval REP REPEAT 505}
--
-#
-GI:		SBR
-StartText:	.br
--
-#
-GI:		SYNOPFRAGMENT
-#	nothing special to do here -- just pass through content (Arg | Group)+
--
-#
-GI:		SYNOPFRAGMENTREF
-#	WHAT TO DO HERE??   pass through the content, but what about the
-#	linkend?  (will call it across...)
-EndText:	\s\\fI(refers to: ${_followlink LINKEND 1000})\\fR
--
-#
-GI:		FUNCSYNOPSIS
-StartText:	.PP
-EndText:	
--
-#
-GI:		FUNCSYNOPSISINFO
-StartText:	.nf
-EndText:	.fi.LP
--
-#
-GI:		FUNCPROTOTYPE
-#	nothing special -- just pass through content (looks like
-#	a function def
-StartText:	.sp 1
--
-#
-GI:		FUNCDEF
-StartText:	\\fB
-EndText:	\\fR(
--
-#
-GI:		FUNCPARAMS
-StartText:	(\\fB
-EndText:	\\fR)
--
-#
-GI:		VOID
-StartText:	\\fBvoid\\fR);
--
-#
-GI:		VARARGS
-StartText:	\\fB\\&...\\fR);
--
-#
-GI:		PARAMDEF
-Relation:	sibling+ PARAMDEF
-StartText:	\\fB
-EndText:	\\fR,\s
--
-#
-GI:		PARAMDEF
-StartText:	\\fB
-EndText:	\\fR);
--
-#
-#
-#############################################################################
-#
-#  Links
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		LINK
-# Defer to content
--
-#
-GI:		OLINK
-# Defer to content
--
-#
-GI:		ULINK
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		FOOTNOTEREF
-#	just let the footnote ref mark come through
--
-#
-GI:		FOOTNOTE
-#	just let footnote body come through (-man doesn't support footnotes)
--
-#
-GI:		XREF
-AttValue:	LINKEND
-StartText:	\\fI${_followlink LINKEND 600}
-EndText:	\\fR
--
-#
-GI:		XREF
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		_xref
-SpecID:		600
-StartText:	${_followrel child TITLE 2000}
-Ignore:		all
--
-#
-GI:		ANCHOR
-#	nothing to do -- this just marks a place..
--
-#
-#
-#############################################################################
-#
-#  Graphics and Equations
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:     GRAPHIC
-AttValue:   REMAP pic
-StartText:	.LP.RSPlease see the online man page on docs.sun.com or a print copy for the diagram..RE.LP
--
-#
-GI:		GRAPHIC
-AttValue:	ENTITYREF
-StartText:	.PP.if t .P! "${_filename}"
--
-#
-GI:		GRAPHIC
-# Do nothing
--
-#
-GI:		INLINEGRAPHIC
-StartText:	.if t .P! "${_filename}"
--
-#
-GI:		INFORMALEQUATION
-#	nothing special to do -- defer to graphic content..
--
-#
-GI:		EQUATION
-#Set up for running EQN pre-processor
-StartText:  .EQdelim $$.EN.sp 2
--
-#
-GI:		ALT
-# Pass through $$ deliminited EQN code
-Context:	EQUATION
-StartText:	
-EndText:	
--
-#
-GI:		TITLE
-Context:	EQUATION
-StartText:	.PP\\fB
-EndText:	\\fR
--
-#
-GI:		INLINEEQUATION
-#	nothing special to do -- defer to graphic content..
--
-#
-#
-#############################################################################
-#
-#  Tables
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-#
-GI:		INFORMALTABLE
-StartText:	.sp${_calstable tbl tablestart}
-EndText:	${_calstable tbl tableend}.sp
--
-#
-GI:		TABLE
-StartText:	.PP\\fBTable ${tablenum} ${_followrel child TITLE 1000}\\fR.sp
-		${_calstable tbl tablestart}
-EndText:	${_calstable tbl tableend}
-Increment:	tablenum 1
--
-#
-GI:		TITLE
-Context:	TABLE
-#	handled in TABLE element
-Ignore:		all
--
-#
-GI:		TGROUP
-StartText:	${_calstable tbl tablegroup}${_followrel child THEAD 700}${_followrel child TBODY 700}${_followrel child TFOOT 701}
-EndText:	${_calstable tbl tablegroupend}
--
-#
-GI:		COLSPEC
-Ignore:		all
--
-#
-GI:		SPANSPEC
-Ignore:		all
--
-#
-GI:		THEAD TBODY TFOOT
-#	they're called explicitly from TGROUP, but ignored here
-Ignore:		all
--
-#
-GI:		_thead_tbody
-SpecID:		700
-#	nothing special to do -- just pass through content
--
-#
-GI:		_tfoot
-SpecID:		701
-StartText:	${_calstable tbl tablefoot}
--
-#
-GI:		ROW
-StartText:	${_calstable tbl rowstart}
-EndText:	${_calstable tbl rowend}
--
-#
-GI:		ENTRY
-StartText:	${_calstable tbl entrystart}
-EndText:	${_calstable tbl entryend}
--
-#
-GI:		ENTRYTBL
-StartText:
-EndText:
-Message:	IMPLEMENT <${_gi} ${_allatts}>
--
-#
-#
-#############################################################################
-#
-#  Index terms
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		INDEXTERM
-#StartText:	.iX\s
-#EndText:	
-Ignore:		all
--
-#
-GI:		PRIMARY
-StartText:	"
-EndText:	"
--
-#
-GI:		SECONDARY
-StartText:	\s"
-EndText:	"
--
-#
-GI:		TERTIARY
-StartText:	\s"
-EndText:	"
--
-#
-GI:		SEE
-StartText:	\s"See:\s
-EndText:	"
--
-#
-GI:		SEEALSO
-StartText:	\s"SeeAlso:\s
-EndText:	"
--
-#
-#
-#############################################################################
-#
-#  Author / OtherCredit material
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		OTHERCREDIT
-#	nothing specific -- defer to content
--
-#
-GI:		HONORIFIC
-#	nothing specific -- defer to content
-EndText:	\s
--
-#
-GI:		FIRSTNAME
-#	nothing specific -- defer to content
-EndText:	\s
--
-#
-GI:		SURNAME
-#	nothing specific -- defer to content
-EndText:	\s
--
-#
-GI:		LINEAGE
-#	nothing specific -- defer to content
-EndText:	\s
--
-#
-GI:		OTHERNAME
-#	nothing specific -- defer to content
-StartText:	(
-EndText:	)\s
--
-#
-GI:		AFFILIATION
-#	nothing specific -- defer to content
-EndText:	\s
--
-#
-GI:		SHORTAFFIL
-#	nothing specific -- defer to content
-EndText:	\s
--
-#
-GI:		JOBTITLE
-#	nothing specific -- defer to content
-EndText:	\s
--
-#
-GI:		ORGNAME
-#	nothing specific -- defer to content
-EndText:	\s
--
-#
-GI:		ORGDIV
-#	nothing specific -- defer to content
-EndText:	\s
--
-#
-GI:		CONTRIB
-#	nothing specific -- defer to content
-EndText:	\s
--
-#
-#
-#############################################################################
-#
-#  "Leaf" material
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		ABBREV
-#	no special presentation
--
-#
-GI:		ACCEL
-#	no special presentation
--
-#
-GI:		ACRONYM
-#	Small Bold
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		AUTHORINITIALS
-#	no special presentation
--
-#
-GI:		CITATION
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		CITETITLE
-AttValue:	PUBWORK
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		CITETITLE
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		CITEREFENTRY
-#	defer to content..
--
-#
-GI:		REFENTRYTITLE
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		MANVOLNUM
-StartText:	(
-EndText:	)
--
-#
-GI:		COMMENT
-#	docbook says to inhibit this from finished products...
-Ignore:		all
--
-#
-GI:		EMAIL
-#	no special presentation
--
-#
-GI:		EMPHASIS
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		ERRORCODE
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		ENVAR
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		FIRSTTERM
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		FOREIGNPHRASE
-#	no special presentation
--
-#
-GI:		PHRASE
-#	no special presentation
--
-#
-GI:		QUOTE
-StartText:	``\\fI
-EndText:	\\fR''
--
-#
-GI:		TRADEMARK
-EndText:	\\u\\s-2TM\\s+2\\d
--
-#
-GI:		WORDASWORD
-#	no special presentation
--
-#
-GI:		ACTION
-#	no special presentation
--
-#
-GI:		APPLICATION
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		CLASSNAME
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		COMMAND
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		COMPUTEROUTPUT
-StartText:	\\f(CW
-EndText:	\\fR
--
-#
-GI:		DATABASE
-#	no special presentation
--
-#
-GI:		ERRORNAME
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		ERRORTYPE
-#	no special presentation
--
-#
-GI:		FILENAME
-AttValue:	CLASS HEADERFILE
-StartText:	\\fB<
-EndText:	>\\fR
--
-#
-GI:		FILENAME
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		FUNCTION
-Relation:	parent FUNCDEF
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:     FUNCTION
-Relation:   descendant PARAMETER
-StartText:  \\fB
-EndText:    )\\fR
--
-#
-GI:		FUNCTION
-StartText:	\\fB
-EndText:	(\\|)\\fR
--
-#
-GI:		GUIBUTTON
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		GUIICON
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		GUILABEL
-#	no special presentation
--
-#
-GI:		GUIMENU
-#	no special presentation
--
-#
-GI:		GUIMENUITEM
-#	no special presentation
--
-#
-GI:		GUISUBMENU
-#	no special presentation
--
-#
-GI:		HARDWARE
-#	no special presentation
--
-#
-GI:		INTERFACE
-#	no special presentation
--
-#
-GI:		INTERFACEDEFINITION
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		KEYCAP
-StartText:	\\fB<
-EndText:	>\\fR
--
-#
-GI:		KEYCODE
-#	no special presentation
--
-#
-GI:		KEYCOMBO
-#	no special presentation -- defer to the content
--
-#
-GI:		KEYSYM
-StartText:	\\fB<
-EndText:	>\\fR
--
-#
-GI:		LINEANNOTATION
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		LITERAL
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		MARKUP
-StartText:	\\f(CW
-EndText:	\\fR
--
-#
-GI:		MEDIALABEL
-#	no special presentation
--
-#
-GI:		MENUCHOICE
-#	no special presentation
--
-#
-GI:		SHORTCUT
-#	no special presentation
--
-#
-GI:		MOUSEBUTTON
-#	no special presentation
--
-#
-GI:		OPTION
-AttValue:	ROLE PLUS
-StartText:	+\\fB
-EndText:	\\fR
--
-#
-GI:		OPTION
-AttValue:	ROLE NODASH
-StartText:	\\fB
-EndText:	\\fR
--
-GI:		OPTION
-StartText:	-\\fB
-EndText:	\\fR
--
-#
-GI:		OPTIONAL
-StartText:	[
-EndText:	]
--
-#
-GI:		PARAMETER
-Relation:   parent PARAMDEF
-StartText:	\\fI
-EndText:	\\fP
--
-#
-GI:     PARAMETER
-Relation:   parent FUNCTION
-NthChild:   1
-StartText:  (\\fI
-EndText:    \\fP
--
-#
-GI:     PARAMETER
-Relation:   parent FUNCTION
-StartText:  ,\s\\fI
-EndText:    \\fP
--
-#
-GI:		PARAMETER
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		PROPERTY
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		REPLACEABLE
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		RETURNVALUE
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		SGMLTAG
-AttValue:	CLASS ELEMENT
-StartText:	\\fB<
-EndText:	>\\fR
--
-#
-GI:		SGMLTAG
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		STRUCTFIELD
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		STRUCTNAME
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		SYMBOL
-AttValue:	ROLE Variable
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		SYMBOL
-StartText:	\\fI
-EndText:	\\fR
--
-#
-GI:		SYSTEMITEM
-AttValue:	CLASS CONSTANT
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		SYSTEMITEM
-AttValue:	CLASS ENVIRONVAR
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		SYSTEMITEM
-AttValue:	CLASS RESOURCE
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		SYSTEMITEM
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		TOKEN
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		TYPE
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		USERINPUT
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		AUTHOR
-#	no special presentation - defer to content
--
-#
-GI:		CORPAUTHOR
-#	no special presentation
--
-#
-GI:		MODESPEC
-#	nothing to render (this is meta information for Links)
--
-#
-GI:		PRODUCTNAME
-StartText:	\\fB
-EndText:	\\fR
--
-#
-GI:		PRODUCTNUMBER
-#	no special presentation
--
-#
-GI:		SUBSCRIPT
-StartText:	\\d
-EndText:	\\u
--
-#
-GI:		SUPERSCRIPT
-AttValue:	REMAP nopower
-StartText:	\\u
-EndText:	\\d
--
-#
-GI:		SUPERSCRIPT
-StartText:	.ie t \\u\\c.el \\h'-1'**\\c
-EndText:	.ie t \\d\\c.el \\h'-1'\\c
--
-#
-#
-#############################################################################
-#
-#  stuff that gets ignored (and doesn't belong elsewhere)
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		TITLEABBREV
-#	this element is ignored in favor of the real title
-Ignore:		all
--
-#
-#
-#
-#############################################################################
-#
-#  handle layout-specific stuff and PIs
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		BEGINPAGE
-StartText:	.br\s
-EndText:	
--
-#
-GI:		_x-break
-StartText:	.br\s
-EndText:	
--
-#
-GI:		_sml-break
-StartText:	.br\s
-EndText:	
--
-#
-GI:		_sml-need
-StartText:	.ne\s
-EndText:	
--
-#
-GI:		_sml-size
-StartText:	.ps\s
-EndText:	
--
-#
-GI:		_sml-indent
-StartText:	.in\s
-EndText:	
--
-#
-GI:		_sml-space
-StartText:	.sp\s
-EndText:	
--
-#
-GI:		_sml-tabset
-StartText:	.ta\s
-EndText:	
--
-#
-#
-#############################################################################
-#
-#  General purpose transpecs
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		_passthrough
-SpecID:		1000
-Substitute:	" ""
--
-#
-GI:		_passthrough2
-SpecID:		2000
--
-#
-GI:		_doTitle
-SpecID:		1010
-StartText:	.PP\\fB
-EndText:	\\fR.PP
--
-#
-#
-#############################################################################
-#
-#  Catch-all for unknown PIs -- ignore them...
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:		_*
-Ignore:		data
--
-#
-#
-#############################################################################
-#
-#  Catch-all for unknown elements -- just output their content..
-#
-#   ####     #####     #####     #####     #####     #####     ####     #####     
-#
-GI:	*
--
-#
--- a/usr/src/cmd/man/src/util/ereview.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!--
-ArborText: 19910809
-
-$Header: ereview.gml,v 1.3 92/11/13 15:21:36 twb Exp $
-
-The following declarations may be referred to using a public entity as
-follows:
-
-<!ENTITY % ereview PUBLIC "-//USA-DOD//DTD SUP MIL-M-28001B EREVIEW//EN">
-
--->
-
-<!-- The %mrinfo entity is required for support of the electronic review
-declaration set.  Note that this entity matches an identical set of elements
-in the base document being reviewed, and may therefore require tailoring
-accordingly.  For documents conforming to the Template Doctype for Technical
-Documents contained in Appendix A of this specification, the %mrinfo entity is
-declared as follows:
-
-<!ENTITY   % mrinfo     "(pubno+, (revnum|(chgnum, chgdate)|pubdate))" >
-
--->
-
-<!-- The %mrtext entity indicates what elements from the base DTD can occur in
-the "textual" (i.e., mrpara and mritem) elements in a modreq.  For documents
-conforming to the Template Doctype for Technical Documents contained in
-Appendix A of this specification, the %mrtext entity is declared as follows:
-
-<!ENTITY % mrtext       "#PCDATA | symbol" >
-
--->
-
-<!-- The %mrelems entity indicates what elements from the base DTD can occur
-along with the mrpara and mrlist elements (e.g., within mrreason, mrinstr,
-mrgenmod, and mrrespns) in a modreq.  For documents conforming to the Template
-Doctype for Technical Documents contained in Appendix A of this specification,
-the %mrelems entity is declared as follows:
-
-<!ENTITY %  mrelems     "| graphic" >
-
--->
-
-
-
-<!-- Generic default definitions of %mrinfo, %mrtext, and %mrelems are given
-below.  These are to be replaced by a definition appropriate to the document
-being reviewed: -->
-
-<!ENTITY % mrinfo       "ANY" >
-
-<!ENTITY % mrtext       "#PCDATA" >
-
-<!ENTITY % mrelems      " " >
-
-<!-- Beginning of modification request declaration set -->
-            
-<!ELEMENT   modreq      - -   (mrinfo?, mrmod, mrrespns?) >
-<!ATTLIST   modreq      id                ID                      #REQUIRED
-                        xref              NMTOKEN                 #IMPLIED
-                        refpos      (prexref|postxref|xref)       "xref"
-                        by                CDATA                   #REQUIRED
-                        date              CDATA                   #REQUIRED
-                        organiz           NMTOKEN                 #IMPLIED
-                        orgcat            NMTOKEN                 #IMPLIED
-                        cmntrcat          NMTOKEN                 #IMPLIED
-                        priority          (1|2|3|4|5)             #IMPLIED
-                        category          NMTOKEN                 #IMPLIED
-                        topic             CDATA                   #IMPLIED
-                        locmodel          CDATA                   #IMPLIED  >
-                        
-<!ELEMENT   mrinfo      - -   %mrinfo; >
-<!ELEMENT   mrmod - -   (mrreason?, (mrgenmod|(mrinstr?, mrchgtxt))) >
-<!ELEMENT   (mrreason|mrinstr|mrgenmod) - o     (mrpara|mrlist %mrelems;)+ >
-<!ELEMENT   mrchgtxt    - -   ANY >
-<!ATTLIST   mrchgtxt    chgloc            NUMBER                  #IMPLIED
-                        chglen            NUMBER                  #IMPLIED
-                        action      (insert|delete|replace)       "replace" >
-<!ELEMENT   mrrespns    - -   (mrpara|mrlist %mrelems;)* >
-<!ATTLIST   mrrespns    disposn           NMTOKEN                 #IMPLIED
-                        status            NMTOKEN                 #IMPLIED  > 
-<!ELEMENT   (mrpara|mritem)         - -   (%mrtext;) >
-<!ELEMENT   mrlist            - -   (mritem+) >
-
-<!-- End of modification request declaration set -->
--- a/usr/src/cmd/man/src/util/html-latin.sgml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- Portions of this text are copyright ISO:
-
-     (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!--	Character entity set. Typical invocation:
-	<!ENTITY % HTMLlat1 PUBLIC
-	   "-//W3O//ENTITIES W3 Latin 1 for HTML//EN">
-	%HTMLlat1;
--->
-<!--	Modified for use in HTML
-	$Id: ISOlat1.sgml,v 1.1 1994/09/24 14:06:34 connolly Exp $ =
-
--->
-<!--    Modified to add characters in the range &161; to &191; in
-	the ISO Latin-1 character set, which could only be referred =
-
-	to by numeric references. Entity names based on relevant entities in
-        ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN"
-        Also added the standard lt gt amp entities from HTML 2.0
-        Chris Lilley, 13 March 1995
-        =
-
-        This covers all of Latin 1, but we are still unable to display a =
-
-        Trade Mark (TM)
--->      
-
-<!ENTITY AElig  CDATA "&#198;" -- capital AE diphthong (ligature) -->
-<!ENTITY Aacute CDATA "&#193;" -- capital A, acute accent -->
-<!ENTITY Acirc  CDATA "&#194;" -- capital A, circumflex accent -->
-<!ENTITY Agrave CDATA "&#192;" -- capital A, grave accent -->
-<!ENTITY Aring  CDATA "&#197;" -- capital A, ring -->
-<!ENTITY Atilde CDATA "&#195;" -- capital A, tilde -->
-<!ENTITY Auml   CDATA "&#196;" -- capital A, dieresis or umlaut mark -->
-<!ENTITY Ccedil CDATA "&#199;" -- capital C, cedilla -->
-<!ENTITY ETH    CDATA "&#208;" -- capital Eth, Icelandic -->
-<!ENTITY Eacute CDATA "&#201;" -- capital E, acute accent -->
-<!ENTITY Ecirc  CDATA "&#202;" -- capital E, circumflex accent -->
-<!ENTITY Egrave CDATA "&#200;" -- capital E, grave accent -->
-<!ENTITY Euml   CDATA "&#203;" -- capital E, dieresis or umlaut mark -->
-<!ENTITY Iacute CDATA "&#205;" -- capital I, acute accent -->
-<!ENTITY Icirc  CDATA "&#206;" -- capital I, circumflex accent -->
-<!ENTITY Igrave CDATA "&#204;" -- capital I, grave accent -->
-<!ENTITY Iuml   CDATA "&#207;" -- capital I, dieresis or umlaut mark -->
-<!ENTITY Ntilde CDATA "&#209;" -- capital N, tilde -->
-<!ENTITY Oacute CDATA "&#211;" -- capital O, acute accent -->
-<!ENTITY Ocirc  CDATA "&#212;" -- capital O, circumflex accent -->
-<!ENTITY Ograve CDATA "&#210;" -- capital O, grave accent -->
-<!ENTITY Oslash CDATA "&#216;" -- capital O, slash -->
-<!ENTITY Otilde CDATA "&#213;" -- capital O, tilde -->
-<!ENTITY Ouml   CDATA "&#214;" -- capital O, dieresis or umlaut mark -->
-<!ENTITY THORN  CDATA "&#222;" -- capital THORN, Icelandic -->
-<!ENTITY Uacute CDATA "&#218;" -- capital U, acute accent -->
-<!ENTITY Ucirc  CDATA "&#219;" -- capital U, circumflex accent -->
-<!ENTITY Ugrave CDATA "&#217;" -- capital U, grave accent -->
-<!ENTITY Uuml   CDATA "&#220;" -- capital U, dieresis or umlaut mark -->
-<!ENTITY Yacute CDATA "&#221;" -- capital Y, acute accent -->
-<!ENTITY aacute CDATA "&#225;" -- small a, acute accent -->
-<!ENTITY acirc  CDATA "&#226;" -- small a, circumflex accent -->
-<!ENTITY aelig  CDATA "&#230;" -- small ae diphthong (ligature) -->
-<!ENTITY agrave CDATA "&#224;" -- small a, grave accent -->
-<!ENTITY aring  CDATA "&#229;" -- small a, ring -->
-<!ENTITY atilde CDATA "&#227;" -- small a, tilde -->
-<!ENTITY auml   CDATA "&#228;" -- small a, dieresis or umlaut mark -->
-<!ENTITY ccedil CDATA "&#231;" -- small c, cedilla -->
-<!ENTITY eacute CDATA "&#233;" -- small e, acute accent -->
-<!ENTITY ecirc  CDATA "&#234;" -- small e, circumflex accent -->
-<!ENTITY egrave CDATA "&#232;" -- small e, grave accent -->
-<!ENTITY eth    CDATA "&#240;" -- small eth, Icelandic -->
-<!ENTITY euml   CDATA "&#235;" -- small e, dieresis or umlaut mark -->
-<!ENTITY iacute CDATA "&#237;" -- small i, acute accent -->
-<!ENTITY icirc  CDATA "&#238;" -- small i, circumflex accent -->
-<!ENTITY igrave CDATA "&#236;" -- small i, grave accent -->
-<!ENTITY iuml   CDATA "&#239;" -- small i, dieresis or umlaut mark -->
-<!ENTITY ntilde CDATA "&#241;" -- small n, tilde -->
-<!ENTITY oacute CDATA "&#243;" -- small o, acute accent -->
-<!ENTITY ocirc  CDATA "&#244;" -- small o, circumflex accent -->
-<!ENTITY ograve CDATA "&#242;" -- small o, grave accent -->
-<!ENTITY oslash CDATA "&#248;" -- small o, slash -->
-<!ENTITY otilde CDATA "&#245;" -- small o, tilde -->
-<!ENTITY ouml   CDATA "&#246;" -- small o, dieresis or umlaut mark -->
-<!ENTITY szlig  CDATA "&#223;" -- small sharp s, German (sz ligature) -->
-<!ENTITY thorn  CDATA "&#254;" -- small thorn, Icelandic -->
-<!ENTITY uacute CDATA "&#250;" -- small u, acute accent -->
-<!ENTITY ucirc  CDATA "&#251;" -- small u, circumflex accent -->
-<!ENTITY ugrave CDATA "&#249;" -- small u, grave accent -->
-<!ENTITY uuml   CDATA "&#252;" -- small u, dieresis or umlaut mark -->
-<!ENTITY yacute CDATA "&#253;" -- small y, acute accent -->
-<!ENTITY yuml   CDATA "&#255;" -- small y, dieresis or umlaut mark -->
-<!-- =
-
-     Ones that aren't accented characters, and so not in ISO Added Latin =
-1.
-
-     umlaut. macron, acute, cedilla
-     were not in ISO Numeric and Special Graphic
-     either; I took their names from the numeric entity list in
-     http://www.hpl.hp.co.uk/people/dsr/html/latin1.html =
-
-     Chris Lilley, 13 March 1995  =
-
--->    
-
-<!ENTITY iexcl   SDATA "=A1" --=3D inverted exclamation mark &161; -->
-<!ENTITY cent    SDATA "=A2" --=3D cent sign &162; -->
-<!ENTITY pound   SDATA "=A3" --=3D pound sterling sign &163; -->
-<!ENTITY curren  SDATA "=A4" --=3D general currency sign &164; -->
-<!ENTITY yen     SDATA "=A5" --=3D yen sign &165; -->
-<!ENTITY brvbar  SDATA "=A6" --=3D broken (vertical) bar &166; -->
-<!ENTITY sect    SDATA "=A7" --=3D section sign &167; -->
-<!ENTITY umlaut  SDATA "=A8" --=3D umlaut (dieresis) &168; -->
-<!ENTITY copy    SDATA "=A9" --=3D copyright sign &169; -->
-<!ENTITY ordf    SDATA "=AA" --=3D ordinal indicator, feminine &170; -->
-<!ENTITY laquo   SDATA "=AB" --=3D angle quotation mark, left &171; -->
-<!ENTITY not     SDATA "=AC" --=3D not sign &172; -->
-<!ENTITY shy     SDATA "=AD" --=3D soft hyphen &173;-->
-<!ENTITY reg     SDATA "=AE" --=3D registered trademark &174; -->
-<!ENTITY macron  SDATA "=AF" --=3D macron &175; -->
-<!ENTITY deg     SDATA "=B0" --=3D degree sign &176; -->
-<!ENTITY plusmn  SDATA "=B1" --=3D plus-or-minus sign &177; -->
-<!ENTITY sup2    SDATA "=B2" --=3D superscript two &178; -->
-<!ENTITY sup3    SDATA "=B3" --=3D superscript three &179; -->
-<!ENTITY acute   SDATA "=B4" --=3D acute accent &180; -->
-<!ENTITY micro   SDATA "=B5" --=3D micro sign &181; -->
-<!ENTITY para    SDATA "=B6" --=3D pilcrow (paragraph sign) &182; -->
-<!ENTITY middot  SDATA "=B7" --=3D middle dot (centred decimal point) &183; -->
-<!ENTITY cedilla SDATA "=B8" --=3D cedilla accent &184; -->
-<!ENTITY sup1    SDATA "=B9" --=3D superscript one -->
-<!ENTITY ordm    SDATA "=BA" --=3D ordinal indicator, masculine -->
-<!ENTITY raquo   SDATA "=BB" --=3D angle quotation mark, right -->
-<!ENTITY frac14  SDATA "=BC" --=3D fraction one-quarter -->
-<!ENTITY frac12  SDATA "=BD" --=3D fraction one-half -->
-<!ENTITY frac34  SDATA "=BE" --=3D fraction three-quarters -->
-<!ENTITY iquest  SDATA "=BF" --=3D inverted question mark -->
-<!-- the odd ones tucked in amongs the accented letters -->
-<!ENTITY times   SDATA "=D7" --=3D multiply sign -->
-<!ENTITY divide  SDATA "=F7" --=3D divide sign -->
-
-<!ENTITY amp CDATA "&#38;"     -- ampersand          -->
-<!ENTITY gt CDATA "&#62;"      -- greater than       -->
-<!ENTITY lt CDATA "&#60;"      -- less than          -->
-<!ENTITY quot CDATA "&#34;"    -- double quote       -->
-
-<!--
-        Should the dollar sign and such like also be given entity names?
-        There are suitable ones around. For example, people using =
-
-        internationalised keyboards in various countries might not be =
-
-        readily able to access some of these characters.
-        =
-
-        On such grounds, I suggest entity names for these:
-        ! " # $ %  ' ( ) * + , - . / : ;  =3D  ? [ \ ] ^ _ ` { | } ~
-        Lastly, what about &tab; for those whose editors convert all
-        tabs to spaces?
-
--->
--- a/usr/src/cmd/man/src/util/instant.src/Makefile	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-#
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-# Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
-# All rights reserved.
-#
-# Copyright (c) 1994  
-# Open Software Foundation, Inc. 
-#  
-# Permission is hereby granted to use, copy, modify and freely distribute 
-# the software in this file and its documentation for any purpose without 
-# fee, provided that the above copyright notice appears in all copies and 
-# that both the copyright notice and this permission notice appear in 
-# supporting documentation.  Further, provided that the name of Open 
-# Software Foundation, Inc. ("OSF") not be used in advertising or 
-# publicity pertaining to distribution of the software without prior 
-# written permission from OSF.  OSF makes no representations about the 
-# suitability of this software for any purpose.  It is provided "as is" 
-# without express or implied warranty. 
-#
-# Copyright (c) 1996 X Consortium
-# Copyright (c) 1996 Dalrymple Consulting
-# 
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-# 
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-# 
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-# 
-# Except as contained in this notice, the names of the X Consortium and
-# Dalrymple Consulting shall not be used in advertising or otherwise to
-# promote the sale, use or other dealings in this Software without prior
-# written authorization.
-#
-#
-# For building 'instant'.
-#
-# J.Bowe, 1993
-#
-#  $Header: /usr/src/docbook-to-man/Instant/RCS/Makefile,v 1.10 1996/06/15 22:49:42 fld Exp $
-#
-# This assumes you have the (tpt)regexp package (includes and library)
-# available.
-#
-# Some things you could set at your site.
-#   XDEFINES   = ...				# for extra defines
-#   REGEX_INC  = -I../tptregexp			# should be here with release
-#   REGEX_LIB  = ../lib/tptregexp		# assumes you built it there
-#   BINDIR     = /usr/local/bin			# where you keep your programs
-# (You should set DEF_TPT_LIB to something, or set it in general.h.
-# At OSF we use the default in that file.)
-
-include ../../../../Makefile.cmd
-
-SHELL =	/bin/sh
-
-ROOTLIB		= /usr/lib
-ROOTSHLIB	= /usr/share/lib
-
-PROGROOT	= $(ROOTLIB)/sgml
-
-TPTLIB		= $(ROOTSHLIB)/sgml/locale/C/transpec
-REGEX_INC	= -Itptregexp
-REGEX_LIB	= tptregexp
-BINDIR		= $(PROGROOT)
-DEFINES		= -DDEF_TPT_LIB=\"$(TPTLIB)\" $(XDEFINES)
-
-#OPT	= -O
-CFLAGS	+= $(OPT) $(REGEX_INC) $(DEFINES)
-LDFLAGS	+= $(OPT)
-REGEX	= -L$(REGEX_LIB) -ltptregexp
-
-CFILES	= main.c util.c info.c translate.c traninit.c tranvar.c tables.c \
-	browse.c
-HFILES	= general.h translate.h
-OBJ	= main.o util.o info.o translate.o traninit.o tranvar.o tables.o \
-	browse.o masterVersion.o
-PROGS	= instant
-
-all:	dotptregexp .WAIT $(PROGS) THIRDPARTYLICENSE
-
-dotptregexp:
-	cd tptregexp; $(MAKE) all
-
-instant: $(OBJ)
-	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(REGEX)
-	$(POST_PROCESS)
-	cp $@ ..
-
-install: all
-	cp $(PROGS) $(BINDIR)
-
-
-Version:	allVersion.o
-
-allVersion.c:	$(HFILES) $(CFILES) Makefile
-	co -l allVersion.c
-	makeVersionFile $(HFILES) $(CFILES) Makefile > allVersion.c
-	ci -u -m"new master version number" allVersion.c
-	makeVersionFile -n instant allVersion.c > masterVersion.c
-
-clean: _localclean
-
-_localclean:
-	rm -f $(OBJ) allVersion.o lint.out core
-	cd tptregexp; $(MAKE) clean
-
-clobber:	clean _localclobber
-
-_localclobber:
-	rm -f $(PROGS)
-	cd tptregexp; $(MAKE) clobber
-	$(RM) THIRDPARTYLICENSE
-
-.PARALLEL:	$(OBJ)
-
-# dependencies
-main.o:		main.c general.h
-util.o:		util.c general.h
-info.o:		info.c general.h
-translate.o:	translate.c general.h translate.h
-traninit.o:	traninit.c general.h translate.h
-tranvar.o:	tranvar.c general.h translate.h
-tables.o:	tables.c general.h translate.h
-browse.o:	browse.c general.h
-
-THIRDPARTYLICENSE: README
-	$(SED) -n -e '2d' -e '/# Copyright/,/# written authorization/p' \
-	    README > $@
--- a/usr/src/cmd/man/src/util/instant.src/README	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-#
-# Copyright (c) 1994  
-# Open Software Foundation, Inc. 
-#  
-# Permission is hereby granted to use, copy, modify and freely distribute 
-# the software in this file and its documentation for any purpose without 
-# fee, provided that the above copyright notice appears in all copies and 
-# that both the copyright notice and this permission notice appear in 
-# supporting documentation.  Further, provided that the name of Open 
-# Software Foundation, Inc. ("OSF") not be used in advertising or 
-# publicity pertaining to distribution of the software without prior 
-# written permission from OSF.  OSF makes no representations about the 
-# suitability of this software for any purpose.  It is provided "as is" 
-# without express or implied warranty. 
-#
-# Copyright (c) 1996 X Consortium
-# Copyright (c) 1995, 1996 Dalrymple Consulting
-# 
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-# 
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-# 
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-# 
-# Except as contained in this notice, the names of the X Consortium and
-# Dalrymple Consulting shall not be used in advertising or otherwise to
-# promote the sale, use or other dealings in this Software without prior
-# written authorization.
-#
-
-	instant - a formatting application for OSF SGML instances
-____________________________________________________________________________
-
-Requirements
-
-    ANSI C compiler (gcc is one)
-
-    sgmls 1.1 -- sgml parser from James Clark.  Based on Goldfarb's ARC parser.
-
-    Vanilla unix make
-
-    POSIX C libraries
-
-
-Files for instant program
-
-    Module		Function
-    ------		--------
-    browse.c		interactive browser
-    general.h		general definitions
-    info.c		print information about the instances
-    main.c		main entry, arg parsing, instance reading
-    tables.c		table-specific formatting routines (TeX and tbl)
-    traninit.c		translator initialization (read spec, etc.)
-    translate.c		main translator
-    translate.h		structure definitions for translation code
-    tranvar.c		routines for handling "special variables"
-    util.c		general utilities
-
-
-Also required
-
-    1. Translation spec (transpec) files.  (../transpecs/*.ts)
-    2. SDATA mapping files for mapping sdata entities.  (../transpecs/*.sdata)
-    3. Character mapping files for mapping characters.  (../transpecs/*.cmap)
-
-
-Platforms tried on
-
-    OSF1 1.3 (i486)
-    Ultrix 4.2 (mips)
-    HP-UX 9.01 (hp 9000/700)
-    AIX 3.2 (rs6000)
-    SunOS [missing strerror()]
-
-____________________________________________________________________________
-
-			General outline of program
-			------- ------- -- -------
-
-To summarize in a sentence, instant reads the output of sgmls, builds a tree
-of the instnace in memory, then traverses the tree in in-order, processing
-the nodes according to a translation spec.
-
-Element tree storage
-------- ---- -------
-
-The first thing instant must do is read the ESIS (output of sgmls) from the
-specified file or stdin, forming a tree in memory.  (Nothing makes sense
-without an instance...)  Each element of the instance is a node in the tree,
-stored as a structure called Element_t.  Elements contain content (what
-else?), which is a mixture of data (#PCDATA, #CDATA, #RCDATA - all the same
-in the ESIS), child elements, and PIs.  Each 'chunk' of content is referred
-to by a Content_t structure.  A Content_t contains an enum that can point to
-a string (data or PI), another Element_t.  For example, if a <p> element
-contains some characters, an <emphasis> element, some more characters,
-a <function> element, then some more characters, it has 5 Content_t children
-as an array.
-
-Element_t's have pointers to their parents, and a next element in a linked
-list (they're stored as a linked list, for cases when you'd want to quickly
-travers all the nodes, in no particular order).
-For convenience, Element_t's have an array of pointers to it's child
-Element_t's.  These are just pointers to the same thing contained in the
-Content_t array, without the intervening data or PIs.  This makes it easier
-for the program to traverse the elements of the tree (it does not have to
-be concerned with skipping data, etc.).  There is an analagous array of
-pointers for the data content, an array of (char *)'s.  This makes it easier
-to consider the immediate character content of an element.
-
-Attributes are kept as an array of name-value mappings (using the typedef
-Mapping_t).  ID attributes are also stored in a separate list of ID value -
-element pointer pairs so that it is quick to find an element by ID.
-
-Other information kept about each element (in the Element_t struct) includes
-the line number in the EISI where the element occurs, the input filename.
-(These depend on sgmls being run with the "-l" option.)  Also stored is
-an element's order in its parent's collection of children and an element's
-depth in the tree.
-
-Translation specs
------------ -----
-
-A translation spec is read into a linked list in memory.  As the instance
-tree is traversed, the transpecs are searched in order for a match.  As a
-rule, one should position the less specific transpecs later in the file.
-Also, specs for seldom-used element are best placed later in the file, since
-it takes cpu cycles to skip over them for each of the more-used elements.
-
-During translation of a particular element, the list of Content_t structures
-are processed in order.  If a content 'chunk' is data, it is printed to
-the output stream.  If it is an element, the translation routine is called
-for that elemen, recursively.  Hence, in-order traversal.
-
-Miscellaneous information displays
-------------- ----------- --------
-
-There are several informational display options available. They include:
-    -	a list of element usage (-u) -- lists each element in the instance,
-	it's attributes, number of children, parent, data content 'nodes'.
-    -	statistics about elements (-S) -- lists elements, number of times
-	each is used, percent of elements that this is, total char content
-	in that element, average number of characters in they element.
-    -	show context of each element (-x) -- lists each element and its
-	context, looking up the tree (this is the same context that
-	would match the Context field of a transpec).
-    -	show the hierarchy of the instance (-h) -- show an ascii 'tree' of
-	the instance, where elements deeper in the tree are indented more.
-	Numbers after the element name in parentheses are the number of
-	element content nodes and the number of data content nodes.
-
-Interactive browser
------------ -------
-
-Originally, the interactive browser was intended as a debugging aid for
-the code developer.  It was a way to examine a particular node of the
-instance tree or process a subtree without being distracted by the rest
-of the instance.  Many of the commands test functionality of the query
-and search code (such as testing whether a certain element has a given
-relationship to the current position in the tree).
-
-
-____________________________________________________________________________
-
--- a/usr/src/cmd/man/src/util/instant.src/THIRDPARTYLICENSE.descrip	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-INSTANT: A FORMATTING APPLICATION FOR OSF SGML INSTANCES
--- a/usr/src/cmd/man/src/util/instant.src/allVersion.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-/* version summary file created by makeVersionFile on Mon Jun 29  0:14:15 1998 */
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-char _HeadVeRsIoN_[] = "$Id: general.h 1.6 1997/08/26 04:04:40;
-translate.h 1.5 1998/06/29 04:13:40;
-main.c 1.12 1998/06/28 20:10:39;
-util.c 1.6 1998/06/28 19:36:03;
-info.c 1.2 1996/06/02 21:46:10;
-translate.c 1.16 1998/06/29 04:13:40;
-traninit.c 1.6 1998/06/28 19:15:41;
-tranvar.c 1.8 1998/06/28 18:53:40;
-tables.c 1.14 1998/06/28 19:50:54;
-browse.c 1.2 1996/06/02 21:46:10;
-Makefile 1.10 1996/06/15 22:49:42 $";
--- a/usr/src/cmd/man/src/util/instant.src/browse.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,473 +0,0 @@
-/*
- *  Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
- *  All rights reserved.
- */
-/*
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
- * Copyright (c) 1994  
- * Open Software Foundation, Inc. 
- *  
- * Permission is hereby granted to use, copy, modify and freely distribute 
- * the software in this file and its documentation for any purpose without 
- * fee, provided that the above copyright notice appears in all copies and 
- * that both the copyright notice and this permission notice appear in 
- * supporting documentation.  Further, provided that the name of Open 
- * Software Foundation, Inc. ("OSF") not be used in advertising or 
- * publicity pertaining to distribution of the software without prior 
- * written permission from OSF.  OSF makes no representations about the 
- * suitability of this software for any purpose.  It is provided "as is" 
- * without express or implied warranty. 
- */
-/*
- * Copyright (c) 1996 X Consortium
- * Copyright (c) 1995, 1996 Dalrymple Consulting
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- * 
- * Except as contained in this notice, the names of the X Consortium and
- * Dalrymple Consulting shall not be used in advertising or otherwise to
- * promote the sale, use or other dealings in this Software without prior
- * written authorization.
- */
-
-/* ________________________________________________________________________
- *
- *  Module for interactive browsing.
- *
- *  Entry points for this module:
- *	Browse()		interactive browser
- * ________________________________________________________________________
- */
-
-#ifndef lint
-static char *RCSid =
-  "$Header: /usr/src/docbook-to-man/Instant/RCS/browse.c,v 1.2 1996/06/02 21:46:10 fld Exp $";
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-
-#include "general.h"
-
-static void	PrElemPlusID(Element_t *);
-static void	ls_node(Element_t *, int, char **);
-static void	do_query(Element_t *, char *, char *);
-static void	do_find(Element_t *, char **);
-
-/* ______________________________________________________________________ */
-
-static char *br_help_msg[] = {
-  "  ls            List info about current element in tree",
-  "                (context, children, attributes, etc.)",
-  "  cd N ...      Change to Nth elememt child, where N is shown by 'ls'.",
-  "                N may also be '/' (top) or '..' (up).",
-  "  cd id I       Change to elememt whose ID is I",
-  "  data N        Show data of Nth data node",
-  "  where         Show current position in the tree",
-  "  id I          Show path to element with id I",
-  "                (using '?' for I will lists all IDs and their paths)",
-  "  find S        Find elements matching spec S. Recognized syntaxes:",
-  "                  find attr <name> <value>",
-  "                  find cont <string>",
-  "                  find parent <gi-name>",
-  "                  find child <gi-name>",
-  "                  find gi <gi-name>",
-  "  q rel gi      Query: report if elem 'gi' has relation to current elem",
-  "                ('rel' is one of 'child parent ancestor descendant",
-  "                  sibling sibling+ sibling+1 sibling- sibling-1 cousin')",
-  "",
-  "  tran file [outfile]",
-  "                With trans spec in 'file' translate into 'outfile' (stdout)",
-  "  sdata file    Read SDATA map file (for translations).",
-  "  cmap file     Read character map file (for translations).",
-  "  stat          Print statistics (how often elements occur, etc.)",
-  "  sum           Print elem usage summary (# of children, depth, etc.)",
-  "  tree          Print document hierarchy as a tree",
-  "  cont          Print context of each element",
-  NULL
-};
-
-/* ______________________________________________________________________ */
-
-void
-Browse()
-{
-    char	buf[256], *cmd, **av, **sv, *cmapfile, *sdatafile;
-    char	*Prompt;
-    Element_t	*ce;	/* current element */
-    Element_t	*e;
-    int		i, n, ac;
-
-    if (slave) Prompt = "=>\n";
-    else Prompt = "=> ";
-
-    ce = DocTree;
-    while (fputs(Prompt, stdout)) {
-	if (!fgets(buf, 256, stdin)) break;
-	stripNL(buf);
-	if (buf[0] == EOS) {
-	    fputs(Prompt, stdout);
-	    continue;
-	}
-	ac = 20;
-	av = Split(buf, &ac, S_ALVEC);
-	if (ac > 0) cmd = av[0];
-	if (!cmd || !(*cmd)) continue;
-
-	if (!strcmp(cmd, "ls")) ls_node(ce, ac, av);
-
-	else if (!strcmp(cmd, "cd")) {
-	    if (av[1]) {
-		if (ac == 3 && !strcmp(av[1], "id")) {
-		    if ((e = FindElemByID(av[2]))) ce = e;
-		    else printf("Element with ID '%s' not found.\n", av[2]);
-		    continue;
-		}
-		for (i=1; i<ac; i++) {
-		    if (!strcmp(av[i], "..")) {
-			if (ce->parent) ce = ce->parent;
-			continue;
-		    }
-		    if (!strcmp(av[i], "/")) {
-			if (ce->parent) ce = DocTree;
-			continue;
-		    }
-		    if (!isdigit(*av[i])) {
-			printf("Expecting digit, '..', or '/', got '%s'.\n",
-				    av[i]);
-			break;
-		    }
-		    n = atoi(av[i]);
-		    if (n < ce->necont) ce = ce->econt[n];
-		    else {
-			printf("Must be in range 0 - %d.\n", ce->necont);
-			break;
-		    }
-		}
-	    }
-	}
-
-	else if (!strcmp(cmd, "data")) {
-	    if (av[1] && isdigit(*av[1])) {
-		n = atoi(av[1]);
-		if (n < ce->ndcont) {
-		    printf(ce->dcont[n]);
-		    fputs("\n", stdout);
-		}
-		else if (ce->ndcont == 0)
-		    printf("No data at this node.\n");
-		else printf("Must be in range 0 - %d.\n", ce->ndcont);
-	    }
-	}
-
-	/* show where we are in the tree */
-	else if (!strcmp(cmd, "where")) PrintLocation(ce, stdout);
-
-	/* show where we are in the tree */
-	else if (!strcmp(cmd, "pwd")) PrElemPlusID(ce);
-
-	/* perform query with yes/no answer */
-	else if (!strcmp(cmd, "q") && av[1] && av[2])
-	    do_query(ce, av[1], av[2]);
-
-	/* perform query printing paths to matching elements */
-	else if (!strcmp(cmd, "find") && av[1] && av[2])
-	    do_find(ce, av);
-
-	/* list locations where specified ID(s) occur */
-	else if (!strcmp(cmd, "id")) {
-	    if (ac <= 1) continue;
-	    if (*av[1] == '?') PrintIDList();
-	    else {
-		/* short: "id i1 i2 ...", long: "id -l i1 i2 ..." */
-		if (!strcmp(av[1], "-l")) n = 2;
-		else n = 1;
-		for (i=n; i<ac; i++) {
-		    if ((e = FindElemByID(av[i]))) {
-			if (n == 2) {	/* long (multiline) format */
-			    if (n != i) putchar('\n');
-			    PrintLocation(e, stdout);
-			}
-			else PrElemPlusID(e);
-		    }
-		    else printf("Element with ID '%s' not found.\n", av[i]);
-		}
-	    }
-	}
-
-	/* show and set variables */
-	else if (!strcmp(cmd, "show") && av[1]) {
-	    printf("%s\n", FindMappingVal(Variables, av[1]));
-	}
-	else if (!strcmp(cmd, "set") && av[1] && av[2]) {
-	    SetMappingNV(Variables, av[1], av[2]);
-	}
-
-	/* print summary of tag usage */
-	else if (!strcmp(cmd, "sum")) {
-	    if (ac > 1) PrintElemSummary(ce);
-	    else PrintElemSummary(DocTree);
-	}
-	/* print element tree */
-	else if (!strcmp(cmd, "tree")) {
-	    if (ac > 1) PrintElemTree(ce);
-	    else PrintElemTree(DocTree);
-	}
-	/* print statistics */
-	else if (!strcmp(cmd, "stat")) {
-	    if (ac > 1) PrintStats(ce);
-	    else PrintStats(DocTree);
-	}
-	/* print context of each element of tree */
-	else if (!strcmp(cmd, "cont")) {
-	    if (ac > 1) PrintContext(ce);
-	    else PrintContext(DocTree);
-	}
-	/* print translation, given transpec */
-	else if (!strcmp(cmd, "tran")) {
-	    FILE *fp;
-	    if (ac > 2){
-		if (!(fp = fopen(av[2], "w"))) {
-		    perror("Can not open output file");
-		    continue;
-		}
-	    }
-	    else fp = stdout;
-	    DoTranslate(ce, av[1], fp);
-	    if (ac > 2) fclose(fp);
-	}
-	else if (!strcmp(cmd, "sdata")){
-	    sdatafile = strdup(av[1]);
-	    ReadSDATA(sdatafile);
-	}
-	else if (!strcmp(cmd, "cmap")){
-	    cmapfile = strdup(av[1]);
-	    ReadCharMap(cmapfile);
-	}
-
-	else if (!strcmp(cmd, "help") || *cmd == '?') {
-	    sv = br_help_msg;
-	    while (*sv) puts(*sv++);
-	}
-
-	/* quit (control-D also works) */
-	else if (!strcmp(cmd, "quit")) break;
-
-	else
-	    fprintf(stderr, "Unknown command '%s' - ingored.\n", cmd);
-    }
-    putc(NL, stdout);
-}
-
-/* ______________________________________________________________________ */
-/*  Do the "ls" command.
- *  Arguments:
- *	Pointer to element under consideration.
- *	Arg count from command line (this command, not the shell command).
- *	Arg vector.
- */
-
-static void
-ls_node(
-    Element_t	*e,
-    int		ac,
-    char	**av
-)
-{
-    int i;
-    char buf[LINESIZE];
-
-    if (ac > 1 && !strcmp(av[1], "-n")) {
-	for(i=0; i<e->ncont; i++) {
-	    if (IsContElem(e,i)) printf("%s\n", ContElem(e,i)->gi);
-	    else if (IsContData(e,i)) printf("#data %s\n", ContData(e,i));
-	    else if (IsContPI(e,i))   printf("#pi %s\n", ContData(e,i));
-	}
-	return;
-    }
-
-    printf("Element: %s\tLineNumber: %d\n", e->gi, e->lineno);
-    if (e->parent)
-	printf("Context: %s\n", FindContext(e, 20, buf));
-
-    if (e->natts) {
-	printf("%d attributes:\n", e->natts);
-	for (i=0; i<e->natts; i++)
-	    printf("\t%2d: %s = '%s'\n", i, e->atts[i].name, e->atts[i].sval);
-    }
-    if (e->entity) {
-	printf("Entity & notation information:\n");
-	if (e->entity->ename)
-	    printf("Entity name:   %s\n", e->entity->ename);
-	if (e->entity->nname)
-	    printf("Notation name: %s\n", e->entity->nname);
-	if (e->entity->sysid)
-	    printf("Sys id:        %s\n", e->entity->sysid);
-	if (e->entity->pubid)
-	    printf("Pub id:        %s\n", e->entity->pubid);
-	if (e->entity->fname)
-	    printf("Filename:      %s\n", e->entity->fname);
-    }
-
-    if (e->my_eorder >= 0)
-	printf("My order among my siblings: %d\n", e->my_eorder);
-
-    if (e->necont) {
-	printf("%d child element nodes:\n", e->necont);
-	for(i=0; i<e->necont; i++) printf("\t%2d: %s\n", i, e->econt[i]->gi);
-    }
-
-    if (e->ndcont) {
-	printf("%d child data nodes:\n", e->ndcont);
-	for(i=0; i<e->ndcont; i++) {
-	    if (strlen(e->dcont[i]) < 40) 
-		printf("\t%2d: %s\n", i, e->dcont[i]);
-	    else 
-		printf("\t%2d: %-40.40s...\n", i, e->dcont[i]);
-	}
-    }
-}
-
-/* ______________________________________________________________________ */
-/*  Perform query.  Syntax: find relationship gi.  Tells whether gi has
- *  given relationship to current element.  Result (message) sent to stdout.
- *  Args:
- *	Pointer to element under consideration.
- *	Pointer to name of relationship. (see FindRelByName() for names)
- *	Pointer to GI to look for.
- */
-
-static void
-do_query(
-    Element_t	*e,
-    char	*rel,
-    char	*gi
-)
-{
-    char	*cp;
-    Relation_t	 r;
-    Element_t	*ep;
-
-    for (cp=gi; *cp; cp++) if (islower(*cp)) *cp = toupper(*cp);
-
-    if ((r = FindRelByName(rel)) == REL_Unknown) {
-	return;
-    }
-    ep = QRelation(e, gi, r);
-    printf("%s, '%s' is%s %s of '%s'.\n", (ep ? "Yes" : "No"), gi,
-		(ep ? "" : " not"), rel, e->gi);
-}
-
-/* ______________________________________________________________________ */
-/* Print path to the element and its ID (if it has one) on a single line.
- *  Arguments:
- *	Pointer to element under consideration.
- */
-static void
-PrElemPlusID(
-    Element_t	*e
-)
-{
-    char buf[LINESIZE];
-
-    if (e->id) printf("%s -- ID=%s\n", FindElementPath(e, buf), e->id);
-    else printf("%s\n", FindElementPath(e, buf));
-}
-
-/* ______________________________________________________________________ */
-/* Print path to the element and its ID (if it has one) on a single line.
- *  Arguments:
- *	Pointer to element under consideration.
- */
-
-static void
-match_gi(
-    Element_t	*e,
-    char	**av
-)
-{
-    if (!strcmp(av[1], e->gi)) PrElemPlusID(e);
-}
-
-/*  Shorthand for defining simple finctions, which are just interfaces to
- *  calling QRelation().  DescendTree() only passes ptr to element. */
-#define MATCH(Fun,Rel)	\
-	static void Fun(Element_t *e, char **av) \
-	{ if (QRelation(e, av[1], Rel)) PrElemPlusID(e);  }
-
-MATCH(match_parent, REL_Parent)
-MATCH(match_child,  REL_Child)
-MATCH(match_anc,    REL_Ancestor)
-MATCH(match_desc,   REL_Descendant)
-MATCH(match_sib,    REL_Sibling)
-
-static void
-match_attr(
-    Element_t	*e,
-    char	**av
-)
-{
-    char	*atval;
-
-    if ((atval = FindAttValByName(e, av[1])) && !strcmp(av[2], atval))
-	PrElemPlusID(e);
-}
-
-static void
-match_cont(
-    Element_t	*e,
-    char	**av
-)
-{
-    int		i;
-    for (i=0; i<e->ncont; i++) {
-	if (IsContData(e,i) && strstr(ContData(e,i), av[1])) {
-	    PrElemPlusID(e);
-	    return;
-	}
-    }
-}
-
-/*  Find an element, given the criteria on its command line.
- *  Arguments:
- *	Pointer to element under consideration.
- */
-static void
-do_find(
-    Element_t	*e,
-    char	**av
-)
-{
-    av++;
-    if (!strcmp(av[0], ".")) av++;
-    else e = DocTree;
-    if (!strcmp(av[0], "gi"))		DescendTree(e, match_gi, 0, 0, av);
-    else if (!strcmp(av[0], "attr"))	DescendTree(e, match_attr, 0, 0, av);
-    else if (!strcmp(av[0], "parent"))	DescendTree(e, match_parent, 0, 0, av);
-    else if (!strcmp(av[0], "child"))	DescendTree(e, match_child, 0, 0, av);
-    else if (!strcmp(av[0], "cont"))	DescendTree(e, match_cont, 0, 0, av);
-    else if (!strcmp(av[0], "sib"))	DescendTree(e, match_sib, 0, 0, av);
-    else if (!strcmp(av[0], "desc"))	DescendTree(e, match_desc, 0, 0, av);
-    else if (!strcmp(av[0], "anc"))	DescendTree(e, match_anc, 0, 0, av);
-    else fprintf(stderr, "Unknown find command: %s.\n", av[0]);
-}
-
-/* ______________________________________________________________________ */
--- a/usr/src/cmd/man/src/util/instant.src/general.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-/*
- *  Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
- *  All rights reserved.
- */
-/*
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
- * Copyright (c) 1994  
- * Open Software Foundation, Inc. 
- *  
- * Permission is hereby granted to use, copy, modify and freely distribute 
- * the software in this file and its documentation for any purpose without 
- * fee, provided that the above copyright notice appears in all copies and 
- * that both the copyright notice and this permission notice appear in 
- * supporting documentation.  Further, provided that the name of Open 
- * Software Foundation, Inc. ("OSF") not be used in advertising or 
- * publicity pertaining to distribution of the software without prior 
- * written permission from OSF.  OSF makes no representations about the 
- * suitability of this software for any purpose.  It is provided "as is" 
- * without express or implied warranty. 
- */
-/*
- * Copyright (c) 1996 X Consortium
- * Copyright (c) 1995, 1996 Dalrymple Consulting
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- * 
- * Except as contained in this notice, the names of the X Consortium and
- * Dalrymple Consulting shall not be used in advertising or otherwise to
- * promote the sale, use or other dealings in this Software without prior
- * written authorization.
- */
-/* ________________________________________________________________________
- *
- *  Common definitions for "instant" program.
- * ________________________________________________________________________
- */
-
-#ifdef STORAGE
-#ifndef lint
-static char *gen_h_RCSid =
-  "$Header: /usr/src/docbook-to-man/Instant/RCS/general.h,v 1.6 1997/08/26 04:04:40 fld Exp $";
-#endif
-#endif
-
-/* string/numeric/character definitions */
-
-#define EOS		'\0'
-#define NL		'\n'
-#define TAB		'\t'
-#define CR		'\r'
-#define ANCHOR		''
-
-/* bigmask/flags for the Split() function */
-#define S_STRDUP	0x01
-#define S_ALVEC		0x02
-
-/*  Command codes (1st char of esis lines) from sgmls.  See its manpage. */
-#define CMD_DATA	'-'
-#define CMD_OPEN	'('
-#define CMD_CLOSE	')'
-#define CMD_ATT		'A'
-#define CMD_D_ATT	'D'
-#define CMD_NOTATION	'N'
-#define CMD_EXT_ENT	'E'
-#define CMD_INT_ENT	'I'
-#define CMD_SYSID	's'
-#define CMD_PUBID	'p'
-#define CMD_FILENAME	'f'
-#define CMD_LINE	'L'
-#define CMD_PI		'?'
-#define CMD_SUBDOC	'S'
-#define CMD_SUBDOC_S	'{'
-#define CMD_SUBDOC_E	'}'
-#define CMD_EXT_REF	'&'
-#define CMD_APPINFO	'#'
-#define CMD_CONFORM	'C'
-
-/*  Some sizes */
-#define MAX_DEPTH	40
-#define LINESIZE	60000
-
-/*  Name of library env variable, and default value. */
-#ifndef TPT_LIB
-#define TPT_LIB	"TPT_LIB"
-#endif
-#ifndef DEF_TPT_LIB
-#define DEF_TPT_LIB	"/project/tools/libdata/tpt"
-#endif
-
-/*  Relationships - for querying */
-typedef enum {
-    REL_None, REL_Parent, REL_Child, REL_Ancestor, REL_Descendant,
-    REL_Sibling, REL_Preceding, REL_ImmPreceding, REL_Following,
-    REL_ImmFollowing, REL_Cousin, REL_Unknown
-} Relation_t;
-
-/* Initial map sizes (IMS) */
-#define IMS_relations		3
-#define IMS_setvar		3
-#define IMS_incvar		3
-#define IMS_sdata		50
-#define IMS_sdatacache		30
-#define IMS_variables		20
-#define IMS_attnames		50
-#define IMS_elemnames		50
-
-/* ----- typedef and other misc definitions ----- */
-
-#ifndef TRUE
-#define TRUE (1 == 1)
-#endif
-
-#ifndef FALSE
-#define FALSE (1 == 0)
-#endif
-
-typedef short bool;
-
-
-/* ----- structure definitions ----- */
-
-/*  We use this for variables, attributes, etc., so the caller only needs an
- *  opaque handle to the thing below, not worrying about array management.  */
-typedef struct {
-    char	*name;			/* name of the thing */
-    char	*sval;			/* string value */
-} Mapping_t;
-
-typedef struct {
-    int		n_alloc;		/* number of elements allocated */
-    int		n_used;			/* number of elements used */
-    int		slot_incr;		/* increment for allocating slots */
-    int		flags;			/* info about this set of mappings */
-    Mapping_t	*maps;			/* array of mappings */
-} Map_t;
-
-/* ______________________________________________________________________ */
-
-/*  Information about an entity reference.  Not all fields will be used
- *  at once.  */
-typedef struct _ent {
-    char	*type;			/* entity type */
-    char	*ename;			/* entity name */
-    char	*nname;			/* notation name */
-    char	*sysid;			/* sys id */
-    char	*pubid;			/* pub id */
-    char	*fname;			/* filename */
-    struct _ent	*next;			/* next in linked list */
-} Entity_t;
-
-/*  Content (child nodes) of an element (node in the tree) -- both data
- *  and other elements.  */
-typedef struct {
-    char		type;		/* element, data, or pi? */
-    union {
-	struct _elem	*elem;		/* direct children of this elem */
-	char		*data;		/* character data of this elem */
-    } ch;
-} Content_t;
-
-/*  An element (node in the tree) */
-typedef struct _elem {
-    char	*gi;			/* element GI */
-    Content_t	*cont;			/* content - element & data children */
-    int		ncont;			/* # of content/children */
-    struct _elem **econt;		/* element children */
-    int		necont;			/* # of element children */
-    char	**dcont;		/* character data children */
-    int		ndcont;			/* # of data children */
-    Mapping_t	*atts;			/* array of attributes */
-    int		natts;			/* # of attributes */
-    Entity_t	*entity;		/* ext entity & notation info */
-    char	*id;			/* for linking */
-    int		index;			/* an internal bookkeeping mechanism */
-    int		depth;			/* how deep in tree */
-    int		lineno;			/* line number */
-    char	*infile;		/* input filename */
-    int		my_eorder;		/* order of this elem of its parent */
-    struct _elem *parent;		/* this elem's direct parent */
-    struct _elem *next;			/* kept in linked list */
-    void	*trans;			/* pointer to translation spec */
-    /* I'm not crazy about this, but it works */
-    int		gen_trans[2];		/* refs to generated trans specs */
-    int		processed;		/* was this node processed? */
-} Element_t;
-
-/*  For mapping of element IDs to elements themselves.  */
-typedef struct id_s {
-    char	*id;			/* ID of the element */
-    Element_t	*elem;			/* pointer to it */
-    struct id_s	*next;
-} ID_t;
-
-/* ----- global variable declarations ----- */
-
-#ifdef STORAGE
-# define def
-#else
-# define def	extern
-#endif
-
-def Element_t	*DocTree;		/* root of document tree */
-def char	**UsedElem;		/* a unique list of used elem names */
-def int		nUsedElem;		/* number of used elem names */
-def char	**UsedAtt;		/* a unique list of used attrib names */
-def int		nUsedAtt;		/* number of used attrib names */
-def ID_t	*IDList;		/* list of IDs used in the doc */
-def Map_t	*Variables;		/* general, global variables */
-def Map_t	*SDATAmap;		/* SDATA mappings */
-def Map_t	*PImap;			/* Processing Instruction mappings */
-def Entity_t	*Entities;		/* list of entities */
-
-def FILE	*outfp;			/* where output is written */
-def char	*tpt_lib;		/* TPT library directory */
-def int		verbose;		/* flag - verbose output? */
-def int		warnings;		/* flag - show warnings? */
-def int		interactive;		/* flag - interactive browsing? */
-def int		slave;			/* are we slave to another process? */
-def int		fold_case;		/* flag - fold case of GIs? */
-
-/* ----- some macros for convenience and ease of code reading ----- */
-
-#define stripNL(s)	{ char *_cp; if ((_cp=strchr(s, NL))) *_cp = EOS; }
-
-/*  Similar to calloc(), malloc(), and realloc(), but check for success.
- *  Args to all:
- *	(1) number of 'elements' to allocate
- *	(2) variable to point at allocated space
- *	(3) type of 'element'
- *  Eg:	Calloc(5, e, Element_t) replaces
- *	if (!(e = (Element_t *)calloc(5, sizeof(Element_t))) {
- *		... handle error ... ;
- *	}
- */
-#define Calloc(N,V,T)	\
-    { if (!((V) = (T *)calloc((size_t)N, sizeof(T)))) { \
-	perror("Calloc failed -- out of memory.  Bailing out.");  exit(1); \
-    }; memset((void *) (V), 0, (size_t) sizeof(T)); }
-#define Malloc(N,V,T)	\
-    { if (!((V) = (T *)malloc((size_t)N*sizeof(T)))) { \
-	perror("Malloc failed -- out of memory.  Bailing out.");  exit(1); \
-    }; memset((void *) (V), 0, (size_t) sizeof(T)); }
-#define Realloc(N,V,T)	\
-    { if (!((V) = (T *)realloc(V,(size_t)N*sizeof(T)))) { \
-	perror("Realloc failed -- out of memory.  Bailing out.");  exit(1); \
-    } }
-
-/*  similar to strcmp(), but check first chars first, for efficiency */
-#define StrEq(s1,s2)	(s1[0] == s2[0] && !strcmp(s1,s2))
-
-/*  similar to isspace(), but check for blank or tab - without overhead
- *  of procedure call */
-#define IsWhite(c)	(c == ' ' || c == TAB)
-
-#define ContType(e,i)	(e->cont[i].type)
-#define ContData(e,i)	(e->cont[i].ch.data)
-#define ContElem(e,i)	(e->cont[i].ch.elem)
-#define IsContData(e,i)	(e->cont[i].type == CMD_DATA)
-#define IsContElem(e,i)	(e->cont[i].type == CMD_OPEN)
-#define IsContPI(e,i)	(e->cont[i].type == CMD_PI)
-
-/* ----- function prototypes ----- */
-
-/* things defined in main.c */
-
-Entity_t	* FindEntity(char *);
-
-/* things defined in util.c */
-Element_t	*QRelation(Element_t *, char *, Relation_t);
-Relation_t	FindRelByName(char *);
-char		*FindAttValByName(Element_t *, char *);
-char		*FindContext(Element_t *, int, char *);
-char		*AddElemName(char *);
-char		*AddAttName(char *);
-void		 OutputString(char *, FILE *, int);
-FILE		*OpenFile(char *);
-char		*FindElementPath(Element_t *, char *);
-char		*NearestOlderElem(Element_t *, char *);
-void		PrintLocation(Element_t *, FILE *);
-char		**Split(char *, int *, int);
-void		DescendTree(Element_t *, void(*)(), void(*)(), void(*)(), void *);
-Map_t		*NewMap(int);
-Mapping_t	*FindMapping(Map_t *, char *);
-char		*FindMappingVal(Map_t *, char *);
-void		SetMapping(Map_t *, char *);
-void		SetMappingNV(Map_t *, char *, char *);
-void		AddID(Element_t *, char *);
-Element_t	*FindElemByID(char *);
-
-/* things defined in translate.c */
-void		DoTranslate(Element_t*, char *, FILE *);
-
-/* things defined in traninit.c */
-void		ReadTransSpec(char *);
-void		ReadSDATA(char *);
-void		ReadCharMap(char *);
-
-/* things defined in tranvar.c */
-char		*Get_A_C_value(char *);
-
-/* things defined in info.c */
-void		PrintContext(Element_t *e);
-void		PrintElemSummary(Element_t *);
-void		PrintElemTree(Element_t *);
-void		PrintStats(Element_t *);
-void		PrintIDList();
-
-/* ----- other declarations ----- */
-
-#ifdef ultrix
-#define strdup(s)	strcpy((char *)malloc(strlen(s)+1), s)
-#endif
-
--- a/usr/src/cmd/man/src/util/instant.src/hyper.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
- *  Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
- *  All rights reserved.
- */
-/*
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
- * Copyright (c) 1994  
- * Open Software Foundation, Inc. 
- *  
- * Permission is hereby granted to use, copy, modify and freely distribute 
- * the software in this file and its documentation for any purpose without 
- * fee, provided that the above copyright notice appears in all copies and 
- * that both the copyright notice and this permission notice appear in 
- * supporting documentation.  Further, provided that the name of Open 
- * Software Foundation, Inc. ("OSF") not be used in advertising or 
- * publicity pertaining to distribution of the software without prior 
- * written permission from OSF.  OSF makes no representations about the 
- * suitability of this software for any purpose.  It is provided "as is" 
- * without express or implied warranty. 
- */
-/*
- * Copyright (c) 1996 X Consortium
- * Copyright (c) 1995, 1996 Dalrymple Consulting
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- * 
- * Except as contained in this notice, the names of the X Consortium and
- * Dalrymple Consulting shall not be used in advertising or otherwise to
- * promote the sale, use or other dealings in this Software without prior
- * written authorization.
- */
-/* ________________________________________________________________________
- *
- *  Hypermedia-related facilities.
- *
- *  Entry points for this module:
- *	AddID(elem, idval)		add elem-id pair to list of known ids
- *	FindElemByID(idval)		find elem by id
- * ________________________________________________________________________
- */
-
-#ifndef lint
-static char *RCSid =
-  "$Header: /usr/src/docbook-to-man/Instant/RCS/hyper.c,v 1.2 1996/06/02 21:46:10 fld Exp $";
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <memory.h>
-#include <sys/types.h>
-
-#include "general.h"
-
-
-/* ______________________________________________________________________ */
-
-void
-AddID(Element *e, char *idval)
-{
-    static ID *id_last;
-    if (!IDList) {
-	Calloc(1, id_last, ID);
-	IDList = id_last;
-    }
-    else {
-	Calloc(1, id_last->next, ID);
-	id_last = id_last->next;
-    }
-    id_last->elem = e;
-    id_last->id   = idval;
-}
-
-Element	*
-FindElemByID(char *idval)
-{
-    ID *id;
-    for (id=IDList; id; id=id->next)
-	if (!strcmp(id->id, idval)) return id->elem;
-    return 0;
-}
-
-/* ______________________________________________________________________ */
-
--- a/usr/src/cmd/man/src/util/instant.src/info.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,301 +0,0 @@
-/*
- *  Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
- *  All rights reserved.
- */
-/*
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
- * Copyright (c) 1994  
- * Open Software Foundation, Inc. 
- *  
- * Permission is hereby granted to use, copy, modify and freely distribute 
- * the software in this file and its documentation for any purpose without 
- * fee, provided that the above copyright notice appears in all copies and 
- * that both the copyright notice and this permission notice appear in 
- * supporting documentation.  Further, provided that the name of Open 
- * Software Foundation, Inc. ("OSF") not be used in advertising or 
- * publicity pertaining to distribution of the software without prior 
- * written permission from OSF.  OSF makes no representations about the 
- * suitability of this software for any purpose.  It is provided "as is" 
- * without express or implied warranty. 
- */
-/*
- * Copyright (c) 1996 X Consortium
- * Copyright (c) 1995, 1996 Dalrymple Consulting
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- * 
- * Except as contained in this notice, the names of the X Consortium and
- * Dalrymple Consulting shall not be used in advertising or otherwise to
- * promote the sale, use or other dealings in this Software without prior
- * written authorization.
- */
-/* ________________________________________________________________________
- *
- *  Functions for printing information about an instance in the 'instant'
- *  program.  Most of these are fairly short and simple.
- *
- *  Entry points for this module:
- *	PrintElemSummary(elem)	print summary info of each element
- *	PrintContext(elem)	print context of each element
- *	PrintElemTree(elem)	print tree of document
- *	PrintStats(elem)	print statistics about doc tree
- *	PrintIDList(elem)	print list of IDs and element context
- *  Most Print*() functions start at subtree pointed to by 'elem'.
- * ________________________________________________________________________
- */
-
-#ifndef lint
-static char *RCSid =
-  "$Header: /usr/src/docbook-to-man/Instant/RCS/info.c,v 1.2 1996/06/02 21:46:10 fld Exp $";
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-
-#include "general.h"
-
-/* ______________________________________________________________________ */
-/*  Print a summary of each tag use in the instance.  Things like depth in
- *  the tree, number of children, parent, attributes.
- */
-
-/*  Do the actual printing.  Print the info about the node.  If null,
- *  print a header for the columns.
- *  Arguments:
- *	Pointer to element structure of the node to print.
- */
-static void
-print_summ(
-    Element_t	*e
-)
-{
-    int i, n, dsize;
-    char *hfmt="%-18.18s %4s %5s %4s %4s %s\n";
-    char *fmt ="%-18.18s %4d %5d %4d %4d %s\n";
-
-    if (e == NULL) {
-	fprintf(outfp, hfmt, "Element", "Att", "Data", "Chd", "Dep", "Parent");
-	return;
-    }
-    for (i=0,n=0; i<e->ncont; i++) if (IsContElem(e,i)) n++;
-    for (i=0,dsize=0; i<e->ncont; i++)
-	if (IsContElem(e,i)) dsize += strlen(e->cont[i].ch.data);
-    fprintf(outfp, fmt, e->gi, e->natts, dsize, n, e->depth,
-	e->parent ? e->parent->gi : "-");
-
-    for (i=0; i<e->natts; i++) {
-	fprintf(outfp, "%45d: %s = %s\n", i, e->atts[i].name,
-	    e->atts[i].sval ? e->atts[i].sval : "empty");
-    }
-}
-
-/*  Descend the tree, calling processing routine.
- *  Arguments:
- *	Pointer to element structure at top of tree to traverse.
- */
-void
-PrintElemSummary(
-    Element_t	*e
-)
-{
-    print_summ(0);
-    DescendTree(e, print_summ, 0, 0, 0);
-}
-
-/* ______________________________________________________________________ */
-/*  Print the context of each tag in the instance (i.e. the tag with its
- *  ancestors).
- */
-
-/*  Do the actual printing.  Print the context of the node.
- *  Arguments:
- *	Pointer to element structure of the node to print.
- */
-static void
-print_context(
-    Element_t	*e
-)
-{
-    char buf[LINESIZE];
-
-    fprintf(outfp, "%-22s %s\n", e->gi, FindContext(e, 10, buf));
-}
-
-/*  Descend the tree, calling processing routine.
- *  Arguments:
- *	Pointer to element structure at top of tree to traverse.
- */
-void
-PrintContext(
-    Element_t	*e
-)
-{
-    fprintf(outfp, "%-22s %s\n", "Element", "Context");
-    fprintf(outfp, "%-22s %s\n", "---------------", "-----------");
-    DescendTree(e, print_context, 0, 0, 0);
-
-    putc(NL, outfp);
-}
-
-/* ______________________________________________________________________ */
-/*  Print tree of the instance.  GI's are printed indented by their depth
- *  in the tree.
- */
-
-/*  Do the actual printing.  Print the element name, indented the right amount.
- *  Arguments:
- *	Pointer to element structure of the node to print.
- */
-static void
-print_indent(
-    Element_t	*e
-)
-{
-    int		i, ne, nd;
-    for(i=0; i<e->depth; i++) fputs(".  ", outfp);
-    for(i=0,ne=0; i<e->ncont; i++) if (IsContElem(e,i)) ne++;
-    for(i=0,nd=0; i<e->ncont; i++) if IsContData(e,i) nd++;
-    fprintf(outfp, "%s  (%d,%d)\n", e->gi, ne, nd);
-}
-
-/*  Descend the tree, calling processing routine.
- *  Arguments:
- *	Pointer to element structure at top of tree to traverse.
- */
-void
-PrintElemTree(
-    Element_t	*e
-)
-{
-    DescendTree(e, print_indent, 0, 0, 0);
-    putc(NL, outfp);
-}
-
-/* ______________________________________________________________________ */
-/*  Print some statistics about the instance.
- */
-
-/*  Accumulate the totals for the statistics.
- *  Arguments:
- *	Pointer to element structure of the node to print.
- *	Pointer to the total number of elements.
- *	Pointer to the total amount of content data.
- *	Pointer to the maximum depth of tree.
- */
-static void
-acc_tots(
-    Element_t	*e,
-    int		*tot_el,
-    int		*tot_data,
-    int		*max_depth
-)
-{
-    int		i;
-    for(i=0; i<e->necont; i++)
-	acc_tots(e->econt[i], tot_el, tot_data, max_depth);
-    for (i=0; i<e->necont; i++) (*tot_el)++;
-    for (i=0; i<e->ndcont; i++) (*tot_data) += strlen(e->dcont[i]);
-    if (e->depth > (*max_depth)) *max_depth = e->depth;
-}
-
-/*  Descend the tree (recursively), collecting the statistics.
- *  Arguments:
- *	Pointer to element structure of the node to print.
- *	Pointer to the total number of elements.
- *	Pointer to the total amount of content data.
- *	Pointer to the maximum depth of tree.
- */
-static void
-elem_usage(
-    Element_t	*e,
-    char	*name,
-    int		*n_used,
-    int		*nchars
-)
-{
-    int		i;
-    if (!strcmp(name, e->gi)) {
-	(*n_used)++;
-	for (i=0; i<e->ncont; i++)
-	    if (IsContData(e,i)) (*nchars) += strlen(ContData(e,i));
-    }
-    for(i=0; i<e->necont; i++)
-	elem_usage(e->econt[i], name, n_used, nchars);
-}
-
-/*  Descend the tree, calling processing routine.
- *  Arguments:
- *	Pointer to element structure at top of tree to traverse.
- */
-void
-PrintStats(
-    Element_t	*top
-)
-{
-    int		i, n;
-    int		dif_el=0, tot_el=0, tot_data=0, nchars, max_depth=0;
-    float	pct;
-
-    fprintf(outfp, "%-22s %s   %s\n", "Element name",    "Occurrances", "Character Content");
-    fprintf(outfp, "%-22s %s   %s\n", "---------------", "-----------", "-----------------");
-
-    acc_tots(top, &tot_el, &tot_data, &max_depth);
-
-    for (i=0; i<nUsedElem; i++) {
-	n = 0;
-	nchars = 0;
-	elem_usage(top, UsedElem[i], &n, &nchars);
-	if (n > 0) {
-	    pct = 100.0 * (float)n / (float)tot_el;
-	    fprintf(outfp, "%-22s %4d  %4.1f%%   %6d  %4d\n", UsedElem[i],
-		n, pct, nchars, (nchars/n));
-	    dif_el++;
-	}
-    }
-
-    fprintf(outfp, "\nTotal of %d elements used, %d different ones.\n",
-	tot_el, dif_el);
-    fprintf(outfp, "Total character data: %d.\n", tot_data);
-    fprintf(outfp, "Maximum element depth: %d.\n", max_depth);
-    putc(NL, outfp);
-}
-
-/* ______________________________________________________________________ */
-/* Print list of: ID, GI, input file, line number, separated by colons.
- * This is better for other programs to manipulate (like for keeping a
- * database of IDs in documents) than humans to read.
- */
-
-void
-PrintIDList()
-{
-    ID_t	*id;
-    Element_t	*ep;
-
-    for (id=IDList; id; id=id->next) {
-	ep = id->elem;
-	fprintf(outfp, "%s:%s:%s:%d\n", id->id, ep->gi,
-		ep->infile?ep->infile:"-", ep->lineno);
-    }
-}
-
-/* ______________________________________________________________________ */
-
--- a/usr/src/cmd/man/src/util/instant.src/main.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,714 +0,0 @@
-/*
- *  Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
- *  All rights reserved.
- */
-/*
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
- * Copyright (c) 1994  
- * Open Software Foundation, Inc. 
- *  
- * Permission is hereby granted to use, copy, modify and freely distribute 
- * the software in this file and its documentation for any purpose without 
- * fee, provided that the above copyright notice appears in all copies and 
- * that both the copyright notice and this permission notice appear in 
- * supporting documentation.  Further, provided that the name of Open 
- * Software Foundation, Inc. ("OSF") not be used in advertising or 
- * publicity pertaining to distribution of the software without prior 
- * written permission from OSF.  OSF makes no representations about the 
- * suitability of this software for any purpose.  It is provided "as is" 
- * without express or implied warranty. 
- */
-/*
- * Copyright (c) 1996 X Consortium
- * Copyright (c) 1995, 1996 Dalrymple Consulting
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- * 
- * Except as contained in this notice, the names of the X Consortium and
- * Dalrymple Consulting shall not be used in advertising or otherwise to
- * promote the sale, use or other dealings in this Software without prior
- * written authorization.
- */
-/* ________________________________________________________________________
- *
- *  Program to read an SGML document instance, creating any of several things:
- *
- *	"translated" output for formatting applications (given a trans. spec)
- *	validation report (given a appropriate trans spec)
- *	tree of the document's structure
- *	statistics about the element usage
- *	summary of the elements used
- *	context of each element used
- *	IDs of each element
- *
- *  A C structure is created for each element, which includes:
- *	name, attributes, parent, children, content
- *  The tree is descended, and the desired actions performed.
- *
- *  Takes input from James Clark's "sgmls" program (v. 1.1).
- * ________________________________________________________________________
- */
-
-#ifndef lint
-static char *RCSid =
-  "$Header: /usr/src/docbook-to-man/Instant/RCS/main.c,v 1.12 1998/06/28 20:10:39 fld Exp fld $";
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <memory.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/file.h>
-#include <time.h>
-
-#define STORAGE
-#include "general.h"
-
-static int	do_context, do_tree, do_summ, do_stats, do_validate, do_idlist;
-static int	do_DATAhack = 0;
-static char	*this_prog;
-static char	*in_file, *out_file;
-static char	*tranfile, *cmapfile, *sdatafile;
-static char	*start_id;
-static char	*last_file;
-static int	last_lineno;
-
-extern int	BOFTTextThresh;
-
-/* forward references */
-static void	HandleArgs(int, char *[]);
-static void	Initialize1();
-static void	Initialize2();
-static void	ReadInstance(char *);
-static void	DoHelpMessage();
-extern void	Browse();
-
-/* external reference to version number */
-extern char	_HeadVeRsIoN_[];
-
-/* ______________________________________________________________________ */
-/*  Program entry point.  Look at args, read instance, dispatch to the
- *  correct routines to do the work, and finish.
- */
-
-int
-main(
-    int		ac,
-    char	*av[]
-)
-{
-    Initialize1(av[0]);
-    HandleArgs(ac, av);
-    Initialize2();
-
-    ReadInstance(in_file);
-
-    if (interactive) {
-	Browse();	/* this will handle interactive commands */
-    }
-    else {
-	/* Perform tasks based on command line flags... */
-	if (tranfile) {
-	    Element_t *e;
-	    /* If user wants to start at a particular ID, point to that
-	     * element.  Else, point to the top of the tree. */
-	    if (start_id) {
-		if (!(e=FindElemByID(start_id))) {
-		    fprintf(stderr, "Error: Can not find element with ID %s\n",
-			start_id);
-		    exit(1);
-		}
-	    }
-	    else e = DocTree;
-	    if (sdatafile) ReadSDATA(sdatafile);
-	    if (cmapfile)  ReadCharMap(cmapfile);
-	    /* If we're doing validation, make output file pointer null.
-	     * This means that we generate no output, except error messages. */
-	    if (do_validate) outfp = NULL;
-	    DoTranslate(e, tranfile, outfp);
-	}
-	if (do_summ)		PrintElemSummary(DocTree);
-	if (do_tree)		PrintElemTree(DocTree);
-	if (do_stats)		PrintStats(DocTree);
-	if (do_context)		PrintContext(DocTree);
-	if (do_idlist)		PrintIDList();
-    }
-    if (out_file && outfp) fclose(outfp);
-
-    return 0;
-}
-
-/* ______________________________________________________________________ */
-/* Initialization stuff done before dealing with args.
- *  Arguments:
- *	Name of program (string).
- */
-
-static void
-Initialize1(
-    char	*myname
-)
-{
-    time_t	tnow;
-    struct tm	*nowtm;
-    char	*cp, buf[100];
-    extern	int gethostname(char *, int);	/* not in a system .h file... */
-
-    /* where we try to find data/library files */
-    if (!(tpt_lib=getenv(TPT_LIB))) tpt_lib = DEF_TPT_LIB;
-
-    /* set some global variables */
-    warnings  = 1;
-    fold_case = 1;
-    this_prog = myname;
-
-    /* setup global variable mapping */
-    Variables = NewMap(IMS_variables);
-
-    /* set some pre-defined variables */
-    SetMappingNV(Variables, "user", (cp=getenv("USER")) ? cp : "UnknownUser" );
-    time(&tnow);
-    nowtm = localtime(&tnow);
-    strftime(buf, 100, "%a %d %b %Y, %R", nowtm);
-    SetMappingNV(Variables, "date", buf);
-    if (gethostname(buf, 100) < 0) strcpy(buf, "unknown-host");
-    SetMappingNV(Variables, "host", buf);
-    SetMappingNV(Variables, "transpec", tranfile ? tranfile : "??");
-}
-
-/* Initialization stuff done after dealing with args. */
-
-static void
-Initialize2()
-{
-    SetMappingNV(Variables, "transpec", tranfile ? tranfile : "??");
-
-    /* If user wants to send output to a file, open the file, and set
-     * the file pointer.  Else we send output to standard out. */
-    if (out_file) {
-	if (!(outfp = fopen(out_file, "w"))) {
-	    fprintf(stderr, "Could not open output '%s' file for writing.\n%s",
-		out_file, strerror(errno));
-	    exit(1);
-	}
-    }
-    else outfp = stdout;
-}
-
-/* ______________________________________________________________________ */
-/*  Set a variable.  If it is one of the "known" variables, set the
- *  variable in the C code (this program).
- *  Arguments:
- *	Variable name/value string - separated by an '=' (eg, "myname=Sally").
- */
-static void
-CmdLineSetVariable(
-    char	*var
-)
-{
-    char	*cp, buf[100], **tok;
-    int		n;
-
-    /* Turn '=' into a space, to isolate the name.  Then set variable. */
-    strcpy(buf, var);
-    if ((cp=strchr(buf, '='))) {
-	/* we have "var=value" */
-	*cp = ' ';
-	n = 2;
-	tok = Split(buf, &n, 0);
-	/* see if variable name matches one of our internal ones */
-	if (!strcmp(tok[0], "verbose"))		verbose   = atoi(tok[1]);
-	else if (!strcmp(tok[0], "warnings"))	warnings  = atoi(tok[1]);
-	else if (!strcmp(tok[0], "foldcase"))	fold_case = atoi(tok[1]);
-	else SetMappingNV(Variables, tok[0], tok[1]);
-    }
-    else {
-	fprintf(stderr, "Expected an '=' in variable assignment: %s. Ignored\n",
-		var);
-    }
-}
-
-/* ______________________________________________________________________ */
-/*  Bounce through arguments, setting variables and flags.
- *  Arguments:
- *	Argc and Argv, as passed to main().
- */
-static void
-HandleArgs(
-    int		ac,
-    char	*av[]
-)
-{
-    int		c, errflag=0;
-    extern char	*optarg;
-    extern int	optind;
-
-    while ((c=getopt(ac, av, "df:t:vc:s:o:huSxIl:bHVWi:D:Z")) != EOF) {
-	switch (c) {
-	    case 't': tranfile		= optarg;	break;
-	    case 'v': do_validate	= 1;		break;
-	    case 's': sdatafile		= optarg;	break;
-	    case 'c': cmapfile		= optarg;	break;
-	    case 'h': do_tree		= 1;		break;
-	    case 'u': do_summ		= 1;		break;
-	    case 'S': do_stats		= 1;		break;
-	    case 'x': do_context	= 1;		break;
-	    case 'I': do_idlist		= 1;		break;
-	    case 'l': tpt_lib		= optarg;	break;
-	    case 'i': start_id		= optarg;	break;
-	    case 'o': out_file		= optarg;	break;
-	    case 'd': do_DATAhack	= 1;		break;
-	    case 'f': BOFTTextThresh	= atoi(optarg);	break;
-	    case 'b': interactive	= 1;		break;
-	    case 'W': warnings		= 0;		break;
-	    case 'V': verbose		= 1;		break;
-	    case 'Z': slave		= 1;		break;
-	    case 'H': DoHelpMessage();	exit(0);	break;
-	    case 'D': CmdLineSetVariable(optarg);	break;
-	    case '?': errflag		= 1;		break;
-	}
-	if (errflag) {
-	    fprintf(stderr, "Try '%s -H' for help.\n", this_prog);
-	    exit(1);
-	}
-    }
-
-    /* input (ESIS) file name */
-    if (optind < ac) in_file = av[optind];
-
-    /* If doing interactive/browsing, we can't take ESIS from stdin. */
-    if (interactive && !in_file) {
-	fprintf(stderr,
-	    "You must specify ESIS file on cmd line for browser mode.\n");
-	exit(1);
-    }
-}
-
-/* ______________________________________________________________________ */
-/*  Simply print out a help/usage message.
- */
-
-static char *help_msg[] = {
-  "",
-  "  -t file   Print translated output using translation spec in <file>",
-  "  -s file   <file> contains a list of SDATA entity mappings",
-  "  -c file   <file> contains a list of character mappings",
-  "  -v        Validate using translation spec specified with -t",
-  "  -i id     Consider only subtree starting at element with ID <id>",
-  "  -b        Interactive browser",
-  "  -S        Print statistics (how often elements occur, etc.)",
-  "  -u        Print element usage summary (# of children, depth, etc.)",
-  "  -x        Print context of each element",
-  "  -h        Print document hierarchy as a tree",
-  "  -o file   Write output to <file>.  Default is standard output.",
-  "  -l dir    Set library directory to <dir>. (or env. variable TPT_LIB)",
-  "  -I        List all IDs used in the instance",
-  "  -W        Do not print warning messages",
-  "  -H        Print this help message",
-  "  -Dvar=val Set variable 'var' to value 'val'",
-  "  file      Take input from named file.  If not specified, assume stdin.",
-  "            File should be output from the 'sgmls' program (ESIS).",
-  NULL
-};
-
-static void
-DoHelpMessage()
-{
-    char	**s = help_msg;
-    printf("usage: %s [option ...] [file]", this_prog);
-    while (*s) puts(*s++);
-    printf("\nVersion: %s\n", _HeadVeRsIoN_);
-}
-
-/* ______________________________________________________________________ */
-/*  Remember an external entity for future reference.
- *  Arguments:
- *	Pointer to entity structure to remember.
- */
-
-static void
-AddEntity(
-    Entity_t	*ent
-)
-{
-    static Entity_t *last_ent;
-
-    if (!Entities) {
-        Malloc(1, Entities, Entity_t);
-        last_ent = Entities;
-    }
-    else {
-        Malloc(1, last_ent->next, Entity_t);
-        last_ent = last_ent->next;
-    }
-    *last_ent = *ent;
-    
-}
-
-/*  Find an entity, given its entity name.
- *  Arguments:
- *	Name of entity to retrieve.
- */
-Entity_t *
-FindEntity(
-    char	*ename
-)
-{
-    Entity_t	*n;
-    for (n=Entities; n; n=n->next)
-	if (StrEq(ename, n->ename)) return n;
-    return 0;
-}
-
-/*  Accumulate lines up to the open tag.  Attributes, line number,
- *  entity info, notation info, etc., all come before the open tag.
- */
-static Element_t *
-AccumElemInfo(
-    FILE	*fp
-)
-{
-    char	buf[LINESIZE+1];
-    int		c;
-    int		i, na;
-    char	*cp, *atval;
-    Mapping_t	a[100];
-    Element_t	*e;
-    Entity_t	ent, *ent2;
-    char	**tok;
-    static int	Index=0;
-    static Element_t	*last_e;
-    
-
-    Calloc(1, e, Element_t);
-    memset(&ent, 0, sizeof ent);	/* clean space for entity info */
-
-    /* Also, keep a linked list of elements, so we can easily scan through */
-    if (last_e) last_e->next = e;
-    last_e = e;
-
-    e->index = Index++;		/* just a unique number for identification */
-
-    /* in case these are not set for this element in the ESIS */
-    e->lineno = last_lineno;
-    e->infile = last_file;
-
-    na = 0;
-    while (1) {
-	if ((c = getc(fp)) == EOF) break;
-	fgets(buf, LINESIZE, fp);
-	stripNL(buf);
-	switch (c) {
-	    case EOF:		/* End of input */
-		fprintf(stderr, "Error: Unexpectedly reached end of ESIS.\n");
-		exit(1);
-		break;
-
-	    case CMD_OPEN:	/* (gi */
-		e->gi = AddElemName(buf);
-		if (na > 0) {
-		    Malloc(na, e->atts, Mapping_t);
-		    memcpy(e->atts, a, na*sizeof(Mapping_t));
-		    e->natts = na;
-		    na = 0;
-		}
-		/*  Check if this elem has a notation attr.  If yes, and there
-		    is no notation specified, recall the previous one. (feature
-		    of sgmls - it does not repeat notation stuff if we the same
-		    is used twice in a row) */
-		if (((atval=FindAttValByName(e, "NAME")) ||
-		     (atval=FindAttValByName(e, "ENTITYREF")) ||
-		     (atval=FindAttValByName(e, "EXTERNAL"))) &&   /* HACK */
-					(ent2=FindEntity(atval))) {
-		    e->entity = ent2;
-		}
-
-		return e;
-		break;
-
-	    case CMD_ATT:	/* Aname val */
-		i = 3;
-		tok = Split(buf, &i, 0);
-		if (!strcmp(tok[1], "IMPLIED")) break;	/* skip IMPLIED atts. */
-		if (!strcmp(tok[1], "CDATA") || !strcmp(tok[1], "TOKEN") ||
-		    !strcmp(tok[1], "ENTITY") ||!strcmp(tok[1], "NOTATION"))
-		{
-		    a[na].name = AddAttName(tok[0]);
-		    a[na].sval = AddAttName(tok[2]);
-		    na++;
-		}
-		else {
-		    fprintf(stderr, "Error: Bad attr line (%d): A%s %s...\n",
-			e->lineno, tok[0], tok[1]);
-		}
-		break;
-
-	    case CMD_LINE:	/* Llineno */
-		/* These lines come in 2 forms: "L123" and "L123 file.sgml".
-		 * Filename is given only at 1st occurance. Remember it.
-		 */
-		if ((cp = strchr(buf, ' '))) {
-		    cp++;
-		    last_file = strdup(cp);
-		}
-		last_lineno = e->lineno = atoi(buf);
-		e->infile = last_file;
-		break;
-
-	    case CMD_DATA:	/* -data */
-		fprintf(stderr, "Error: Data in AccumElemInfo, line %d:\n%c%s\n",
-			e->lineno, c,buf);
-		/*return e;*/
-		exit(1);
-		break;
-
-	    case CMD_D_ATT:	/* Dename name val */
-
-	    case CMD_NOTATION:	/* Nnname */
-	    case CMD_PI:	/* ?pi */
-				/* This should be reworked soon, as it 
-				   forces all PI's before the first GI
-				   to be ignored. -CSS */
-		break;
-
-	    case CMD_EXT_ENT:	/* Eename typ nname */
-		i = 3;
-		tok = Split(buf, &i, 0);
-		ent.ename = strdup(tok[0]);
-		ent.type  = strdup(tok[1]);
-		ent.nname = strdup(tok[2]);
-		AddEntity(&ent);
-		break;
-	    case CMD_INT_ENT:	/* Iename typ text */
-		fprintf(stderr, "Error: Got CMD_INT_ENT in AccumElemInfo: %s\n", buf);
-		break;
-	    case CMD_SYSID:	/* ssysid */
-		ent.sysid = strdup(buf);
-		break;
-	    case CMD_PUBID:	/* ppubid */
-		ent.pubid = strdup(buf);
-		break;
-	    case CMD_FILENAME:	/* ffilename */
-		ent.fname = strdup(buf);
-		break;
-
-	    case CMD_CLOSE:	/* )gi */
-	    case CMD_SUBDOC:	/* Sename */
-	    case CMD_SUBDOC_S:	/* {ename */
-	    case CMD_SUBDOC_E:	/* }ename */
-	    case CMD_EXT_REF:	/* &name */
-	    case CMD_APPINFO:	/* #text */
-	    case CMD_CONFORM:	/* C */
-	    default:
-		fprintf(stderr, "Error: Unexpected input in AccumElemInfo, %d:\n%c%s\n",
-			e->lineno, c,buf);
-		exit(1);
-		break;
-	}
-    }
-    if ( e && e->gi )
-    	fprintf(stderr, "Error: End of AccumElemInfo - should not be here: %s\n", e->gi);
-    else
-    	fprintf(stderr, "Invalid SGML. File cannot be formatted\n");
-/*    return e;*/
-    exit(1);
-}
-
-/*  Read ESIS lines.
- */
-
-#define BASECONTSIZE	500	/* starting size for number of children */
-#define GROWCONTSIZE	500	/* if we need to grow that, by this much */
-
-static Element_t *
-ReadESIS(
-    FILE	*fp,
-    int		depth
-)
-{
-    char	*buf;
-    int		i, c, ncont, contsize;
-    Element_t	*e;
-    Content_t	*cont;
-
-    Malloc( LINESIZE+1, buf, char );
-    contsize = BASECONTSIZE;			/* starting content size */
-    Malloc( contsize, cont, Content_t );
-
-    /* Read input stream - the output of "sgmls", called "ESIS".  */
-    e = AccumElemInfo(fp);
-    e->depth = depth;
-
-    ncont = 0;
-    while (1) {
-	if ((c = getc(fp)) == EOF) break;
-	if ( ncont >= contsize )	{
-		contsize += GROWCONTSIZE;
-		Realloc( contsize, cont, Content_t );
-	}
-
-	switch (c) {
-	    case EOF:		/* End of input */
-		break;
-
-	    case CMD_DATA:	/* -data */
-		fgets(buf, LINESIZE, fp);
-		stripNL(buf);
-		if (do_DATAhack && (buf[0] == '\\') && (buf[1] == 'n') )	{
-			buf[0] = -1;		/* simulate "^" command */
-			memcpy(&buf[1], &buf[2], strlen(buf)-1);
-		}
-		cont[ncont].ch.data = strdup(buf);
-		cont[ncont].type = CMD_DATA;
-		ncont++;
-		break;
-
-	    case CMD_PI:	/* ?pi */
-		fgets(buf, LINESIZE, fp);
-		stripNL(buf);
-		cont[ncont].type = CMD_PI;
-		cont[ncont].ch.data = strdup(buf);
-		ncont++;
-		break;
-
-	    case CMD_CLOSE:	/* )gi */
-		fgets(buf, LINESIZE, fp);
-		stripNL(buf);
-		if (ncont) {
-		    e->ncont = ncont;
-		    Malloc(ncont, e->cont, Content_t);
-		    for (i=0; i<ncont; i++) e->cont[i] = cont[i];
-		}
-		free(buf);
-		free(cont);
-		return e;
-		break;
-
-	    case CMD_OPEN:	/* (gi */
-/*fprintf(stderr, "+++++ OPEN +++\n");*/
-/*		break;*/
-
-	    case CMD_ATT:	/* Aname val */
-	    case CMD_D_ATT:	/* Dename name val */
-	    case CMD_NOTATION:	/* Nnname */
-	    case CMD_EXT_ENT:	/* Eename typ nname */
-	    case CMD_INT_ENT:	/* Iename typ text */
-	    case CMD_SYSID:	/* ssysid */
-	    case CMD_PUBID:	/* ppubid */
-	    case CMD_FILENAME:	/* ffilename */
-		ungetc(c, fp);
-		cont[ncont].ch.elem = ReadESIS(fp, depth+1);
-		cont[ncont].type = CMD_OPEN;
-		cont[ncont].ch.elem->parent = e;
-		ncont++;
-		break;
-
-	    case CMD_LINE:	/* Llineno */
-		fgets(buf, LINESIZE, fp);
-		break;		/* ignore these here */
-
-	    case CMD_SUBDOC:	/* Sename */
-	    case CMD_SUBDOC_S:	/* {ename */
-	    case CMD_SUBDOC_E:	/* }ename */
-	    case CMD_EXT_REF:	/* &name */
-	    case CMD_APPINFO:	/* #text */
-	    case CMD_CONFORM:	/* C */
-	    default:
-		fgets(buf, LINESIZE, fp);
-		fprintf(stderr, "Error: Unexpected input at %d: '%c%s'\n",
-			e->lineno, c, buf);
-		exit(1);
-		break;
-	}
-    }
-		if( e && e->gi)
-    		fprintf(stderr, "Error: End of ReadESIS - should not be here: %s\n", e->gi);
-    	else
-    		fprintf(stderr, "Error: Invalid SGML: End of ReadESIS - should not be here:\n");
-
-    free(buf);
-    free(cont);
-    return NULL;
-}
-
-/* ______________________________________________________________________ */
-/*  Read input stream, creating a tree in memory of the elements and data.
- *  Arguments:
- *	Filename where instance's ESIS is.
- */
-static void
-ReadInstance(
-    char	*filename
-)
-{
-    int		i, n;
-    FILE	*fp;
-    Element_t	*e;
-    char	*idatt;
-
-    if (filename) {	/* if we specified input file.  else stdin */
-	if ((fp=fopen(filename, "r")) == NULL) {
-	    perror(filename);
-	    exit(1);
-	}
-    }
-    else fp = stdin;
-    last_file = filename;
-    DocTree = ReadESIS(fp, 0);
-    if (filename) fclose(fp);
-
-    /* Traverse tree, filling in econt and figuring out which child
-     * (ie. what birth order) each element is. */
-    DocTree->my_eorder = -1;
-    for (e=DocTree; e; e=e->next) {
-
-	/* count element children */
-	for (i=0,n=0; i<e->ncont; i++) if (IsContElem(e,i)) n++;
-	if (n > 0) Calloc(n, e->econt, Element_t *);
-	for (i=0; i<e->ncont; i++)
-	    if (IsContElem(e,i)) e->econt[e->necont++] = ContElem(e,i);
-
-	/* count data children */
-	for (i=0,n=0; i<e->ncont; i++) if (IsContData(e,i)) n++;
-	if (n > 0) Calloc(n, e->dcont, char *);
-	for (i=0; i<e->ncont; i++)
-	    if (IsContData(e,i)) e->dcont[e->ndcont++] = ContData(e,i);
-
-	/* where in child order order */
-	for (i=0; i<e->necont; i++)
-	    e->econt[i]->my_eorder = i;
-
-	/* Does this element have an ID? */
-	for (i=0; i<e->natts; i++) {
-	    if ((idatt=FindAttValByName(e, "ID"))) {
-		AddID(e, idatt);
-		/* remember ID value for quick reference */
-		e->id = idatt;
-		break;
-	    }
-	}
-    }
-    return;
-}
-
-/* ______________________________________________________________________ */
--- a/usr/src/cmd/man/src/util/instant.src/masterVersion.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-/* version summary file created by makeVersionFile on Mon Jun 29  0:14:15 1998 */
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-char _HeadVeRsIoN_[] = "$Id: instant 1.116 1998/06/29 04:14:15 $";
--- a/usr/src/cmd/man/src/util/instant.src/tables.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2124 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- *  Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
- *  All rights reserved.
- */
-
-/*
- * Copyright 1994
- * Open Software Foundation, Inc.
- *
- * Permission is hereby granted to use, copy, modify and freely distribute
- * the software in this file and its documentation for any purpose without
- * fee, provided that the above copyright notice appears in all copies and
- * that both the copyright notice and this permission notice appear in
- * supporting documentation.  Further, provided that the name of Open
- * Software Foundation, Inc. ("OSF") not be used in advertising or
- * publicity pertaining to distribution of the software without prior
- * written permission from OSF.  OSF makes no representations about the
- * suitability of this software for any purpose.  It is provided "as is"
- * without express or implied warranty.
- */
-
-/*
- * Copyright 1996 X Consortium
- * Copyright 1995, 1996 Dalrymple Consulting
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the names of the X Consortium and
- * Dalrymple Consulting shall not be used in advertising or otherwise to
- * promote the sale, use or other dealings in this Software without prior
- * written authorization.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-/*
- * ________________________________________________________________________
- *
- *  Program to manipulate SGML instances.
- *
- * Originally coded for OSF DTD tables, now recoded (fld 3/27/95)
- * for CALS-type tables (fragment taken from the DocBook DTD).  Then,
- * *really* upgraded to CALS tables by FLD on 5/28/96.
- *
- *  This module is for handling table markup, printing TeX or tbl
- *  (tbl) markup to the output stream.  Also, table markup checking is
- *  done here.  Yes, this depends on the DTD, but it makes translation
- *  specs much cleaner (and makes some things possible).
- *
- *  Incomplete / not implemented / limitations / notes:
- *	vertical alignment (valign attr)
- *	vertical spanning
- *	row separators are for the whole line, not per cell (the prog looks
- *		at rowsep for the 1st cell and applies it to the whole row)
- *	trusts that units in colwidths are acceptable to LaTeX and tbl
- *	"s" is an acceptable shorthand for "span" in model attributes
- *
- *  A note on use of OutputString():  Strings with backslashes (\) need lots
- *  of backslashes.  You have to escape them for the C compiler, and escape
- *  them again for OutputString() itself.
- * ________________________________________________________________________
- */
-
-#ifndef lint
-static char *RCSid =
-	"$Header: /usr/src/docbook-to-man/Instant/\
-RCS/tables.c,v 1.14 1998/06/28 19:50:54 fld Exp $";
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <memory.h>
-#include <sys/types.h>
-#include <errno.h>
-
-#include <tptregexp.h>
-#include "general.h"
-#include "translate.h"
-
-/* text width of page, in inches */
-#define	TEXTWIDTH	5.5
-#define	MAXCOLS		100
-#define	MAXWIDTH	50		/* max storage for width parameters */
-#define	SPAN_NOT	0
-#define	SPAN_START	1
-#define	SPAN_CONT	2
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-/* table parameters */
-
-#define	TBLMAXCOL	30	/* max number of columns in tbl table */
-#define	NAMELEN		40	/* max length of a name */
-#define	BOFTTHRESHOLD	35
-	/*
-	 * text length over which to consider
-	 * generating a block of filled text
-	 */
-
-
-/* handy declarations */
-
-typedef enum { Left, Right, Center, Justify, Char, Span } tblalign;
-
-typedef enum { TGroup, THead, TFoot, TBody } tblsource;	/* source of a spec */
-
-
-/* table line format information structures */
-
-struct tblcolspec	{
-
-	char		name[NAMELEN];	/* colspec's name */
-	short		num;		/* column number */
-	tblsource	source;		/* where defined */
-
-	tblalign	align;		/* column's alignment */
-	char		alignchar;	/* character for alignment */
-	short		aligncharoff;	/* offset for alignment */
-	char		colwidth[MAXWIDTH];	/* width for column */
-	char		colpwidth[MAXWIDTH];
-		/* proportional widths for column */
-	bool		colsep;		/* separator to right of column? */
-	bool		rowsep;		/* separator to bottom of column? */
-	short		moreRows;	/* value for Morerows */
-
-	struct tblcolspec *next;	/* next colspec */
-};
-
-struct tblspanspec	{
-
-	char		name[NAMELEN];	/* spanspec's name */
-	tblsource	source;		/* where defined */
-
-	struct tblcolspec *start;	/* start column */
-	struct tblcolspec *end;	/* end column */
-	tblalign	align;		/* span's alignment */
-	char		alignchar;	/* character for alignment */
-	short		aligncharoff;	/* offset for alignment */
-	bool		colsep;		/* separator to right of column? */
-	bool		rowsep;		/* separator to bottom of column? */
-
-	struct tblspanspec *next;	/* next spanspec */
-};
-
-struct tblformat	{
-	short	count;			/* count of rows matching this spec */
-
-	short	cols;			/* # of columns */
-	short	rowNum;			/* row number */
-	char	colformat[TBLMAXCOL];	/* per-column formats */
-	char	colwidth[TBLMAXCOL][MAXWIDTH]; /* per-column widths */
-	char	colpwidth[TBLMAXCOL][MAXWIDTH];
-		/* per-column proportional widths */
-	char	font[TBLMAXCOL][3];	/* column fonts (headers) */
-	bool	colsep[TBLMAXCOL];	/* column separators */
-	bool	rowsep[TBLMAXCOL];	/* row separators */
-	short	moreRows[TBLMAXCOL];	/* moreRows indicator */
-
-	struct tblformat *next;	/* for the next row */
-};
-
-
-/* table state info */
-
-static short	tblcols = 0;		/* number of columns in the table */
-static short	tblrow = 0;		/* the current row in the table */
-
-static bool tblTGroupSeen = FALSE;	/* seen a TGroup in this table yet? */
-
-static char *tblFrame;		/* table frame info */
-static bool	tblgcolsep;		/* global colsep (in table) */
-static bool	tblgrowsep;		/* global rowsep (in table) */
-
-static int	tblBOFTCount = 0;
-	/* count of bofts that we've created (per table) */
-int	BOFTTextThresh = BOFTTHRESHOLD;
-	/* length of text before we call it a BOFT */
-static bool	tblboft = FALSE;	/* within a block of filled text? */
-static bool	tblinBOFT = FALSE;	/* within a boft now? */
-
-static struct tblformat *formP = 0;	/* THead/TBody format lines */
-
-static struct tblcolspec *tblColSpec = 0;   /* colspec structure for table */
-static struct tblspanspec *tblSpanSpec = 0; /* spanspec structure for table */
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-/* these cover the attributes on the Table, TGroup, Colspec elements */
-typedef struct {
-	char	*cols;
-	char	*align, **align_v;
-    char	*colwidth, **colwidth_v;
-    char	*colsep, **colsep_v;
-    char	*rowsep, **rowsep_v;
-    char	*frame;
-    char	*orient;
-    int		pgwide;
-    int		n_align, n_model, n_colwidth, n_colsep;
-    int		nc;
-} TableInfo;
-
-
-/* some flags, set when the table tag is processed, used later */
-static int	rowsep, siderules;
-static int	frametop, framebot, frameall;
-static char	basemodel[128];	/* model for table (in formatting language) */
-static int	spaninfo[MAXCOLS];	/* 100 columns, max */
-static TableInfo	TheTab;
-
-/* forward references */
-void	SetTabAtts(Element_t *, TableInfo *, int);
-void	FreeTabAtts(TableInfo	*);
-void	ClearTable(TableInfo *);
-void	CheckTable(Element_t *);
-void	TblTStart(Element_t *, FILE *);
-void	TblTEnd(Element_t *, FILE *);
-void	TblTGroup(Element_t *, FILE *);
-void	TblTGroupEnd(Element_t *, FILE *);
-void	TblTFoot(Element_t *, FILE *);
-void	TblBuildFormat(Element_t *, struct tblformat **, tblsource);
-struct tblformat *TblBuild1Format(Element_t *, bool, tblsource);
-char	TblGetAlign(short, Element_t *, tblsource);
-char 	*TblGetWidth(short, Element_t *, bool, tblsource);
-char 	*TblGetFont(short, Element_t *, tblsource);
-bool	TblGetColSep(short, Element_t *, tblsource);
-bool	TblGetRowSep(short, Element_t *, tblsource);
-short	TblGetMoreRows(short, Element_t *, tblsource);
-bool	TblColAdv(short, Element_t *, struct tblformat *, tblsource);
-struct tblcolspec *TblEntryColSpec(short, Element_t *, tblsource);
-struct tblspanspec *TblEntrySpanSpec(short, Element_t *, tblsource);
-bool	TblFormatMatch(struct tblformat *, struct tblformat *);
-void	TblPrintFormat(FILE *, struct tblformat *);
-void	TblTRowStart(Element_t *, FILE *);
-void	TblTRowEnd(Element_t *, FILE *);
-void	TblTCellStart(Element_t *, FILE *);
-int	TblCountContent(Element_t *);
-void	TblTCellEnd(Element_t *, FILE *);
-struct tblcolspec *TblDoColSpec(short, Element_t *,
-	struct tblcolspec *, tblsource);
-struct tblspanspec *TblDoSpanSpec(Element_t *,
-	struct tblspanspec *, tblsource);
-struct tblcolspec *TblFindColSpec(char *, tblsource);
-struct tblcolspec *TblFindColNum(short, tblsource);
-struct tblspanspec *TblFindSpanSpec(char *, tblsource);
-void	TexTable(Element_t *, FILE *);
-void	TexTableCellStart(Element_t *, FILE *);
-void	TexTableCellEnd(Element_t *, FILE *);
-void	TexTableRowStart(Element_t *, FILE *);
-void	TexTableRowEnd(Element_t *, FILE *);
-void	TexTableTop(Element_t *, FILE *);
-void	TexTableBottom(Element_t *, FILE *);
-
-/* ______________________________________________________________________ */
-/*
- *  Hard-coded stuff for CALS-style DTD tables.
- *  Here are the TABLE attributes (for handy reference):
- *
- *  Table/InformalTable:
- *	Colsep	   NUMBER	separate all columns in table?
- *	Frame	   (Top|Bottom|Topbot|All|Sides|None)	frame style
- *	Orient	   (Port | Land)	orientation
- *	Pgwide	   NUMBER	wide table?
- *	Rowsep	   NUMBER	separate all rows in the table?
- *	Tabstyle   NMTOKEN	FOSI table style
- *
- *  TGroup:
- *	Align	   (Left|Right|Center|Justify|Char)	alignment of cols
- *	Char	   CDATA	Alignment specifier
- *	Charoff	   NUTOKEN	    ""       ""
- *	Cols	   NUMBER	number of columns
- *	Colsep	   NUMBER	separate all columns in tgroup?
- *	Rowsep	   NUMBER	separate all rows in tgroup?
- *	TGroupstyle NMTOKEN	FOSI table group style
- *
- *  Colspec:
- *	Align      (Left|Right|Center|Justify|Char)	entry align
- *	Char       CDATA	Alignment specifier
- *	Charoff    NUTOKEN	    ""       ""
- *	Colname    NMTOKEN	Column identifier
- *	Colnum	   NUMBER	number of column
- *	Colsep     NUMBER	separate this col from next?
- *	Colwidth   CDATA	width spec
- *	Rowsep     NUMBER	serarate entry from following row?
- *
- *  SpanSpec:
- *	Align      (Left|Right|Center|Justify|Char)	entry align
- *	Char       CDATA	Alignment specifier
- *	Charoff    NUTOKEN	    ""       ""
- *	Colsep     NUMBER	separate this col from next?
- *	Nameend    NMTOKEN	name of rightmost col of a span
- *	Namest     NMTOKEN	name of leftmost col of a span
- *	Rowsep     NUMBER	serarate entry from following row?
- *	Spanname   NMTOKEN	name of a horiz. span
- *
- *  THead/TFoot/TBody:
- *	VAlign	   (Top | Middle | Bottom)	group placement
- *
- *  Row:
- *	Rowsep	   NUMBER	separate this row from next?
- *	VAlign	   (Top | Middle | Bottom)	row placement
- *
- *  Entry:
- *	Align      (Left|Right|Center|Justify|Char)	entry align
- *	Char       CDATA	Alignment specifier
- *	Charoff    NUTOKEN	    ""       ""
- *	Colname    NMTOKEN	Column identifier
- *	Colsep     NUMBER	separate this col from next?
- *	Morerows   NUMBER	number of addn'l rows in vert straddle
- *	Nameend    NMTOKEN	name of rightmost col of a span
- *	Namest     NMTOKEN	name of leftmost col of a span
- *	Rotate     NUMBER	90 degree rotation counterclockwise to table?
- *	Rowsep     NUMBER	serarate entry from following row?
- *	Spanname   NMTOKEN	name of a horiz. span
- *	VAlign     (Top | Middle | Bottom)	text vert alignment
- *
- *
- * OBSOLETE OSF DTD FORM (still used for TeX form):
- *  Usage in transpec: _calstable [tex|check|clear] ['aspect']
- *  where 'aspect' is:
- *	rowstart	stuff to do at start of a row (tests for spanning)
- *	rowend		stuff to do at end of a row (eg, rules, etc.)
- *	cellstart	stuff to do at start of a cell (eg, handle actual
- *			spanning instructions, etc.)
- *	cellend		stuff to do at end of a cell  (eg, cell separator)
- *	top		stuff to do at top of the table
- *			(like whether or not it needs a starting horiz rule)
- *	bottom		stuff to do at bottom of the table
- *			(like whether or not it needs an ending horiz rule)
- *	(nothing)	the 'cols' param to LaTeX's \begin{tabular}[pos]{cols}
- *			or 'options' and 'formats' part in tbl
- *
- *
- * New tbl form:
- *  Usage in transpec: _calstable [tbl] ['aspect']
- *  where 'aspect' is:
- *	tablestart	start a table and do style info
- *	tableend	end the table and clean up
- *	tablegroup	table TGroup (.T& if not 1st, line format info)
- *	tablegroupend	end a TGroup
- *	tablefoot	TFoot within a TGroup
- *	rowstart	start of a row
- *	rowend		end of a row
- *	entrystart	start of an entry (block of filled text, if
- *				appropriate)
- *	entryend	end of a cell  (eg, cell separator)
- */
-
-/*
- *  Procedure to
- *  Arguments:
- *	Pointer to element under consideration.
- *	FILE pointer to where to write output.
- *	Vector of args to _osftable
- *	Count of args to _osftable
- */
-void
-CALStable(
-    Element_t	*e,
-    FILE	*fp,
-    char	**av,
-    int		ac
-)
-{
-	/* Check params and dispatch to appropriate routine */
-
-	if (strcmp(av[1], "tbl") == 0) {
-
-		if (ac > 2) {
-			if (strcmp(av[2], "tablestart") == 0)
-				TblTStart(e, fp);
-			else if (strcmp(av[2], "tableend") == 0)
-				TblTEnd(e, fp);
-			else if (strcmp(av[2], "tablegroup") == 0)
-				TblTGroup(e, fp);
-			else if (strcmp(av[2], "tablegroupend") == 0)
-				TblTGroupEnd(e, fp);
-			else if (strcmp(av[2], "tablefoot") == 0)
-				TblTFoot(e, fp);
-			else if (strcmp(av[2], "rowstart") == 0)
-				TblTRowStart(e, fp);
-			else if (strcmp(av[2], "rowend") == 0)
-				TblTRowEnd(e, fp);
-			else if (strcmp(av[2], "entrystart") == 0)
-				TblTCellStart(e, fp);
-			else if (strcmp(av[2], "entryend") == 0)
-				TblTCellEnd(e, fp);
-			else fprintf(stderr, "Unknown %s table "
-				"instruction: %s\n", av[1], av[2]);
-		} else {
-			fprintf(stderr, "Incomplete %s table instruction\n");
-		}
-	}
-
-	else if (strcmp(av[1], "tex") == 0) {
-		if (ac > 1 && (strcmp(av[1], "check") == 0))
-			CheckTable(e);
-
-		else
-			if (ac > 1 && (strcmp(av[1], "clear") == 0))
-				ClearTable(&TheTab);
-
-	if (ac > 2) {
-	    if (strcmp(av[2], "cellstart") == 0) TexTableCellStart(e, fp);
-	    else if (strcmp(av[2], "cellend") == 0) TexTableCellEnd(e, fp);
-	    else if (strcmp(av[2], "rowstart") == 0) TexTableRowStart(e, fp);
-	    else if (strcmp(av[2], "rowend") == 0) TexTableRowEnd(e, fp);
-	    else if (strcmp(av[2], "top") == 0) TexTableTop(e, fp);
-	    else if (strcmp(av[2], "bottom") == 0) TexTableBottom(e, fp);
-	    else fprintf(stderr, "Unknown %s table instruction: %s\n",
-			av[1], av[2]);
-	} else
-		TexTable(e, fp);
-	}
-
-	else fprintf(stderr, "Unknown table type: %s\n", av[1]);
-
-}
-
-/*  ClearTable -- start a new table process */
-
-
-void
-ClearTable(TableInfo *t)
-{
-	memset(t, 0, sizeof (TableInfo));
-}
-
-
-/* ______________________________________________________________________ */
-/*
- *  Set values of the our internal table structure based on the table's
- *  attributes.  (This is called for tables, tgroups, colspecs, and rows,
- *  since tables and rows share many of the same attributes.)
- *  Arguments:
- *	Pointer to element under consideration.
- *	Pointer table info structure which will be filled in.
- *	Flag saying whether or not to set global variables based on attrs.
- */
-void
-SetTabAtts(
-	Element_t	*e,
-	TableInfo	*t,
-	int		set_globals
-)
-{
-	char	*at;
-	Element_t	*ep;
-
-	/* remember values of attributes */
-	if ((at = FindAttValByName(e, "ALIGN"))) t->align = at;
-	if ((at = FindAttValByName(e, "COLWIDTH")))	t->colwidth = at;
-	if ((at = FindAttValByName(e, "COLSEP"))) t->colsep = at;
-	if ((at = FindAttValByName(e, "FRAME"))) t->frame = at;
-	if ((at = FindAttValByName(e, "COLS")))	t->cols	= at;
-
-	/* Set some things for later when processing this table */
-	if (set_globals) {
-
-		rowsep = 1;
-		frametop = framebot = 1;		/* default style */
-
-	/*
-	 * For now we look at the first number of rowsep - it controls the
-	 * horiz rule for then entire row.  (not easy to specify lines that
-	 * span only some columns in tex or tbl.
-	 */
-	if ((at = FindAttValByName(e, "ROWSEP")))	rowsep = atoi(at);
-	}
-
-	if (t->frame) {
-	/* Top|Bottom|Topbot|All|Sides|None */
-	if ((strcmp(t->frame, "NONE") == 0) ||
-		(strcmp(t->frame, "SIDES") == 0))
-	    frametop = framebot = 0;
-		else
-			if (strcmp(t->frame, "TOP") == 0)
-				framebot = 0;
-		else
-			if (strcmp(t->frame, "BOTTOM") == 0)
-				frametop = 0;
-	}
-
-	/* tbl and tex like lower case for units. convert. */
-	if (t->colwidth) {
-		char *cp;
-		for (cp = t->colwidth; *cp; cp++)
-			if (isupper(*cp)) *cp = tolower(*cp);
-	}
-
-	/*
-	 * Now, split (space-separated) strings into vectors.  Hopefully, the
-	 * number of elements in each vector matches the number of columns.
-	 */
-	t->align_v	= Split(t->align, &t->n_align, S_STRDUP|S_ALVEC);
-	t->colwidth_v	= Split(t->colwidth, &t->n_colwidth, S_STRDUP|S_ALVEC);
-	t->colsep_v	= Split(t->colsep, &t->n_colsep, S_STRDUP|S_ALVEC);
-
-	/*
-	 * Determine the _numeric_ number of columns, "nc".  MUST be specified
-	 * in Cols attribute of TGroup element.
-	 */
-	if (t->cols) t->nc = atoi(t->cols);
-}
-
-/* ______________________________________________________________________ */
-
-/*
- *  Free the storage of info use by the table info structure.  (not the
- *  structure itself, but the strings its elements point to)
- *  Arguments:
- *	Pointer table info structure to be freed.
- */
-void
-FreeTabAtts(
-    TableInfo	*t
-)
-{
-	if (!t)
-		return;
-	if (t->align_v)		free(*t->align_v);
-	if (t->colwidth_v)	free(*t->colwidth_v);
-	if (t->colsep_v)	free(*t->colsep_v);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  Check the attributes and children of the table pointed to by e.
- *  Report problems and inconsistencies to stderr.
- *  Arguments:
- *	Pointer to element (table) under consideration.
- */
-
-void
-CheckTable(
-    Element_t	*e
-)
-{
-	int		pr_loc = 0;	/* flag to say if we printed location */
-	int		i, r, c;
-	Element_t	*ep, *ep2;
-	float	wt;
-	char	*tpref = "Table Check";		/* prefix for err messages */
-	char	*ncolchk =
-	"Table Check: %s ('%s') has wrong number of tokens.  Expecting %d.\n";
-
-	if (strcmp(e->gi, "TABLE") &&
-		strcmp(e->gi, "INFORMALTABLE") &&
-		strcmp(e->gi, "TGROUP") &&
-		strcmp(e->gi, "COLSPEC") &&
-		strcmp(e->gi, "ROW")) {
-		fprintf(stderr, "%s: Not pointing to a table element(%s)!\n",
-						tpref, e->gi);
-		return;
-	}
-
-	FreeTabAtts(&TheTab);	/* free storage, if allocated earlier */
-	SetTabAtts(e, &TheTab, 1);	/* look at attributes */
-
-#if FALSE
-	/* NCOLS attribute set? */
-	if (!TheTab.ncols) {
-		pr_loc++;
-		fprintf(stderr, "%s: NCOLS attribute missing. "
-			"Inferred as %d.\n", tpref, TheTab.nc);
-	}
-
-	/* ALIGN attribute set? */
-	if (!TheTab.align) {
-		pr_loc++;
-		fprintf(stderr, "%s: ALIGN attribute "
-			"missing.\n", tpref);
-	}
-
-	/* See if the number of cells in each row matches */
-	for (r = 0; r < e->necont &&
-		(ep = e->econt[r]); r++) {
-		/* each TGroup */
-		for (i = 0;  i < ep->necont &&
-			(ep2 = ep->econt[i]);  i++)	{
-				if (strcmp(ep2->gi, "TBODY")) {
-					/* only TBodys */
-					continue;
-				}
-
-			for (c = 0;  c < ep2->necont;  c++)	{
-				if (ep2->econt[c]->necont != TheTab.nc) {
-					pr_loc++;
-					fprintf(stderr, "%s: COLS (%d)"
-						"differs from actual number of "
-						"cells (%d) in row %d.\n",
-						tpref, TheTab.nc,
-						ep2->econt[c]->necont, c);
-				}
-			}
-		}
-	}
-#endif
-
-	/* Check ALIGN */
-	if (TheTab.align) {
-		if (TheTab.nc != TheTab.n_align) {
-			/* number of tokens OK? */
-			pr_loc++;
-			fprintf(stderr, ncolchk, "ALIGN",
-				TheTab.align, TheTab.nc);
-		} else {
-			/* values OK? */
-			for (i = 0; i < TheTab.nc; i++) {
-				if (*TheTab.align_v[i] != 'C' &&
-					*TheTab.align_v[i] != 'L' &&
-					*TheTab.align_v[i] != 'R') {
-					pr_loc++;
-					fprintf(stderr, "%s: ALIGN (%d) "
-						"value wrong: %s\n",
-						tpref, i, TheTab.align_v[i]);
-				}
-			}
-		}
-	}
-
-	/* check COLWIDTH */
-	if (TheTab.colwidth) {
-		if (TheTab.nc != TheTab.n_colwidth) {
-			/* number of tokens OK? */
-			pr_loc++;
-			fprintf(stderr, ncolchk, "COLWIDTH",
-				TheTab.colwidth, TheTab.nc);
-		} else {				/* values OK? */
-			for (i = 0; i < TheTab.nc; i++) {
-				/*
-				 * check that the units after the numbers are OK
-				 *  we want "in", "cm".
-				 */
-			}
-		}
-	}
-
-	/* check COLSEP */
-	if (TheTab.colsep) {
-		if (TheTab.nc != TheTab.n_colsep) {
-			/* number of tokens OK? */
-			pr_loc++;
-			fprintf(stderr, ncolchk, "COLSEP",
-				TheTab.colsep, TheTab.nc);
-		} else {
-			/* values OK? */
-			for (i = 0; i < TheTab.nc; i++) {
-			}
-		}
-	}
-
-	if (pr_loc) {
-		fprintf(stderr, "%s: ", tpref);
-		fprintf(stderr, "Above problem in table located at:\n");
-		PrintLocation(e, stderr);
-	}
-}
-
-/* ______________________________________________________________________ */
-
-/*
- *  Look at colspec attribute for spanning.  If set, remember info for when
- *  doing the cells.  Called by TblTableRowStart() and TexTableRowStart().
- *  Arguments:
- *	Pointer to element (row) under consideration.
- */
-int
-check_for_spans(
-	Element_t	*e
-)
-{
-	char	*at;
-	char	**spans;
-	int		n, i, inspan;
-
-#if FALSE	/* NOT IMPLEMENTED RIGHT NOW */
-
-	/* See if COLSPEC element present */
-	for (i = 0;  i < e->necont;  i++)	{
-
-	}
-
-
-	if ((at = FindAttValByName(e, "MODEL"))) {
-
-		/* Split into tokens, then look at each for the word "span" */
-		n = TheTab.nc;
-		spans = Split(at, &n, S_STRDUP|S_ALVEC);
-
-	/*
-	 * Mark columns as start-of-span, in-span, or not spanned.  Remember
-	 * in at list, "spaningo".  (Span does not make sense in 1st column.)
-	 */
-	for (i = 1, inspan = 0; i < n; i++) {
-	    if (StrEq(spans[i], "span") || StrEq(spans[i], "s")) {
-			if (inspan == 0) spaninfo[i-1] = SPAN_START;
-			spaninfo[i] = SPAN_CONT;
-			inspan = 1;
-		} else {
-		spaninfo[i] = SPAN_NOT;
-		inspan = 0;
-	    }
-	}
-		free(*spans);				/* free string */
-		free(spans);				/* free vector */
-		spaninfo[TheTab.nc] = SPAN_NOT;		/* after last cell */
-		return (1);
-	}
-	/* if model not set, mark all as not spanning */
-	else
-
-#endif	/* NOT CURRENTLY IMPLEMENTED */
-
-	for (i = 0; i < MAXCOLS; i++) spaninfo[i] = SPAN_NOT;
-	return (0);
-}
-
-/* ______________________________________________________________________ */
-/*
- * Do the "right thing" for the table spec for TeX tables.  This will
- * generate the arg to \begin{tabular}[xxx].
- *  Arguments:
- *	Pointer to element (table) under consideration.
- *	FILE pointer to where to write output.
- */
-void
-TexTable(
-    Element_t	*e,
-    FILE	*fp
-)
-{
-	int		i, n;
-	float	tot;
-	char	*cp, wbuf[1500], **widths = 0, **widths_v = 0;
-
-	FreeTabAtts(&TheTab);	/* free storage, if allocated earlier */
-	SetTabAtts(e, &TheTab, 1);	/* look at attributes */
-	SetTabAtts(e->econt[0], &TheTab, 1);	/* attrs of TGroup */
-
-	/* Figure out the widths, based either on "colwidth".  */
-	if (TheTab.colwidth && TheTab.nc == TheTab.n_colwidth) {
-		widths = TheTab.colwidth_v;
-	}
-
-	siderules = 1;
-	if (TheTab.frame)
-		if (strcmp(TheTab.frame, "ALL") &&
-			strcmp(TheTab.frame, "SIDES"))
-			siderules = 0;
-
-	if (siderules) OutputString("|", fp, 1);
-	for (i = 0; i < TheTab.nc; i++) {
-		/* If width specified, use it; */
-		/* else if align set, use it; else left. */
-		if (widths && widths[i][0] != '0' && widths[i][1] != EOS) {
-			fprintf(fp, "%sp{%s}", (i?" ":""), widths[i]);
-		}
-		else
-			if (TheTab.align && TheTab.nc == TheTab.n_align) {
-				fprintf(fp, "%s%s", (i?" ":""),
-					TheTab.align_v[i]);
-			}
-	else
-	    fprintf(fp, "%sl", (i?" ":""));
-	/* See if we want column separators. */
-	if (TheTab.colsep) {
-
-	    if ((i+1) < TheTab.nc) {
-		if (*TheTab.colsep_v[i] == '1') {
-		    fprintf(fp, " |");
-		}
-		if (*TheTab.colsep_v[i] == '2') {
-		    fprintf(fp, " ||");
-		}
-			}
-
-		}
-	}
-	if (siderules) OutputString("|", fp, 1);
-
-	if (widths_v) free(widths_v);
-}
-
-/*
- *  Arguments:
- *	Pointer to element (cell) under consideration.
- *	FILE pointer to where to write output.
- */
-void
-TexTableCellStart(
-    Element_t	*e,
-    FILE	*fp
-)
-{
-	int		n, i;
-	char	buf[50], *at;
-
-	if (spaninfo[e->my_eorder] == SPAN_START) {
-		for (i = e->my_eorder+1, n = 1; ; i++) {
-			if (spaninfo[i] == SPAN_CONT) n++;
-			else break;
-		}
-		sprintf(buf, "\\\\multicolumn{%d}{%sc%s}", n,
-			(siderules?"|":""), (siderules?"|":""));
-		OutputString(buf, fp, 1);
-	}
-#ifdef New
-	if ((at = FindAttValByName(e->parent, "ALIGN"))) {
-		/* no span, but user wants to change the alignment */
-		h_v = Split(wbuf, 0, S_ALVEC|S_STRDUP);
-		OutputString("\\\\multicolumn{1}{%sc%s}", n,
-			fp, 1);
-	}
-#endif
-
-	if (spaninfo[e->my_eorder] != SPAN_CONT) OutputString("{", fp, 1);
-}
-
-/*
- *  Arguments:
- *	Pointer to element (cell) under consideration.
- *	FILE pointer to where to write output.
- */
-void
-TexTableCellEnd(
-    Element_t	*e,
-    FILE	*fp
-)
-{
-	if (spaninfo[e->my_eorder] != SPAN_CONT) OutputString("} ", fp, 1);
-
-	/* do cell/col separators */
-	if (e->my_eorder < (TheTab.nc-1)) {
-		if (spaninfo[e->my_eorder] == SPAN_NOT ||
-			spaninfo[e->my_eorder+1] != SPAN_CONT)
-			OutputString("& ", fp, 1);
-	}
-}
-
-/*
- *  Look at model for spanning.  If set, remember it for when doing the cells.
- *  Arguments:
- *	Pointer to element (row) under consideration.
- *	FILE pointer to where to write output.
- */
-void
-TexTableRowStart(
-    Element_t	*e,
-    FILE	*fp
-)
-{
-	check_for_spans(e);
-}
-
-/*
- *  Arguments:
- *	Pointer to element (row) under consideration.
- *	FILE pointer to where to write output.
- */
-void
-TexTableRowEnd(
-    Element_t	*e,
-    FILE	*fp
-)
-{
-	char	*at;
-
-	/* check this row's attributes */
-	if ((at = FindAttValByName(e, "ROWSEP"))) {
-		if (at[0] == '1')
-			OutputString("\\\\\\\\[2mm] \\\\hline ", fp, 1);
-	}
-	else
-		if (rowsep) OutputString("\\\\\\\\ ", fp, 1);
-	else OutputString("\\\\\\\\ ", fp, 1);
-
-}
-
-/*
- *  Arguments:
- *	Pointer to element (table) under consideration.
- *	FILE pointer to where to write output.
- */
-void
-TexTableTop(Element_t *e, FILE *fp)
-{
-	if (frametop) OutputString("\\\\hline", fp, 1);
-}
-
-void
-TexTableBottom(Element_t *e, FILE *fp)
-{
-	if (framebot) OutputString("\\\\hline", fp, 1);
-}
-
-/* ______________________________________________ */
-/* ______________________________________________ */
-/* ______________________________________________ */
-/* ______________________________________________ */
-/* ______________________________________________ */
-/* ___|				|____________________________ */
-/* ___|  TBL STUFF  |____________________________ */
-/* ___|				|____________________________ */
-/* ___|_____________|____________________________ */
-/* ______________________________________________ */
-/* ______________________________________________ */
-/* ______________________________________________________________________ */
-/* ______________________________________________________________________ */
-
-
-
-/*
- *	TblTStart()  --  start a table and do style information
- *
- *  TO DO:
- *
- *	do .TS
- *	find global rowsep and colsep
- */
-
-
-void
-TblTStart(Element_t *ep,
-	FILE *fP)
-{
-	register char *cp;
-	register struct Element_t *ep2;
-
-
-
-	OutputString(".TS", fP, 1);
-
-	tblTGroupSeen = FALSE;
-	tblinBOFT = FALSE;	/* within a boft? */
-	/* count of Blocks of Filled Text that we've created */
-	tblBOFTCount = 0;
-
-	tblgcolsep = (cp = FindAttValByName(ep, "COLSEP")) &&
-		(strcmp(cp, "1") == 0);
-	tblgrowsep = (cp = FindAttValByName(ep, "ROWSEP")) &&
-		(strcmp(cp, "1") == 0);
-}
-
-/*
- *      TblTEnd()  --  end a table and do any cleanup
- *
- *  TO DO:
- *
- *	do .TE
- *
- *	deallocate format line info
- */
-
-
-
-void
-TblTEnd(Element_t *ep,
-	FILE *fP)
-{
-	register struct tblformat *ffp, *ffp2;
-
-/*
- * defed out since this message does not apply to SunOS and errors are
- * passed on to tbl
- */
-#ifdef notdef
-	if (tblBOFTCount > 31)	{
-		fprintf(stderr, "# warning, line %d: ", ep->lineno);
-		fprintf(stderr, "created %d blocks of filled ", tblBOFTCount);
-		fprintf(stderr, "text in one table\n");
-		fprintf(stderr, "#\t\t(31 is the limit in some systems)\n");
-	}
-#endif
-
-	OutputString(".TE", fP, 1);
-
-	for (ffp = formP;  ffp;  ffp = ffp2)	{
-		ffp2 = ffp->next;
-		free(ffp);		/* clear entire list */
-	}
-	formP = 0;
-}
-
-/*
- *	TblTTGroup()  --  do body work (row format info)
- *
- *  TO DO:
- *
- *	set number of columns
- *
- *	if this is the first TGroup of this table, do style info:
- *	   a. alignment
- *	   b. defaults:  tab
- *	   c. box vx allbox
- *
- *	do format info:
- *	   a. generate tableformat structure
- *	   b. output it
- *
- *	prepare structures for colspecs and spanspecs
- *
- */
-
-
-
-void
-TblTGroup(Element_t *ep,
-	FILE *fP)
-{
-	register int i, j, k;
-	register char *cp, *cp2;
-	register Element_t *ep2, ep3;
-	register struct tblcolspec *tcsp, *tcsp2;
-	register struct tblspanspec *tssp, *tssp2;
-
-
-	tblColSpec = 0;		/* make sure they're clear */
-	tblSpanSpec = 0;
-
-	/* set the number of columns */
-
-		tblcols = atoi(FindAttValByName(ep, "COLS"));
-
-	/* do colspecs */
-
-		tblColSpec = tcsp = TblDoColSpec(0, ep, 0, TGroup);
-			/* do TGroup first -- it becomes the default */
-
-	for (i = 0, k = 1;  i < ep->necont;  i++)	{
-
-		if (strcmp(ep->econt[i]->gi, "COLSPEC") == 0)	{
-			tcsp2 = TblDoColSpec(k, ep->econt[i],
-				tblColSpec, TGroup);
-			tcsp->next = tcsp2;	/* put into list */
-			tcsp = tcsp2;
-			k = tcsp2->num + 1;	/* next column number */
-		}
-
-		if (strcmp(ep->econt[i]->gi, "THEAD") == 0)	{
-			ep2 = ep->econt[i];
-			for (j = 0, k = 1;  j < ep2->necont;  j++)	{
-				if (strcmp(ep2->econt[j]->gi,
-					"COLSPEC") == 0)	{
-					tcsp2 = TblDoColSpec(k, ep2->econt[j],
-						tblColSpec, THead);
-					/* put into list */
-					tcsp->next = tcsp2;
-					tcsp = tcsp2;
-					/* next column number */
-					k = tcsp2->num + 1;
-				}
-			}
-		}
-
-		if (strcmp(ep->econt[i]->gi, "TFOOT") == 0)	{
-			ep2 = ep->econt[i];
-			for (j = 0, k = 1;  j < ep2->necont;  j++)	{
-				if (strcmp(ep2->econt[j]->gi,
-					"COLSPEC") == 0)	{
-					tcsp2 = TblDoColSpec(k, ep2->econt[j],
-						tblColSpec, TFoot);
-					/* put into list */
-					tcsp->next = tcsp2;
-					tcsp = tcsp2;
-					/* next column number */
-					k = tcsp2->num + 1;
-				}
-			}
-		}
-
-		if (strcmp(ep->econt[i]->gi, "TBODY") == 0)	{
-			ep2 = ep->econt[i];
-			for (j = 0, k = 1;  j < ep2->necont;  j++)	{
-				if (strcmp(ep2->econt[j]->gi,
-					"COLSPEC") == 0) {
-					tcsp2 = TblDoColSpec(k, ep2->econt[j],
-						tblColSpec, TBody);
-					/* put into list */
-					tcsp->next = tcsp2;
-					tcsp = tcsp2;
-					/* next column number */
-					k = tcsp2->num + 1;
-				}
-			}
-		}
-	}
-
-	/* do spanspecs */
-
-	tblSpanSpec = tssp = TblDoSpanSpec(ep, 0, TGroup);
-			/* do TGroup first -- it becomes the default */
-
-	for (i = 0;  i < ep->necont;  i++)	{
-		if (strcmp(ep->econt[i]->gi, "SPANSPEC") == 0)	{
-			tssp2 = TblDoSpanSpec(ep->econt[i],
-				tblSpanSpec, TGroup);
-			tssp->next = tssp2;	/* put into list */
-			tssp = tssp2;
-		}
-	}
-
-
-	/* if this is the first TGroup in this table, do style stuff */
-
-	if (! tblTGroupSeen)	{
-
-		OutputString("tab(\007)", fP, 1);
-
-		ep2 = ep->parent;
-		if (! (tblFrame = FindAttValByName(ep2, "FRAME")))
-			tblFrame = "";
-
-		if (strcmp(tblFrame, "ALL") == 0)	{
-			if (tcsp->colsep && tcsp->rowsep)
-				OutputString(" allbox", fP, 1);
-			else
-				OutputString(" box", fP, 1);
-		}
-
-		if ((cp = FindAttValByName(ep, "ALIGN")) &&
-			(strcmp(cp, "CENTER") == 0))	{
-				OutputString(" center", fP, 1);
-		}
-
-		OutputString(";\n", fP, 1);
-
-		tblTGroupSeen = TRUE;
-	}
-
-
-	/*
-	 * do format stuff -- step through all THead rows then all TBody
-	 * rows.  Build a list of tblformats that describe all of them.
-	 * then output the resulting list.
-	 */
-
-		for (i = 0;  i < ep->necont;  i++)	{
-			if (strcmp(ep->econt[i]->gi, "THEAD") == 0)	{
-				TblBuildFormat(ep->econt[i], &formP, THead);
-						/* add in those rows */
-				break;
-			}
-		}
-
-		for (i = 0;  i < ep->necont;  i++)	{
-			if (strcmp(ep->econt[i]->gi, "TBODY") == 0)	{
-				TblBuildFormat(ep->econt[i], &formP, TBody);
-						/* add in those rows */
-			break;
-		}
-	}
-
-	TblPrintFormat(fP, formP);
-
-	tblrow = 0;		/* the current row within this format */
-}
-
-/*
- *      TblTGroupEnd()  --  end a TGroup
- *
- *  TO DO:
- *
- *	deallocate colspecs and spanspecs
- */
-
-
-void
-TblTGroupEnd(Element_t *ep,
-	FILE *fP)
-{
-	register struct tblcolspec *tcsp, *tcsp2;
-	register struct tblspanspec *tssp, *tssp2;
-
-
-	for (tcsp = tblColSpec;  tcsp;  tcsp = tcsp2)	{
-		tcsp2 = tcsp->next;
-		free(tcsp);
-	}
-	for (tssp = tblSpanSpec;  tssp;  tssp = tssp2)	{
-		tssp2 = tssp->next;
-		free(tssp);
-	}
-}
-
-/*
- *      TblTTFoot()  --  do body foot work (row format info)
- *
- *  TO DO:
- *
- *	do format info:
- *	   a. generate tableformat structure
- *	      i. if it is only 1 line long and matches the
- *		 prevailing format, just output rows.
- *	     ii. else, output a .T& and the new format specs
- */
-
-
-
-void
-TblTFoot(Element_t *ep,
-	FILE *fP)
-{
-	register struct tblformat *ffp, *ffp2;
-	static struct tblformat *tfp, *tfp2;
-
-
-	TblBuildFormat(ep, &tfp, TFoot);	/* gen format for the foot */
-
-	for (tfp2 = formP;  tfp2 && tfp2->next;  tfp2 = tfp2->next);
-
-	if (tfp->next || !TblFormatMatch(tfp, tfp2))	{
-
-		for (ffp = formP;  ffp;  ffp = ffp2)	{
-			ffp2 = ffp->next;
-			free(ffp);		/* clear entire list */
-		}
-
-		formP = tfp;	/* this becomes the prevailing format */
-
-		OutputString(".T&", fP, 1);
-		TblPrintFormat(fP, formP);
-	}
-
-	tblrow = 0;		/* the current row within this format */
-}
-
-/*
- *	TblBuildFormat()  --  build a format structure out of a set of
- *				rows and columns
- *
- */
-
-
-void
-TblBuildFormat(Element_t *ep,		/* parent of rows.. */
-	struct tblformat **fp,	/* pointer to head of struct we're building */
-	tblsource source)	/* type of record */
-{
-	register int i;
-	register struct tblformat *lfp; /* "current" format */
-	register struct tblformat *nfp; /* the next format */
-
-
-	for (lfp = *fp;  lfp && lfp->next;  lfp = lfp->next) {
-		/* find end of format list */
-	}
-
-		for (i = 0;  i < ep->necont;  i++)
-		if (strcmp(ep->econt[i]->gi, "ROW") == 0)
-			break;		/* find where rows start */
-
-	for (;  i < ep->necont;  i++)	{
-
-		nfp = TblBuild1Format(ep->econt[i], FALSE, source);
-						/* do one row */
-
-		if (!lfp)
-			lfp = *fp = nfp;	/* first one */
-		else
-		if (TblFormatMatch(lfp, nfp))
-			lfp->count++;		/* matches */
-		else	{
-			lfp->count = 1;		/* only 1 so far */
-			lfp->next = nfp;	/* new one */
-			lfp = nfp;
-		}
-	}
-}
-
-/*
- *	TblBuild1Format()  --  build one row's worth of format information
- *
- */
-
-
-
-struct tblformat *
-TblBuild1Format(Element_t *rp,		/* the row to deal with */
-	bool addinRowsep,	/* insert rowsep into model? */
-	tblsource source)	/* type type of row */
-{
-	register int i;
-	register bool allProp;
-	float totalProp;
-	register struct tblformat *tfp;
-	register Element_t *ep;	/* entry pointer */
-
-
-	Calloc(1, tfp, struct tblformat);
-	tfp->cols = tblcols;
-	ep = (rp->necont) ? rp->econt[0] : 0;	/* first entry */
-	allProp = TRUE;
-	totalProp = 0;
-
-	for (i = 1;  i <= tblcols;  i++)	{
-		tfp->colformat[i] = TblGetAlign(i, ep, source);
-		strcpy(tfp->colwidth[i], TblGetWidth(i, ep, TRUE, source));
-		strcpy(tfp->colpwidth[i], TblGetWidth(i, ep, FALSE, source));
-		if (allProp)	{
-			allProp = tfp->colpwidth[i][0];
-			totalProp += atof(tfp->colpwidth[i]);
-		}
-		strcpy(tfp->font[i], TblGetFont(i, ep, source));
-		tfp->colsep[i] = tblgcolsep || TblGetColSep(i, ep, source);
-		if (addinRowsep)
-			tfp->rowsep[i] = tblgrowsep ||
-				TblGetRowSep(i, ep, source);
-		tfp->moreRows[i] = TblGetMoreRows(i, ep, source);
-
-		if ((i < rp->necont) && TblColAdv(i, ep, tfp, source))	{
-			ep = rp->econt[i];
-		}
-	}
-
-	/* turn proportional widths into real widths */
-
-		if (allProp)	{
-			for (i = 1;  i <= tblcols;  i++)	{
-				sprintf(tfp->colwidth[i], "%fi",
-					(atof(tfp->colpwidth[i]) / totalProp) *
-						TEXTWIDTH);
-			}
-		}
-
-	return (tfp);
-}
-
-/*
- *	TblGetAlign()  --  get alignment spec for a entry
- *
- */
-
-
-char
-TblGetAlign(short col,			/* column number */
-	Element_t *entry,		/* the entry */
-	tblsource	source)		/* context */
-{
-	register struct tblcolspec *tcsp;
-	register struct tblspanspec *tssp;
-	register tblalign talign;
-	char retVal;
-
-
-	if (entry && (tssp = TblEntrySpanSpec(col, entry, source)))	{
-		talign = tssp->align;
-		free(tssp);
-	} else
-	if (entry && (tcsp = TblEntryColSpec(col, entry, source)))	{
-		talign = tcsp->align;
-		free(tcsp);
-	} else	{
-		return ('l');
-	}
-
-	switch (talign)	{
-		case Left:	retVal = 'l'; break;
-		case Right:	retVal = 'r'; break;
-		case Center:	retVal = 'c'; break;
-		case Justify:	retVal = 'l'; break;
-		case Char:	retVal = 'd'; break;
-		case Span:	retVal = 's'; break;
-		default:	retVal = 'l';
-	}
-	return (retVal);
-}
-
-/*
- *	TblGetWidth()  --  get width spec, if any, for a entry
- *
- */
-
-
-char *
-TblGetWidth(short col,			/* column number */
-	Element_t *entry,		/* the entry */
-	bool	literal,	/* literal (or proportional) */
-	tblsource	source)		/* context */
-{
-	register struct tblcolspec *tcsp;
-	register struct tblspanspec *tssp;
-	static char colWidth[MAXWIDTH];
-
-
-	colWidth[0] = 0;
-
-	if (entry &&
-		(tcsp = TblEntryColSpec(col, entry, source)) &&
-			tcsp->colwidth[0])	{
-
-		if (!strstr(tcsp->colwidth, "*"))	{
-			if (literal)
-				strcpy(colWidth, tcsp->colwidth);
-		} else	{
-			if (! literal)
-				strcpy(colWidth, tcsp->colwidth);
-		}
-		free(tcsp);
-	}
-
-	return (colWidth);
-}
-
-/*
- *	TblGetFont()  --  get font spec, if any, for a entry
- *
- */
-
-
-char *
-TblGetFont(short col,			/* column number */
-	Element_t *entry,		/* the entry */
-	tblsource source)		/* context */
-{
-	register struct tblcolspec *tcsp;
-	register struct tblspanspec *tssp;
-
-
-	return ("");
-}
-
-/*
- *	TblGetColSep()  --  get column separater spec, if any, for a entry
- *
- */
-
-
-bool
-TblGetColSep(short col,			/* column number */
-	Element_t *entry,		/* the entry */
-	tblsource	source)		/* context */
-{
-	register struct tblcolspec *tcsp;
-	register struct tblspanspec *tssp;
-	register bool colsep;
-
-
-	if (entry && (tssp = TblEntrySpanSpec(col, entry, source)))	{
-		colsep = tssp->colsep;
-		free(tssp);
-	} else
-	if (entry && (tcsp = TblEntryColSpec(col, entry, source)))	{
-		colsep = tcsp->colsep;
-		free(tcsp);
-	} else
-		colsep = FALSE;
-
-	return (colsep);
-}
-
-/*
- *	TblGetRowSep()  --  get row separater spec, if any, for a entry
- *
- */
-
-
-bool
-TblGetRowSep(short col,			/* column number */
-	Element_t *entry,		/* the entry */
-	tblsource	source)		/* context */
-{
-	register struct tblcolspec *tcsp;
-	register struct tblspanspec *tssp;
-	register bool rowsep;
-
-	if (entry && (tssp = TblEntrySpanSpec(col, entry, source)))	{
-		rowsep = tssp->rowsep;
-		free(tssp);
-	} else
-	if (entry && (tcsp = TblEntryColSpec(col, entry, source)))	{
-		rowsep = tcsp->rowsep;
-		free(tcsp);
-	} else	{
-		rowsep = FALSE;
-	}
-
-	return (rowsep);
-}
-
-/*
- *	TblGetmoreRows()  --  get moreRows value
- *
- */
-
-
-bool
-TblGetMoreRows(short col,		/* column number */
-	Element_t *entry,	/* the entry */
-	tblsource	source)	/* context */
-{
-	register char *cp;
-
-
-	if (cp = FindAttValByName(entry, "MOREROWS"))
-		return (atoi(cp));
-	else
-		return (0);
-}
-
-/*
- *	TblColAdv()  --  advance pointer to next entry, if appropriate
- *
- */
-
-
-bool
-TblColAdv(short col,		/* the current column */
-	Element_t *ep,	/* pointer to entry */
-	struct tblformat *tfp, /* pointer to prevailing format */
-	tblsource source)	/* context */
-{
-	register bool bump;
-	register struct tblspanspec *tssp;
-
-
-	bump = TRUE;
-
-	if (tssp = TblEntrySpanSpec(col, ep, source))	{
-		bump = tssp->align != Span;
-		free(tssp);
-	}
-
-	return (bump);
-}
-
-/*
- *	TblEntryColSpec()  --  get a completely localized colspec for an entry
- *
- */
-
-
-struct tblcolspec *
-TblEntryColSpec(short num,		/* column number */
-	Element_t *ep,		/* entry */
-	tblsource source)	/* context */
-{
-	register int i;
-	register bool throwAway;
-	register char *cp;
-	register struct tblcolspec *tcsp, *tcsp2;
-
-
-	tcsp = tcsp2 = 0;
-	throwAway = FALSE;
-
-	if ((cp = FindAttValByName(ep, "COLNAME")))	{
-		if (! (tcsp = TblFindColSpec(cp, source)))	{
-			fprintf(stderr, "? can't find column name '%s'\n", cp);
-		}
-	}
-
-	if (tcsp2 = TblFindColNum(num, source))	{
-		tcsp = TblDoColSpec(num, ep, tcsp2, source);
-		throwAway = TRUE;
-	}
-
-	tcsp2 = TblDoColSpec(num, ep, tcsp, source);
-
-	if (throwAway)
-		free(tcsp);
-
-	return (tcsp2);
-}
-
-/*
- *	TblEntrySpanSpec()  --  get a completely localized spanspec for an entry
- *
- */
-
-
-struct tblspanspec *
-TblEntrySpanSpec(short num,		/* column number */
-	Element_t *ep,	/* entry */
-	tblsource source)	/* context */
-{
-	register char *cp, *cp2;
-	register struct tblspanspec *tssp, *tssp2;
-
-
-	tssp2 = 0;
-
-	if (!(cp = FindAttValByName(ep, "SPANNAME")) ||
-		!(tssp2 = TblFindSpanSpec(cp, source)))	{
-
-		if (!FindAttValByName(ep, "NAMEST"))
-			return (0);
-	}
-
-	tssp = TblDoSpanSpec(ep, tssp2, source);
-
-	if (tssp->start && tssp->end &&
-		(tssp->start->num < num) && (tssp->end->num >= num))	{
-		tssp->align = Span;
-	}
-
-	return (tssp);
-}
-
-/*
- *	TblFormatMatch()  --  compare two format rows for consistency
- *
- */
-
-
-bool
-TblFormatMatch(struct tblformat *tf1,	/* one row */
-	struct tblformat *tf2)	/* the other */
-{
-	register int i;
-
-	if (tf1->cols != tf2->cols)	{
-		return (FALSE);
-	}
-
-	for (i = 0;  i < tf1->cols;  i++)	{
-
-		if (tf1->colformat[i] != tf2->colformat[i])	{
-			return (FALSE);
-		}
-		if (strcmp(tf1->colwidth[i], tf2->colwidth[i]))	{
-			return (FALSE);
-		}
-		if (strcmp(tf1->font[i], tf2->font[i]))	{
-			return (FALSE);
-		}
-		if (tf1->colsep[i] != tf2->colsep[i])	{
-			return (FALSE);
-		}
-		if (tf1->rowsep[i] != tf2->rowsep[i])	{
-			return (FALSE);
-		}
-		if (tf1->moreRows[i] || tf2->moreRows[i])	{
-			return (FALSE);
-		}
-	}
-
-	return (TRUE);
-}
-
-/*
- *	TblPrintFormat()  --  print a tbl format structure
- *
- */
-
-
-void
-TblPrintFormat(FILE *fP,		/* where to print */
-	struct tblformat *tfp)	/* the structure */
-{
-	register int i;
-	register struct tblformat *tfp2, *tfp3;
-	static char buf[3] = "\000\000";
-
-
-	for (tfp2 = tfp, tfp3 = 0;  tfp2;  tfp2 = tfp2->next)	{
-		for (i = 1;  i <= tfp->cols;  i++)	{
-			if (i > 1)
-				OutputString(" ", fP, 1);
-			if (tfp3 && tfp3->moreRows[i])
-				OutputString("\\", fP, 1);
-			else	{
-				buf[0] = tfp2->colformat[i];
-				OutputString(buf, fP, 1);
-			}
-			if (tfp2->colwidth[i][0])	{
-				OutputString("w(", fP, 1);
-				OutputString(tfp2->colwidth[i], fP, 1);
-				OutputString(")", fP, 1);
-			}
-			if (tfp2->font[i][0])
-				OutputString(tfp2->font[i], fP, 1);
-			if (tfp2->colsep[i] && i < tfp->cols)
-				OutputString("|", fP, 1);
-		}
-		if (! tfp2->next)
-			OutputString(".", fP, 1);
-		OutputString("", fP, 1);
-		tfp3 = tfp2;
-	}
-}
-
-/*
- *      TblTRowStart()  --  start a row (not much to do)
- *
- *  TO DO:
- *
- *	nothing..
- *
- */
-
-
-
-void
-TblTRowStart(Element_t *ep,
-	FILE *fP)
-{
-
-	/* nothing to do */
-
-	tblrow++;	/* except note that we're within a new row */
-
-}
-
-/*
- *      TblTRowEnd()  --  end a row
- *
- *  TO DO:
- *
- *	output a row end character (newline)
- *	if the current row had a rowsep, then output a "fake" row
- *	with underlines in the proper place(s).
- */
-
-
-
-void
-TblTRowEnd(Element_t *ep,
-	FILE *fP)
-{
-	register int i, k;
-	register tblsource source;
-	register bool startedRow, didSep;
-	register struct tblformat *rfp;
-
-
-	OutputString("", fP, 1);
-
-	/* get the format for this row */
-
-		if (strcmp(ep->parent->gi, "TFoot") == 0)
-			source = TFoot;
-	else
-		if (strcmp(ep->parent->gi, "THead") == 0)
-			source = THead;
-	else
-		source = TBody;
-
-	rfp = TblBuild1Format(ep, TRUE, source);
-	startedRow = FALSE;
-	didSep = FALSE;
-
-	for (i = 1;  i <= formP->cols;  i++)	{
-		if (rfp->rowsep[i] ||
-			(didSep && (rfp->colformat[i] == 's')))	{
-			if (! startedRow)	{
-				OutputString("", fP, 1);
-				for (k = 1;  k < i;  k++)
-					OutputString("\007", fP, 1);
-				startedRow = TRUE;
-			}
-			didSep = TRUE;
-		} else	{
-		if (startedRow)
-			OutputString("\007", fP, 1);
-		}
-		didSep = FALSE;
-	}
-	free(rfp);		/* clear that row.. */
-
-	if (startedRow)
-		OutputString("", fP, 1);
-}
-
-/*
- * TblTEntryStart()  --  start an entry (block of filled text if
- *				appropriate)
- *
- *  TO DO:
- *
- *	if text length > BOFTTextThresh or there is PI,
- *	then output "T{\n", else do nothing
- *
- */
-
-
-
-void
-TblTCellStart(Element_t *ep,
-	FILE *fP)
-{
-	register int i;
-	register Element_t *ep2;
-	register bool sawPIorPara;
-
-
-	for (i = 0, sawPIorPara = FALSE;  i < ep->ncont;  i++)	{
-		if ((ep->cont[i].type == '?') ||
-			(i &&
-			(ep->cont[i].type == '(') &&
-			(strcmp(ep->cont[i].ch.elem->gi, "PARA") == 0))) {
-			sawPIorPara = TRUE;
-			break;
-		}
-	}
-
-	if (sawPIorPara || (TblCountContent(ep) > BOFTTextThresh))	{
-		tblBOFTCount++;
-		OutputString("T{", fP, 1);
-		tblinBOFT = TRUE;	/* within a boft now */
-	}
-}
-
-/*	TblCountContent()  --  count all content below the given element */
-
-
-
-int
-TblCountContent(Element_t *ep)		/* the element to look under */
-{
-	register int i, count;
-	register char *cp;
-
-
-	count = 0;
-
-	for (i = 0;  i < ep->ncont;  i++)	{
-		if (ep->cont[i].type == '-')	{
-			for (cp = ep->cont[i].ch.data; *cp; cp++, count++)
-				if (*cp == -1)
-					return (BOFTTextThresh + 1);
-		} else
-		if (ep->cont[i].type == '(')	{
-			count += TblCountContent(ep->cont[i].ch.elem);
-		}
-	}
-
-	return (count);
-}
-
-/*
- *  TblTEntryEnd()  --  end an entry
- *  TO DO:
- *	if within BOFT, output "T}"
- *	if not last entry, output tab character
- */
-
-
-
-void
-TblTCellEnd(Element_t *ep,
-	FILE *fP)
-{
-	register Element_t *ep2;
-
-
-	if (tblinBOFT)	{
-		OutputString("T}", fP, 1);
-		tblinBOFT = FALSE;	/* back out again */
-	}
-
-	for (ep2 = ep->next;  ep2;  ep2 = ep2->next)	{
-		if ((strcmp(ep2->gi, "ENTRY") == 0) ||
-			(strcmp(ep2->gi, "ENTRYTBL") == 0))	{
-			OutputString("\007", fP, 1);
-			break;
-		}
-		if (strcmp(ep2->gi, "ROW") == 0)
-			break;
-	}
-}
-
-/*	TblDoColSpec()  --  process one element to create a new colspec */
-
-
-struct tblcolspec *
-TblDoColSpec(short number, /* this column number */
-	Element_t *ep,	/* element containing colspec stuff */
-	struct tblcolspec *pcsp, /* prevailing colspec (with defaults) */
-	tblsource source) /* precedence level of the resulting spec */
-{
-	register char *cp;
-	register struct tblcolspec *tcsp;
-
-
-	Calloc(1, tcsp, struct tblcolspec);
-
-	if (cp = FindAttValByName(ep, "COLNAME"))
-		strcpy(tcsp->name, cp);
-
-	tcsp->num = number;
-	tcsp->source = source;
-
-	if (cp = FindAttValByName(ep, "ALIGN"))	{
-		if (strcmp(cp, "LEFT") == 0) tcsp->align = Left;
-		else if (strcmp(cp, "RIGHT") == 0) tcsp->align = Right;
-		else if (strcmp(cp, "CENTER") == 0)	tcsp->align = Center;
-		else if (strcmp(cp, "JUSTIFY") == 0) tcsp->align = Justify;
-		else if (strcmp(cp, "CHAR") == 0) tcsp->align = Char;
-	} else
-		tcsp->align = (pcsp) ? pcsp->align : Left;
-
-	if (cp = FindAttValByName(ep, "CHAR"))
-		tcsp->alignchar = cp[0];
-	else
-		tcsp->alignchar = (pcsp) ? pcsp->alignchar : 0;
-
-	if (cp = FindAttValByName(ep, "CHAROFF"))
-		tcsp->aligncharoff = atoi(cp);
-	else
-		tcsp->aligncharoff = (pcsp) ? pcsp->aligncharoff : 0;
-
-	if (cp = FindAttValByName(ep, "COLWIDTH"))
-		strcpy(tcsp->colwidth, cp);
-	else
-		strcpy(tcsp->colwidth, (pcsp) ? pcsp->colwidth : "");
-
-	if (cp = FindAttValByName(ep, "COLSEP"))
-		tcsp->colsep = (strcmp(cp, "1") == 0);
-	else
-		tcsp->colsep = (pcsp) ? pcsp->colsep : FALSE;
-
-	if (cp = FindAttValByName(ep, "ROWSEP"))
-		tcsp->rowsep = (strcmp(cp, "1") == 0);
-	else
-		tcsp->rowsep = (pcsp) ? pcsp->rowsep : FALSE;
-
-	return (tcsp);
-}
-
-/*
- *	TblDoSpanSpec()  --  process one element to create a new spanspec
- *	Note that there's a hack inside here...  NameSt and NameEnd are
- *	supposed to point at colnames, but if no colname is found, this
- *	code will look for a colnum by the same value.
- */
-
-
-
-struct tblspanspec *
-TblDoSpanSpec(Element_t *ep, /* element containing spanspec stuff */
-	struct tblspanspec *pssp, /* prevailing spanspec (with defaults) */
-	tblsource source)	 /* precedence level of the resulting spec */
-{
-	register char *cp;
-	register struct tblspanspec *tssp;
-	register struct tblcolspec *tcsp;
-
-
-	Calloc(1, tssp, struct tblspanspec);
-
-	if (cp = FindAttValByName(ep, "SPANNAME")) strcpy(tssp->name, cp);
-	tssp->source = source;
-
-	if (cp = FindAttValByName(ep, "NAMEST"))	{
-		if ((tcsp = TblFindColSpec(cp, source)) ||
-			(tcsp = TblFindColNum(atoi(cp), source)))	{
-				tssp->start = tcsp;
-		} else	{
-			fprintf(stderr, "? spanspec namest points ");
-			fprintf(stderr, "to unknown column '%s'\n", cp);
-			tssp->start = 0;
-		}
-	} else	{
-		if (pssp && pssp->start)	{
-			tssp->start = pssp->start;
-		}
-	}
-
-	if (cp = FindAttValByName(ep, "NAMEEND"))	{
-		if ((tcsp = TblFindColSpec(cp, source)) ||
-			(tcsp = TblFindColNum(atoi(cp), source)))	{
-				tssp->end = tcsp;
-		} else	{
-			fprintf(stderr, "? spanspec nameend points ");
-			fprintf(stderr, "to unknown column '%s'\n", cp);
-			tssp->end = 0;
-		}
-	} else	{
-		if (pssp && pssp->end)	{
-			tssp->end = pssp->end;
-		}
-	}
-
-	if (cp = FindAttValByName(ep, "ALIGN"))	{
-		if (strcmp(cp, "LEFT") == 0) tssp->align = Left;
-		else if (strcmp(cp, "RIGHT") == 0) tssp->align = Right;
-		else if (strcmp(cp, "CENTER") == 0) tssp->align = Center;
-		else if (strcmp(cp, "JUSTIFY") == 0) tssp->align = Justify;
-		else if (strcmp(cp, "CHAR") == 0) tssp->align = Char;
-	} else	{
-		if (pssp)
-			tssp->align = pssp->align;
-	}
-
-	if (cp = FindAttValByName(ep, "CHAR"))
-		tssp->alignchar = cp[0];
-	else	{
-		if (pssp)
-			tssp->alignchar = pssp->alignchar;
-	}
-	if (cp = FindAttValByName(ep, "CHAROFF"))
-		tssp->aligncharoff = atoi(cp);
-	else	{
-		if (pssp)
-			tssp->alignchar = pssp->alignchar;
-	}
-
-	if (cp = FindAttValByName(ep, "COLSEP"))
-		tssp->colsep = (strcmp(cp, "1") == 0);
-	else	{
-		if (pssp)
-			tssp->colsep = pssp->colsep;
-	}
-	if (cp = FindAttValByName(ep, "ROWSEP"))
-		tssp->rowsep = (strcmp(cp, "1") == 0);
-	else	{
-		if (pssp)
-			tssp->rowsep = pssp->rowsep;
-	}
-
-	return (tssp);
-}
-
-/* TblFindColSpec()  --  find a table colspec by name (colname) */
-
-
-
-struct tblcolspec *
-TblFindColSpec(char *name,		/* the name we're looking for */
-	tblsource source)	/* the context in which to find it */
-{
-	register struct tblcolspec *tcsp;
-
-
-	/* first, try to find the one in the right "source" */
-
-		for (tcsp = tblColSpec;  tcsp;  tcsp = tcsp->next)	{
-			if ((tcsp->source == source) &&
-				(strcmp(tcsp->name, name) == 0))
-				return (tcsp);
-		}
-
-	/* else, try to find one from a TGroup.. */
-
-		for (tcsp = tblColSpec;  tcsp;  tcsp = tcsp->next)	{
-			if ((tcsp->source == TGroup) &&
-				(strcmp(tcsp->name, name) == 0))
-				return (tcsp);
-		}
-
-	/* else not found.. */
-
-	return (0);
-}
-
-/* TblFindColNum()  --  find a table colspec by number */
-
-
-
-struct tblcolspec *
-TblFindColNum(short number,		/* the number we're looking for */
-	tblsource source)		/* the context in which to find it */
-{
-	register struct tblcolspec *tcsp;
-
-	/* first, try to find the one in the right "source" */
-
-		for (tcsp = tblColSpec;  tcsp;  tcsp = tcsp->next)	{
-			if ((tcsp->num == number) &&
-				((tcsp->source == source) ||
-				((source == THead) &&
-				(tcsp->source == TGroup))))
-				return (tcsp);
-		}
-
-	/* else, try to find one from a TGroup.. */
-
-		for (tcsp = tblColSpec;  tcsp;  tcsp = tcsp->next)	{
-			if ((tcsp->source == TGroup) && (tcsp->num == number))
-				return (tcsp);
-		}
-
-	/* else not found.. */
-
-	return (0);
-}
-
-/* TblFindSpanSpec()  --  find a table spanspec by name (spanname) */
-
-
-
-struct tblspanspec *
-TblFindSpanSpec(char *name,		/* the name we're looking for */
-	tblsource source)	/* the context in which to find it */
-{
-	register struct tblspanspec *tssp;
-
-
-	/* first, try to find the one in the right "source" */
-
-		for (tssp = tblSpanSpec;  tssp;  tssp = tssp->next)	{
-			if ((strcmp(tssp->name, name) == 0) &&
-				((tssp->source == source) ||
-				((source == THead) &&
-					(tssp->source == TGroup))))
-				return (tssp);
-		}
-
-	/* else not found.. */
-
-	return (0);
-}
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/Imakefile	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-#define DoNormalLib	YES
-#define DoSharedLib	NO
-#define DoDebugLib	NO
-#define DoProfileLib	NO
-#define LibName		tptregexp
-#define LibHeaders	NO
-#define LibInstall	NO
-
-SRCS = regexp.c regsub.c regerror.c
-OBJS = regexp.o regsub.o regerror.o
-
-INCLUDES = -I.
-
-#include <Library.tmpl>
-
-DependTarget()
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/Makefile	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-#
-# Copyright (c) 1994  
-# Open Software Foundation, Inc. 
-#  
-# Permission is hereby granted to use, copy, modify and freely distribute 
-# the software in this file and its documentation for any purpose without 
-# fee, provided that the above copyright notice appears in all copies and 
-# that both the copyright notice and this permission notice appear in 
-# supporting documentation.  Further, provided that the name of Open 
-# Software Foundation, Inc. ("OSF") not be used in advertising or 
-# publicity pertaining to distribution of the software without prior 
-# written permission from OSF.  OSF makes no representations about the 
-# suitability of this software for any purpose.  It is provided "as is" 
-# without express or implied warranty. 
-#
-#
-# Copyright (c) 1995
-# Dalrymple Consulting
-#
-#
-#  $Header: /usr/src/docbook-to-man/Instant/tptregexp/RCS/Makefile,v 1.2 1996/06/15 22:55:56 fld Exp $
-#
-include ../../../../../Makefile.cmd
-
-ROOT	= /usr/lib/sgml
-
-MAKE	= make
-SHELL	= /bin/sh
-
-LIBDIR	= $(ROOT)/lib
-#CC	= gcc
-
-# Things you might want to put in ENV and LENV:
-# -Dvoid=int		compilers that don't do void
-# -DCHARBITS=0377	compilers that don't do unsigned char
-# -DSTATIC=extern	compilers that don't like "static foo();" as forward decl
-# -DSTRCSPN		library does not have strcspn()
-# -Dstrchr=index	library does not have strchr()
-# -DERRAVAIL		have utzoo-compatible error() function and friends
-#ENV=-Dvoid=int -DCHARBITS=0377 -DSTATIC=extern
-#LENV=-Dvoid=int -DCHARBITS=0377
-
-# Things you might want to put in TEST:
-# -DDEBUG		debugging hooks
-# -I.			tptregexp.h from current directory, not /usr/include
-TEST=	-I.
-
-# Things you might want to put in PROF:
-# -Dstatic='/* */'	make everything global so profiler can see it.
-# -p			profiler
-PROF=
-
-OPT=
-
-CFLAGS += $(OPT) $(ENV) $(TEST) $(PROF)
-LINTFLAGS = $(LENV) $(TEST) -ha
-LDFLAGS =
-
-OBJ=regexp.o regsub.o regerror.o strerror.o
-LSRC=regexp.c regsub.c regerror.c strerror.c
-DTR=README dMakefile regexp.3 tptregexp.h regexp.c regsub.c regerror.c \
-	regmagic.h try.c timer.c tests
-
-all: libtptregexp.a
-install: libtptregexp.a
-#	@echo "No install of regex lib - install in a lib directory by hand if desired."
-	cp libtptregexp.a $(LIBDIR)
-
-try:	try.o $(OBJ)
-	$(CC) $(LDFLAGS) try.o $(OBJ) -o try
-
-# Making timer will probably require putting stuff in $(PROF) and then
-# recompiling everything; the following is just the final stage.
-timer:	timer.o $(OBJ)
-	$(CC) $(LDFLAGS) $(PROF) timer.o $(OBJ) -o timer
-
-timer.o:	timer.c timer.t.h
-
-timer.t.h:	tests
-	sed 's/	/","/g;s/\\/&&/g;s/.*/{"&"},/' tests >timer.t.h
-
-# Regression test.
-r:	try tests
-	@echo 'No news is good news...'
-	try <tests
-
-lint:	timer.t.h
-	@echo 'Complaints about multiply-declared regerror() are legit.'
-	lint $(LINTFLAGS) $(LSRC) try.c
-	lint $(LINTFLAGS) $(LSRC) timer.c
-
-regexp.o:	regexp.c tptregexp.h regmagic.h
-regsub.o:	regsub.c tptregexp.h regmagic.h
-
-clean:
-	rm -f *.o core mon.out timer.t.h dMakefile dtr try timer
-
-clobber:	clean
-	rm -f libtptregexp.a
-
-dtr:	r makedtr $(DTR)
-	makedtr $(DTR) >dtr
-
-dMakefile:	Makefile
-	sed '/^L*ENV=/s/ *-DERRAVAIL//' Makefile >dMakefile
-
-
-lib:	libtptregexp.a
-libtptregexp.a: $(OBJ)
-	ar rcv $@ $(OBJ)
-	if [ -f /usr/bin/ranlib ] ; then ranlib $@ ; else true ; fi
-
-.PARALLEL:	$(OBJ)
-
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/README	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-#
-# Copyright (c) 1994  
-# Open Software Foundation, Inc. 
-#  
-# Permission is hereby granted to use, copy, modify and freely distribute 
-# the software in this file and its documentation for any purpose without 
-# fee, provided that the above copyright notice appears in all copies and 
-# that both the copyright notice and this permission notice appear in 
-# supporting documentation.  Further, provided that the name of Open 
-# Software Foundation, Inc. ("OSF") not be used in advertising or 
-# publicity pertaining to distribution of the software without prior 
-# written permission from OSF.  OSF makes no representations about the 
-# suitability of this software for any purpose.  It is provided "as is" 
-# without express or implied warranty. 
-#
-
-This is a nearly-public-domain reimplementation of the V8 regexp(3) package.
-It gives C programs the ability to use egrep-style regular expressions, and
-does it in a much cleaner fashion than the analogous routines in SysV.
-
-	Copyright (c) 1986 by University of Toronto.
-	Written by Henry Spencer.  Not derived from licensed software.
-
-	Permission is granted to anyone to use this software for any
-	purpose on any computer system, and to redistribute it freely,
-	subject to the following restrictions:
-
-	1. The author is not responsible for the consequences of use of
-		this software, no matter how awful, even if they arise
-		from defects in it.
-
-	2. The origin of this software must not be misrepresented, either
-		by explicit claim or by omission.
-
-	3. Altered versions must be plainly marked as such, and must not
-		be misrepresented as being the original software.
-
-Barring a couple of small items in the BUGS list, this implementation is
-believed 100% compatible with V8.  It should even be binary-compatible,
-sort of, since the only fields in a "struct regexp" that other people have
-any business touching are declared in exactly the same way at the same
-location in the struct (the beginning).
-
-This implementation is *NOT* AT&T/Bell code, and is not derived from licensed
-software.  Even though U of T is a V8 licensee.  This software is based on
-a V8 manual page sent to me by Dennis Ritchie (the manual page enclosed
-here is a complete rewrite and hence is not covered by AT&T copyright).
-The software was nearly complete at the time of arrival of our V8 tape.
-I haven't even looked at V8 yet, although a friend elsewhere at U of T has
-been kind enough to run a few test programs using the V8 regexp(3) to resolve
-a few fine points.  I admit to some familiarity with regular-expression
-implementations of the past, but the only one that this code traces any
-ancestry to is the one published in Kernighan & Plauger (from which this
-one draws ideas but not code).
-
-Simplistically:  put this stuff into a source directory, copy regexp.h into
-/usr/include, inspect Makefile for compilation options that need changing
-to suit your local environment, and then do "make r".  This compiles the
-regexp(3) functions, compiles a test program, and runs a large set of
-regression tests.  If there are no complaints, then put regexp.o, regsub.o,
-and regerror.o into your C library, and regexp.3 into your manual-pages
-directory.
-
-Note that if you don't put regexp.h into /usr/include *before* compiling,
-you'll have to add "-I." to CFLAGS before compiling.
-
-The files are:
-
-Makefile	instructions to make everything
-regexp.3	manual page
-regexp.h	header file, for /usr/include
-regexp.c	source for regcomp() and regexec()
-regsub.c	source for regsub()
-regerror.c	source for default regerror()
-regmagic.h	internal header file
-try.c		source for test program
-timer.c		source for timing program
-tests		test list for try and timer
-
-This implementation uses nondeterministic automata rather than the
-deterministic ones found in some other implementations, which makes it
-simpler, smaller, and faster at compiling regular expressions, but slower
-at executing them.  In theory, anyway.  This implementation does employ
-some special-case optimizations to make the simpler cases (which do make
-up the bulk of regular expressions actually used) run quickly.  In general,
-if you want blazing speed you're in the wrong place.  Replacing the insides
-of egrep with this stuff is probably a mistake; if you want your own egrep
-you're going to have to do a lot more work.  But if you want to use regular
-expressions a little bit in something else, you're in luck.  Note that many
-existing text editors use nondeterministic regular-expression implementations,
-so you're in good company.
-
-This stuff should be pretty portable, given appropriate option settings.
-If your chars have less than 8 bits, you're going to have to change the
-internal representation of the automaton, although knowledge of the details
-of this is fairly localized.  There are no "reserved" char values except for
-NUL, and no special significance is attached to the top bit of chars.
-The string(3) functions are used a fair bit, on the grounds that they are
-probably faster than coding the operations in line.  Some attempts at code
-tuning have been made, but this is invariably a bit machine-specific.
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/README.osf	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-#
-# Copyright (c) 1994  
-# Open Software Foundation, Inc. 
-#  
-# Permission is hereby granted to use, copy, modify and freely distribute 
-# the software in this file and its documentation for any purpose without 
-# fee, provided that the above copyright notice appears in all copies and 
-# that both the copyright notice and this permission notice appear in 
-# supporting documentation.  Further, provided that the name of Open 
-# Software Foundation, Inc. ("OSF") not be used in advertising or 
-# publicity pertaining to distribution of the software without prior 
-# written permission from OSF.  OSF makes no representations about the 
-# suitability of this software for any purpose.  It is provided "as is" 
-# without express or implied warranty. 
-#
-
-OSF did not write this code.
-
-Changes made:
-
-    Renamed "regexp.h" to "tptregexp.h" to avoid conflicts with systems that
-    have a /usr/include/regexp.h.  Changed the *.c files in the appropriate
-    places.
-
-    Renamed these routines:
-	regcomp()  -> tpt_regcomp()
-	regexec()  -> tpt_regexec()
-	regsub()   -> tpt_regsub()
-	regerror() -> tpt_regerror()
-    This is to avoid conflicts in the standard C library.
-
-    In Makefile - wrote "all" and "install" targets.  Changed "regexp.h"
-    to "tptregexp.h", as appropriate.
-
-    In regexp.c - added #include <string.h> to keep compiler happy.
-
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/regerror.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-#include <stdio.h>
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-void
-tpt_regerror(s)
-char *s;
-{
-#ifdef ERRAVAIL
-	error("tpt_regexp: %s", s);
-#else
-	fprintf(stderr, "tpt_regexp(3): %s", s);
-	exit(1);
-#endif
-	/* NOTREACHED */
-}
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/regexp.3	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-.TH REGEXP 3 local
-.DA 30 Nov 1985
-.SH NAME
-regcomp, regexec, regsub, regerror \- regular expression handler
-.SH SYNOPSIS
-.ft B
-.nf
-#include <regexp.h>
-
-regexp *regcomp(exp)
-char *exp;
-
-int regexec(prog, string)
-regexp *prog;
-char *string;
-
-regsub(prog, source, dest)
-regexp *prog;
-char *source;
-char *dest;
-
-regerror(msg)
-char *msg;
-.SH DESCRIPTION
-These functions implement
-.IR egrep (1)-style
-regular expressions and supporting facilities.
-.PP
-.I Regcomp
-compiles a regular expression into a structure of type
-.IR regexp ,
-and returns a pointer to it.
-The space has been allocated using
-.IR malloc (3)
-and may be released by
-.IR free .
-.PP
-.I Regexec
-matches a NUL-terminated \fIstring\fR against the compiled regular expression
-in \fIprog\fR.
-It returns 1 for success and 0 for failure, and adjusts the contents of
-\fIprog\fR's \fIstartp\fR and \fIendp\fR (see below) accordingly.
-.PP
-The members of a
-.I regexp
-structure include at least the following (not necessarily in order):
-.PP
-.RS
-char *startp[NSUBEXP];
-.br
-char *endp[NSUBEXP];
-.RE
-.PP
-where
-.I NSUBEXP
-is defined (as 10) in the header file.
-Once a successful \fIregexec\fR has been done using the \fIregexp\fR,
-each \fIstartp\fR-\fIendp\fR pair describes one substring
-within the \fIstring\fR,
-with the \fIstartp\fR pointing to the first character of the substring and
-the \fIendp\fR pointing to the first character following the substring.
-The 0th substring is the substring of \fIstring\fR that matched the whole
-regular expression.
-The others are those substrings that matched parenthesized expressions
-within the regular expression, with parenthesized expressions numbered
-in left-to-right order of their opening parentheses.
-.PP
-.I Regsub
-copies \fIsource\fR to \fIdest\fR, making substitutions according to the
-most recent \fIregexec\fR performed using \fIprog\fR.
-Each instance of `&' in \fIsource\fR is replaced by the substring
-indicated by \fIstartp\fR[\fI0\fR] and
-\fIendp\fR[\fI0\fR].
-Each instance of `\e\fIn\fR', where \fIn\fR is a digit, is replaced by
-the substring indicated by
-\fIstartp\fR[\fIn\fR] and
-\fIendp\fR[\fIn\fR].
-To get a literal `&' or `\e\fIn\fR' into \fIdest\fR, prefix it with `\e';
-to get a literal `\e' preceding `&' or `\e\fIn\fR', prefix it with
-another `\e'.
-.PP
-.I Regerror
-is called whenever an error is detected in \fIregcomp\fR, \fIregexec\fR,
-or \fIregsub\fR.
-The default \fIregerror\fR writes the string \fImsg\fR,
-with a suitable indicator of origin,
-on the standard
-error output
-and invokes \fIexit\fR(2).
-.I Regerror
-can be replaced by the user if other actions are desirable.
-.SH "REGULAR EXPRESSION SYNTAX"
-A regular expression is zero or more \fIbranches\fR, separated by `|'.
-It matches anything that matches one of the branches.
-.PP
-A branch is zero or more \fIpieces\fR, concatenated.
-It matches a match for the first, followed by a match for the second, etc.
-.PP
-A piece is an \fIatom\fR possibly followed by `*', `+', or `?'.
-An atom followed by `*' matches a sequence of 0 or more matches of the atom.
-An atom followed by `+' matches a sequence of 1 or more matches of the atom.
-An atom followed by `?' matches a match of the atom, or the null string.
-.PP
-An atom is a regular expression in parentheses (matching a match for the
-regular expression), a \fIrange\fR (see below), `.'
-(matching any single character), `^' (matching the null string at the
-beginning of the input string), `$' (matching the null string at the
-end of the input string), a `\e' followed by a single character (matching
-that character), or a single character with no other significance
-(matching that character).
-.PP
-A \fIrange\fR is a sequence of characters enclosed in `[]'.
-It normally matches any single character from the sequence.
-If the sequence begins with `^',
-it matches any single character \fInot\fR from the rest of the sequence.
-If two characters in the sequence are separated by `\-', this is shorthand
-for the full list of ASCII characters between them
-(e.g. `[0-9]' matches any decimal digit).
-To include a literal `]' in the sequence, make it the first character
-(following a possible `^').
-To include a literal `\-', make it the first or last character.
-.SH AMBIGUITY
-If a regular expression could match two different parts of the input string,
-it will match the one which begins earliest.
-If both begin in the same place	but match different lengths, or match
-the same length in different ways, life gets messier, as follows.
-.PP
-In general, the possibilities in a list of branches are considered in
-left-to-right order, the possibilities for `*', `+', and `?' are
-considered longest-first, nested constructs are considered from the
-outermost in, and concatenated constructs are considered leftmost-first.
-The match that will be chosen is the one that uses the earliest
-possibility in the first choice that has to be made.
-If there is more than one choice, the next will be made in the same manner
-(earliest possibility) subject to the decision on the first choice.
-And so forth.
-.PP
-For example, `(ab|a)b*c' could match `abc' in one of two ways.
-The first choice is between `ab' and `a'; since `ab' is earlier, and does
-lead to a successful overall match, it is chosen.
-Since the `b' is already spoken for,
-the `b*' must match its last possibility\(emthe empty string\(emsince
-it must respect the earlier choice.
-.PP
-In the particular case where no `|'s are present and there is only one
-`*', `+', or `?', the net effect is that the longest possible
-match will be chosen.
-So `ab*', presented with `xabbbby', will match `abbbb'.
-Note that if `ab*' is tried against `xabyabbbz', it
-will match `ab' just after `x', due to the begins-earliest rule.
-(In effect, the decision on where to start the match is the first choice
-to be made, hence subsequent choices must respect it even if this leads them
-to less-preferred alternatives.)
-.SH SEE ALSO
-egrep(1), expr(1)
-.SH DIAGNOSTICS
-\fIRegcomp\fR returns NULL for a failure
-(\fIregerror\fR permitting),
-where failures are syntax errors, exceeding implementation limits,
-or applying `+' or `*' to a possibly-null operand.
-.SH HISTORY
-Both code and manual page were
-written at U of T.
-They are intended to be compatible with the Bell V8 \fIregexp\fR(3),
-but are not derived from Bell code.
-.SH BUGS
-Empty branches and empty regular expressions are not portable to V8.
-.PP
-The restriction against
-applying `*' or `+' to a possibly-null operand is an artifact of the
-simplistic implementation.
-.PP
-Does not support \fIegrep\fR's newline-separated branches;
-neither does the V8 \fIregexp\fR(3), though.
-.PP
-Due to emphasis on
-compactness and simplicity,
-it's not strikingly fast.
-It does give special attention to handling simple cases quickly.
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/regexp.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1216 +0,0 @@
-/*
- * regcomp and regexec -- regsub and regerror are elsewhere
- *
- *	Copyright (c) 1986 by University of Toronto.
- *	Written by Henry Spencer.  Not derived from licensed software.
- *
- *	Permission is granted to anyone to use this software for any
- *	purpose on any computer system, and to redistribute it freely,
- *	subject to the following restrictions:
- *
- *	1. The author is not responsible for the consequences of use of
- *		this software, no matter how awful, even if they arise
- *		from defects in it.
- *
- *	2. The origin of this software must not be misrepresented, either
- *		by explicit claim or by omission.
- *
- *	3. Altered versions must be plainly marked as such, and must not
- *		be misrepresented as being the original software.
- *
- * Beware that some of this code is subtly aware of the way operator
- * precedence is structured in regular expressions.  Serious changes in
- * regular-expression syntax might require a total rethink.
- */
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#include <stdio.h>
-#include <string.h>
-#include <tptregexp.h>
-#include "regmagic.h"
-
-/*
- * The "internal use only" fields in regexp.h are present to pass info from
- * compile to execute that permits the execute phase to run lots faster on
- * simple cases.  They are:
- *
- * regstart	char that must begin a match; '\0' if none obvious
- * reganch	is the match anchored (at beginning-of-line only)?
- * regmust	string (pointer into program) that match must include, or NULL
- * regmlen	length of regmust string
- *
- * Regstart and reganch permit very fast decisions on suitable starting points
- * for a match, cutting down the work a lot.  Regmust permits fast rejection
- * of lines that cannot possibly match.  The regmust tests are costly enough
- * that regcomp() supplies a regmust only if the r.e. contains something
- * potentially expensive (at present, the only such thing detected is * or +
- * at the start of the r.e., which can involve a lot of backup).  Regmlen is
- * supplied because the test in regexec() needs it and regcomp() is computing
- * it anyway.
- */
-
-/*
- * Structure for regexp "program".  This is essentially a linear encoding
- * of a nondeterministic finite-state machine (aka syntax charts or
- * "railroad normal form" in parsing technology).  Each node is an opcode
- * plus a "next" pointer, possibly plus an operand.  "Next" pointers of
- * all nodes except BRANCH implement concatenation; a "next" pointer with
- * a BRANCH on both ends of it is connecting two alternatives.  (Here we
- * have one of the subtle syntax dependencies:  an individual BRANCH (as
- * opposed to a collection of them) is never concatenated with anything
- * because of operator precedence.)  The operand of some types of node is
- * a literal string; for others, it is a node leading into a sub-FSM.  In
- * particular, the operand of a BRANCH node is the first node of the branch.
- * (NB this is *not* a tree structure:  the tail of the branch connects
- * to the thing following the set of BRANCHes.)  The opcodes are:
- */
-
-/* definition	number	opnd?	meaning */
-#define	END	0	/* no	End of program. */
-#define	BOL	1	/* no	Match "" at beginning of line. */
-#define	EOL	2	/* no	Match "" at end of line. */
-#define	ANY	3	/* no	Match any one character. */
-#define	ANYOF	4	/* str	Match any character in this string. */
-#define	ANYBUT	5	/* str	Match any character not in this string. */
-#define	BRANCH	6	/* node	Match this alternative, or the next... */
-#define	BACK	7	/* no	Match "", "next" ptr points backward. */
-#define	EXACTLY	8	/* str	Match this string. */
-#define	NOTHING	9	/* no	Match empty string. */
-#define	STAR	10	/* node	Match this (simple) thing 0 or more times. */
-#define	PLUS	11	/* node	Match this (simple) thing 1 or more times. */
-#define	OPEN	20	/* no	Mark this point in input as start of #n. */
-			/*	OPEN+1 is number 1, etc. */
-#define	CLOSE	30	/* no	Analogous to OPEN. */
-
-/*
- * Opcode notes:
- *
- * BRANCH	The set of branches constituting a single choice are hooked
- *		together with their "next" pointers, since precedence prevents
- *		anything being concatenated to any individual branch.  The
- *		"next" pointer of the last BRANCH in a choice points to the
- *		thing following the whole choice.  This is also where the
- *		final "next" pointer of each individual branch points; each
- *		branch starts with the operand node of a BRANCH node.
- *
- * BACK		Normal "next" pointers all implicitly point forward; BACK
- *		exists to make loop structures possible.
- *
- * STAR,PLUS	'?', and complex '*' and '+', are implemented as circular
- *		BRANCH structures using BACK.  Simple cases (one character
- *		per match) are implemented with STAR and PLUS for speed
- *		and to minimize recursive plunges.
- *
- * OPEN,CLOSE	...are numbered at compile time.
- */
-
-/*
- * A node is one char of opcode followed by two chars of "next" pointer.
- * "Next" pointers are stored as two 8-bit pieces, high order first.  The
- * value is a positive offset from the opcode of the node containing it.
- * An operand, if any, simply follows the node.  (Note that much of the
- * code generation knows about this implicit relationship.)
- *
- * Using two bytes for the "next" pointer is vast overkill for most things,
- * but allows patterns to get big without disasters.
- */
-#define	OP(p)	(*(p))
-#define NEXT(p) (((*((p)+1)&0377)<<8) + (*((p)+2)&0377))
-
-#define	OPERAND(p)	((p) + 3)
-
-/*
- * See regmagic.h for one further detail of program structure.
- */
-
-
-/*
- * Utility definitions.
- */
-#ifndef CHARBITS
-#define	UCHARAT(p)	((int)*(unsigned char *)(p))
-#else
-#define	UCHARAT(p)	((int)*(p)&CHARBITS)
-#endif
-
-#define	FAIL(m)	{ tpt_regerror(m); return(NULL); }
-#define	ISMULT(c)	((c) == '*' || (c) == '+' || (c) == '?')
-#define	META	"^$.[()|?+*\\"
-
-/*
- * Flags to be passed up and down.
- */
-#define	HASWIDTH	01	/* Known never to match null string. */
-#define	SIMPLE		02	/* Simple enough to be STAR/PLUS operand. */
-#define	SPSTART		04	/* Starts with * or +. */
-#define	WORST		0	/* Worst case. */
-
-/*
- * Global work variables for regcomp().
- */
-static char *regparse;		/* Input-scan pointer. */
-static int regnpar;		/* () count. */
-static char regdummy;
-static char *regcode;		/* Code-emit pointer; &regdummy = don't. */
-static long regsize;		/* Code size. */
-
-/*
- * Forward declarations for regcomp()'s friends.
- */
-#ifndef STATIC
-#define	STATIC	static
-#endif
-STATIC char *reg();
-STATIC char *regbranch();
-STATIC char *regpiece();
-STATIC char *regatom();
-STATIC char *regnode();
-STATIC char *regnext();
-STATIC void regc();
-STATIC void reginsert();
-STATIC void regtail();
-STATIC void regoptail();
-#ifdef STRCSPN
-STATIC int strcspn();
-#endif
-
-/*
- - regcomp - compile a regular expression into internal code
- *
- * We can't allocate space until we know how big the compiled form will be,
- * but we can't compile it (and thus know how big it is) until we've got a
- * place to put the code.  So we cheat:  we compile it twice, once with code
- * generation turned off and size counting turned on, and once "for real".
- * This also means that we don't allocate space until we are sure that the
- * thing really will compile successfully, and we never have to move the
- * code and thus invalidate pointers into it.  (Note that it has to be in
- * one piece because free() must be able to free it all.)
- *
- * Beware that the optimization-preparation code in here knows about some
- * of the structure of the compiled regexp.
- */
-regexp *
-tpt_regcomp(exp)
-char *exp;
-{
-	register regexp *r;
-	register char *scan;
-	register char *longest;
-	register int len;
-	int flags;
-	extern char *malloc();
-
-	if (exp == NULL)
-		FAIL("NULL argument");
-
-	/* First pass: determine size, legality. */
-	regparse = exp;
-	regnpar = 1;
-	regsize = 0L;
-	regcode = &regdummy;
-	regc(MAGIC);
-	if (reg(0, &flags) == NULL)
-		return(NULL);
-
-	/* Small enough for pointer-storage convention? */
-	if (regsize >= 32767L)		/* Probably could be 65535L. */
-		FAIL("regexp too big");
-
-	/* Allocate space. */
-	r = (regexp *)malloc(sizeof(regexp) + (unsigned)regsize);
-	if (r == NULL)
-		FAIL("out of space");
-
-	/* Second pass: emit code. */
-	regparse = exp;
-	regnpar = 1;
-	regcode = r->program;
-	regc(MAGIC);
-	if (reg(0, &flags) == NULL)
-		return(NULL);
-
-	/* Dig out information for optimizations. */
-	r->regstart = '\0';	/* Worst-case defaults. */
-	r->reganch = 0;
-	r->regmust = NULL;
-	r->regmlen = 0;
-	scan = r->program+1;			/* First BRANCH. */
-	if (OP(regnext(scan)) == END) {		/* Only one top-level choice. */
-		scan = OPERAND(scan);
-
-		/* Starting-point info. */
-		if (OP(scan) == EXACTLY)
-			r->regstart = *OPERAND(scan);
-		else if (OP(scan) == BOL)
-			r->reganch++;
-
-		/*
-		 * If there's something expensive in the r.e., find the
-		 * longest literal string that must appear and make it the
-		 * regmust.  Resolve ties in favor of later strings, since
-		 * the regstart check works with the beginning of the r.e.
-		 * and avoiding duplication strengthens checking.  Not a
-		 * strong reason, but sufficient in the absence of others.
-		 */
-		if (flags&SPSTART) {
-			longest = NULL;
-			len = 0;
-			for (; scan != NULL; scan = regnext(scan))
-				if (OP(scan) == EXACTLY && strlen(OPERAND(scan)) >= len) {
-					longest = OPERAND(scan);
-					len = strlen(OPERAND(scan));
-				}
-			r->regmust = longest;
-			r->regmlen = len;
-		}
-	}
-
-	return(r);
-}
-
-/*
- - reg - regular expression, i.e. main body or parenthesized thing
- *
- * Caller must absorb opening parenthesis.
- *
- * Combining parenthesis handling with the base level of regular expression
- * is a trifle forced, but the need to tie the tails of the branches to what
- * follows makes it hard to avoid.
- */
-static char *
-reg(paren, flagp)
-int paren;			/* Parenthesized? */
-int *flagp;
-{
-	register char *ret;
-	register char *br;
-	register char *ender;
-	register int parno;
-	int flags;
-
-	*flagp = HASWIDTH;	/* Tentatively. */
-
-	/* Make an OPEN node, if parenthesized. */
-	if (paren) {
-		if (regnpar >= NSUBEXP)
-			FAIL("too many ()");
-		parno = regnpar;
-		regnpar++;
-		ret = regnode(OPEN+parno);
-	} else
-		ret = NULL;
-
-	/* Pick up the branches, linking them together. */
-	br = regbranch(&flags);
-	if (br == NULL)
-		return(NULL);
-	if (ret != NULL)
-		regtail(ret, br);	/* OPEN -> first. */
-	else
-		ret = br;
-	if (!(flags&HASWIDTH))
-		*flagp &= ~HASWIDTH;
-	*flagp |= flags&SPSTART;
-	while (*regparse == '|') {
-		regparse++;
-		br = regbranch(&flags);
-		if (br == NULL)
-			return(NULL);
-		regtail(ret, br);	/* BRANCH -> BRANCH. */
-		if (!(flags&HASWIDTH))
-			*flagp &= ~HASWIDTH;
-		*flagp |= flags&SPSTART;
-	}
-
-	/* Make a closing node, and hook it on the end. */
-	ender = regnode((paren) ? CLOSE+parno : END);	
-	regtail(ret, ender);
-
-	/* Hook the tails of the branches to the closing node. */
-	for (br = ret; br != NULL; br = regnext(br))
-		regoptail(br, ender);
-
-	/* Check for proper termination. */
-	if (paren && *regparse++ != ')') {
-		FAIL("unmatched ()");
-	} else if (!paren && *regparse != '\0') {
-		if (*regparse == ')') {
-			FAIL("unmatched ()");
-		} else
-			FAIL("junk on end");	/* "Can't happen". */
-		/* NOTREACHED */
-	}
-
-	return(ret);
-}
-
-/*
- - regbranch - one alternative of an | operator
- *
- * Implements the concatenation operator.
- */
-static char *
-regbranch(flagp)
-int *flagp;
-{
-	register char *ret;
-	register char *chain;
-	register char *latest;
-	int flags;
-
-	*flagp = WORST;		/* Tentatively. */
-
-	ret = regnode(BRANCH);
-	chain = NULL;
-	while (*regparse != '\0' && *regparse != '|' && *regparse != ')') {
-		latest = regpiece(&flags);
-		if (latest == NULL)
-			return(NULL);
-		*flagp |= flags&HASWIDTH;
-		if (chain == NULL)	/* First piece. */
-			*flagp |= flags&SPSTART;
-		else
-			regtail(chain, latest);
-		chain = latest;
-	}
-	if (chain == NULL)	/* Loop ran zero times. */
-		(void) regnode(NOTHING);
-
-	return(ret);
-}
-
-/*
- - regpiece - something followed by possible [*+?]
- *
- * Note that the branching code sequences used for ? and the general cases
- * of * and + are somewhat optimized:  they use the same NOTHING node as
- * both the endmarker for their branch list and the body of the last branch.
- * It might seem that this node could be dispensed with entirely, but the
- * endmarker role is not redundant.
- */
-static char *
-regpiece(flagp)
-int *flagp;
-{
-	register char *ret;
-	register char op;
-	register char *next;
-	int flags;
-
-	ret = regatom(&flags);
-	if (ret == NULL)
-		return(NULL);
-
-	op = *regparse;
-	if (!ISMULT(op)) {
-		*flagp = flags;
-		return(ret);
-	}
-
-	if (!(flags&HASWIDTH) && op != '?')
-		FAIL("*+ operand could be empty");
-	*flagp = (op != '+') ? (WORST|SPSTART) : (WORST|HASWIDTH);
-
-	if (op == '*' && (flags&SIMPLE))
-		reginsert(STAR, ret);
-	else if (op == '*') {
-		/* Emit x* as (x&|), where & means "self". */
-		reginsert(BRANCH, ret);			/* Either x */
-		regoptail(ret, regnode(BACK));		/* and loop */
-		regoptail(ret, ret);			/* back */
-		regtail(ret, regnode(BRANCH));		/* or */
-		regtail(ret, regnode(NOTHING));		/* null. */
-	} else if (op == '+' && (flags&SIMPLE))
-		reginsert(PLUS, ret);
-	else if (op == '+') {
-		/* Emit x+ as x(&|), where & means "self". */
-		next = regnode(BRANCH);			/* Either */
-		regtail(ret, next);
-		regtail(regnode(BACK), ret);		/* loop back */
-		regtail(next, regnode(BRANCH));		/* or */
-		regtail(ret, regnode(NOTHING));		/* null. */
-	} else if (op == '?') {
-		/* Emit x? as (x|) */
-		reginsert(BRANCH, ret);			/* Either x */
-		regtail(ret, regnode(BRANCH));		/* or */
-		next = regnode(NOTHING);		/* null. */
-		regtail(ret, next);
-		regoptail(ret, next);
-	}
-	regparse++;
-	if (ISMULT(*regparse))
-		FAIL("nested *?+");
-
-	return(ret);
-}
-
-/*
- - regatom - the lowest level
- *
- * Optimization:  gobbles an entire sequence of ordinary characters so that
- * it can turn them into a single node, which is smaller to store and
- * faster to run.  Backslashed characters are exceptions, each becoming a
- * separate node; the code is simpler that way and it's not worth fixing.
- */
-static char *
-regatom(flagp)
-int *flagp;
-{
-	register char *ret;
-	int flags;
-
-	*flagp = WORST;		/* Tentatively. */
-
-	switch (*regparse++) {
-	case '':
-		ret = regnode(BOL);
-		break;
-	case '$':
-		ret = regnode(EOL);
-		break;
-	case '.':
-		ret = regnode(ANY);
-		*flagp |= HASWIDTH|SIMPLE;
-		break;
-	case '[': {
-			register int class;
-			register int classend;
-
-			if (*regparse == '') {	/* Complement of range. */
-				ret = regnode(ANYBUT);
-				regparse++;
-			} else
-				ret = regnode(ANYOF);
-			if (*regparse == ']' || *regparse == '-')
-				regc(*regparse++);
-			while (*regparse != '\0' && *regparse != ']') {
-				if (*regparse == '-') {
-					regparse++;
-					if (*regparse == ']' || *regparse == '\0')
-						regc('-');
-					else {
-						class = UCHARAT(regparse-2)+1;
-						classend = UCHARAT(regparse);
-						if (class > classend+1)
-							FAIL("invalid [] range");
-						for (; class <= classend; class++)
-							regc(class);
-						regparse++;
-					}
-				} else
-					regc(*regparse++);
-			}
-			regc('\0');
-			if (*regparse != ']')
-				FAIL("unmatched []");
-			regparse++;
-			*flagp |= HASWIDTH|SIMPLE;
-		}
-		break;
-	case '(':
-		ret = reg(1, &flags);
-		if (ret == NULL)
-			return(NULL);
-		*flagp |= flags&(HASWIDTH|SPSTART);
-		break;
-	case '\0':
-	case '|':
-	case ')':
-		FAIL("internal urp");	/* Supposed to be caught earlier. */
-		break;
-	case '?':
-	case '+':
-	case '*':
-		FAIL("?+* follows nothing");
-		break;
-	case '\\':
-		if (*regparse == '\0')
-			FAIL("trailing \\");
-		ret = regnode(EXACTLY);
-		regc(*regparse++);
-		regc('\0');
-		*flagp |= HASWIDTH|SIMPLE;
-		break;
-	default: {
-			register int len;
-			register char ender;
-
-			regparse--;
-			len = strcspn(regparse, META);
-			if (len <= 0)
-				FAIL("internal disaster");
-			ender = *(regparse+len);
-			if (len > 1 && ISMULT(ender))
-				len--;		/* Back off clear of ?+* operand. */
-			*flagp |= HASWIDTH;
-			if (len == 1)
-				*flagp |= SIMPLE;
-			ret = regnode(EXACTLY);
-			while (len > 0) {
-				regc(*regparse++);
-				len--;
-			}
-			regc('\0');
-		}
-		break;
-	}
-
-	return(ret);
-}
-
-/*
- - regnode - emit a node
- */
-static char *			/* Location. */
-regnode(op)
-char op;
-{
-	register char *ret;
-	register char *ptr;
-
-	ret = regcode;
-	if (ret == &regdummy) {
-		regsize += 3;
-		return(ret);
-	}
-
-	ptr = ret;
-	*ptr++ = op;
-	*ptr++ = '\0';		/* Null "next" pointer. */
-	*ptr++ = '\0';
-	regcode = ptr;
-
-	return(ret);
-}
-
-/*
- - regc - emit (if appropriate) a byte of code
- */
-static void
-regc(b)
-char b;
-{
-	if (regcode != &regdummy)
-		*regcode++ = b;
-	else
-		regsize++;
-}
-
-/*
- - reginsert - insert an operator in front of already-emitted operand
- *
- * Means relocating the operand.
- */
-static void
-reginsert(op, opnd)
-char op;
-char *opnd;
-{
-	register char *src;
-	register char *dst;
-	register char *place;
-
-	if (regcode == &regdummy) {
-		regsize += 3;
-		return;
-	}
-
-	src = regcode;
-	regcode += 3;
-	dst = regcode;
-	while (src > opnd)
-		*--dst = *--src;
-
-	place = opnd;		/* Op node, where operand used to be. */
-	*place++ = op;
-	*place++ = '\0';
-	*place++ = '\0';
-}
-
-/*
- - regtail - set the next-pointer at the end of a node chain
- */
-static void
-regtail(p, val)
-char *p;
-char *val;
-{
-	register char *scan;
-	register char *temp;
-	register int offset;
-
-	if (p == &regdummy)
-		return;
-
-	/* Find last node. */
-	scan = p;
-	for (;;) {
-		temp = regnext(scan);
-		if (temp == NULL)
-			break;
-		scan = temp;
-	}
-
-	if (OP(scan) == BACK)
-		offset = scan - val;
-	else
-		offset = val - scan;
-	*(scan+1) = (offset>>8)&0377;
-	*(scan+2) = offset&0377;
-}
-
-/*
- - regoptail - regtail on operand of first argument; nop if operandless
- */
-static void
-regoptail(p, val)
-char *p;
-char *val;
-{
-	/* "Operandless" and "op != BRANCH" are synonymous in practice. */
-	if (p == NULL || p == &regdummy || OP(p) != BRANCH)
-		return;
-	regtail(OPERAND(p), val);
-}
-
-/*
- * regexec and friends
- */
-
-/*
- * Global work variables for regexec().
- */
-static char *reginput;		/* String-input pointer. */
-static char *regbol;		/* Beginning of input, for  check. */
-static char **regstartp;	/* Pointer to startp array. */
-static char **regendp;		/* Ditto for endp. */
-
-/*
- * Forwards.
- */
-STATIC int regtry();
-STATIC int regmatch();
-STATIC int regrepeat();
-
-#ifdef DEBUG
-int regnarrate = 0;
-void regdump();
-STATIC char *regprop();
-#endif
-
-/*
- - regexec - match a regexp against a string
- */
-int
-tpt_regexec(prog, string)
-register regexp *prog;
-register char *string;
-{
-	register char *s;
-	extern char *strchr();
-
-	/* Be paranoid... */
-	if (prog == NULL || string == NULL) {
-		tpt_regerror("NULL parameter");
-		return(0);
-	}
-
-	/* Check validity of program. */
-	if (UCHARAT(prog->program) != MAGIC) {
-		tpt_regerror("corrupted program");
-		return(0);
-	}
-
-	/* If there is a "must appear" string, look for it. */
-	if (prog->regmust != NULL) {
-		s = string;
-		while ((s = strchr(s, prog->regmust[0])) != NULL) {
-			if (strncmp(s, prog->regmust, prog->regmlen) == 0)
-				break;	/* Found it. */
-			s++;
-		}
-		if (s == NULL)	/* Not present. */
-			return(0);
-	}
-
-	/* Mark beginning of line for  . */
-	regbol = string;
-
-	/* Simplest case:  anchored match need be tried only once. */
-	if (prog->reganch)
-		return(regtry(prog, string));
-
-	/* Messy cases:  unanchored match. */
-	s = string;
-	if (prog->regstart != '\0')
-		/* We know what char it must start with. */
-		while ((s = strchr(s, prog->regstart)) != NULL) {
-			if (regtry(prog, s))
-				return(1);
-			s++;
-		}
-	else
-		/* We don't -- general case. */
-		do {
-			if (regtry(prog, s))
-				return(1);
-		} while (*s++ != '\0');
-
-	/* Failure. */
-	return(0);
-}
-
-/*
- - regtry - try match at specific point
- */
-static int			/* 0 failure, 1 success */
-regtry(prog, string)
-regexp *prog;
-char *string;
-{
-	register int i;
-	register char **sp;
-	register char **ep;
-
-	reginput = string;
-	regstartp = prog->startp;
-	regendp = prog->endp;
-
-	sp = prog->startp;
-	ep = prog->endp;
-	for (i = NSUBEXP; i > 0; i--) {
-		*sp++ = NULL;
-		*ep++ = NULL;
-	}
-	if (regmatch(prog->program + 1)) {
-		prog->startp[0] = string;
-		prog->endp[0] = reginput;
-		return(1);
-	} else
-		return(0);
-}
-
-/*
- - regmatch - main matching routine
- *
- * Conceptually the strategy is simple:  check to see whether the current
- * node matches, call self recursively to see whether the rest matches,
- * and then act accordingly.  In practice we make some effort to avoid
- * recursion, in particular by going through "ordinary" nodes (that don't
- * need to know whether the rest of the match failed) by a loop instead of
- * by recursion.
- */
-static int			/* 0 failure, 1 success */
-regmatch(prog)
-char *prog;
-{
-	register char *scan;	/* Current node. */
-	char *next;		/* Next node. */
-	extern char *strchr();
-
-	scan = prog;
-#ifdef DEBUG
-	if (scan != NULL && regnarrate)
-		fprintf(stderr, "%s(\n", regprop(scan));
-#endif
-	while (scan != NULL) {
-#ifdef DEBUG
-		if (regnarrate)
-			fprintf(stderr, "%s...\n", regprop(scan));
-#endif
-		next = regnext(scan);
-
-		switch (OP(scan)) {
-		case BOL:
-			if (reginput != regbol)
-				return(0);
-			break;
-		case EOL:
-			if (*reginput != '\0')
-				return(0);
-			break;
-		case ANY:
-			if (*reginput == '\0')
-				return(0);
-			reginput++;
-			break;
-		case EXACTLY: {
-				register int len;
-				register char *opnd;
-
-				opnd = OPERAND(scan);
-				/* Inline the first character, for speed. */
-				if (*opnd != *reginput)
-					return(0);
-				len = strlen(opnd);
-				if (len > 1 && strncmp(opnd, reginput, len) != 0)
-					return(0);
-				reginput += len;
-			}
-			break;
-		case ANYOF:
-			if (*reginput == '\0' || strchr(OPERAND(scan), *reginput) == NULL)
-				return(0);
-			reginput++;
-			break;
-		case ANYBUT:
-			if (*reginput == '\0' || strchr(OPERAND(scan), *reginput) != NULL)
-				return(0);
-			reginput++;
-			break;
-		case NOTHING:
-			break;
-		case BACK:
-			break;
-		case OPEN+1:
-		case OPEN+2:
-		case OPEN+3:
-		case OPEN+4:
-		case OPEN+5:
-		case OPEN+6:
-		case OPEN+7:
-		case OPEN+8:
-		case OPEN+9: {
-				register int no;
-				register char *save;
-
-				no = OP(scan) - OPEN;
-				save = reginput;
-
-				if (regmatch(next)) {
-					/*
-					 * Don't set startp if some later
-					 * invocation of the same parentheses
-					 * already has.
-					 */
-					if (regstartp[no] == NULL)
-						regstartp[no] = save;
-					return(1);
-				} else
-					return(0);
-			}
-			break;
-		case CLOSE+1:
-		case CLOSE+2:
-		case CLOSE+3:
-		case CLOSE+4:
-		case CLOSE+5:
-		case CLOSE+6:
-		case CLOSE+7:
-		case CLOSE+8:
-		case CLOSE+9: {
-				register int no;
-				register char *save;
-
-				no = OP(scan) - CLOSE;
-				save = reginput;
-
-				if (regmatch(next)) {
-					/*
-					 * Don't set endp if some later
-					 * invocation of the same parentheses
-					 * already has.
-					 */
-					if (regendp[no] == NULL)
-						regendp[no] = save;
-					return(1);
-				} else
-					return(0);
-			}
-			break;
-		case BRANCH: {
-				register char *save;
-
-				if (OP(next) != BRANCH)		/* No choice. */
-					next = OPERAND(scan);	/* Avoid recursion. */
-				else {
-					do {
-						save = reginput;
-						if (regmatch(OPERAND(scan)))
-							return(1);
-						reginput = save;
-						scan = regnext(scan);
-					} while (scan != NULL && OP(scan) == BRANCH);
-					return(0);
-					/* NOTREACHED */
-				}
-			}
-			break;
-		case STAR:
-		case PLUS: {
-				register char nextch;
-				register int no;
-				register char *save;
-				register int min;
-
-				/*
-				 * Lookahead to avoid useless match attempts
-				 * when we know what character comes next.
-				 */
-				nextch = '\0';
-				if (OP(next) == EXACTLY)
-					nextch = *OPERAND(next);
-				min = (OP(scan) == STAR) ? 0 : 1;
-				save = reginput;
-				no = regrepeat(OPERAND(scan));
-				while (no >= min) {
-					/* If it could work, try it. */
-					if (nextch == '\0' || *reginput == nextch)
-						if (regmatch(next))
-							return(1);
-					/* Couldn't or didn't -- back up. */
-					no--;
-					reginput = save + no;
-				}
-				return(0);
-			}
-			break;
-		case END:
-			return(1);	/* Success! */
-			break;
-		default:
-			tpt_regerror("memory corruption");
-			return(0);
-			break;
-		}
-
-		scan = next;
-	}
-
-	/*
-	 * We get here only if there's trouble -- normally "case END" is
-	 * the terminating point.
-	 */
-	tpt_regerror("corrupted pointers");
-	return(0);
-}
-
-/*
- - regrepeat - repeatedly match something simple, report how many
- */
-static int
-regrepeat(p)
-char *p;
-{
-	register int count = 0;
-	register char *scan;
-	register char *opnd;
-
-	scan = reginput;
-	opnd = OPERAND(p);
-	switch (OP(p)) {
-	case ANY:
-		count = strlen(scan);
-		scan += count;
-		break;
-	case EXACTLY:
-		while (*opnd == *scan) {
-			count++;
-			scan++;
-		}
-		break;
-	case ANYOF:
-		while (*scan != '\0' && strchr(opnd, *scan) != NULL) {
-			count++;
-			scan++;
-		}
-		break;
-	case ANYBUT:
-		while (*scan != '\0' && strchr(opnd, *scan) == NULL) {
-			count++;
-			scan++;
-		}
-		break;
-	default:		/* Oh dear.  Called inappropriately. */
-		tpt_regerror("internal foulup");
-		count = 0;	/* Best compromise. */
-		break;
-	}
-	reginput = scan;
-
-	return(count);
-}
-
-/*
- - regnext - dig the "next" pointer out of a node
- */
-static char *
-regnext(p)
-register char *p;
-{
-	register int offset;
-
-	if (p == &regdummy)
-		return(NULL);
-
-	offset = NEXT(p);
-	if (offset == 0)
-		return(NULL);
-
-	if (OP(p) == BACK)
-		return(p-offset);
-	else
-		return(p+offset);
-}
-
-#ifdef DEBUG
-
-STATIC char *regprop();
-
-/*
- - regdump - dump a regexp onto stdout in vaguely comprehensible form
- */
-void
-regdump(r)
-regexp *r;
-{
-	register char *s;
-	register char op = EXACTLY;	/* Arbitrary non-END op. */
-	register char *next;
-	extern char *strchr();
-
-
-	s = r->program + 1;
-	while (op != END) {	/* While that wasn't END last time... */
-		op = OP(s);
-		printf("%2d%s", s-r->program, regprop(s));	/* Where, what. */
-		next = regnext(s);
-		if (next == NULL)		/* Next ptr. */
-			printf("(0)");
-		else 
-			printf("(%d)", (s-r->program)+(next-s));
-		s += 3;
-		if (op == ANYOF || op == ANYBUT || op == EXACTLY) {
-			/* Literal string, where present. */
-			while (*s != '\0') {
-				putchar(*s);
-				s++;
-			}
-			s++;
-		}
-		putchar('\n');
-	}
-
-	/* Header fields of interest. */
-	if (r->regstart != '\0')
-		printf("start `%c' ", r->regstart);
-	if (r->reganch)
-		printf("anchored ");
-	if (r->regmust != NULL)
-		printf("must have \"%s\"", r->regmust);
-	printf("\n");
-}
-
-/*
- - regprop - printable representation of opcode
- */
-static char *
-regprop(op)
-char *op;
-{
-	register char *p;
-	static char buf[50];
-
-	(void) strcpy(buf, ":");
-
-	switch (OP(op)) {
-	case BOL:
-		p = "BOL";
-		break;
-	case EOL:
-		p = "EOL";
-		break;
-	case ANY:
-		p = "ANY";
-		break;
-	case ANYOF:
-		p = "ANYOF";
-		break;
-	case ANYBUT:
-		p = "ANYBUT";
-		break;
-	case BRANCH:
-		p = "BRANCH";
-		break;
-	case EXACTLY:
-		p = "EXACTLY";
-		break;
-	case NOTHING:
-		p = "NOTHING";
-		break;
-	case BACK:
-		p = "BACK";
-		break;
-	case END:
-		p = "END";
-		break;
-	case OPEN+1:
-	case OPEN+2:
-	case OPEN+3:
-	case OPEN+4:
-	case OPEN+5:
-	case OPEN+6:
-	case OPEN+7:
-	case OPEN+8:
-	case OPEN+9:
-		sprintf(buf+strlen(buf), "OPEN%d", OP(op)-OPEN);
-		p = NULL;
-		break;
-	case CLOSE+1:
-	case CLOSE+2:
-	case CLOSE+3:
-	case CLOSE+4:
-	case CLOSE+5:
-	case CLOSE+6:
-	case CLOSE+7:
-	case CLOSE+8:
-	case CLOSE+9:
-		sprintf(buf+strlen(buf), "CLOSE%d", OP(op)-CLOSE);
-		p = NULL;
-		break;
-	case STAR:
-		p = "STAR";
-		break;
-	case PLUS:
-		p = "PLUS";
-		break;
-	default:
-		tpt_regerror("corrupted opcode");
-		break;
-	}
-	if (p != NULL)
-		(void) strcat(buf, p);
-	return(buf);
-}
-#endif
-
-/*
- * The following is provided for those people who do not have strcspn() in
- * their C libraries.  They should get off their butts and do something
- * about it; at least one public-domain implementation of those (highly
- * useful) string routines has been published on Usenet.
- */
-#ifdef STRCSPN
-/*
- * strcspn - find length of initial segment of s1 consisting entirely
- * of characters not from s2
- */
-
-static int
-strcspn(s1, s2)
-char *s1;
-char *s2;
-{
-	register char *scan1;
-	register char *scan2;
-	register int count;
-
-	count = 0;
-	for (scan1 = s1; *scan1 != '\0'; scan1++) {
-		for (scan2 = s2; *scan2 != '\0';)	/* ++ moved down. */
-			if (*scan1 == *scan2++)
-				return(count);
-		count++;
-	}
-	return(count);
-}
-#endif
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/regmagic.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-/*
- * The first byte of the regexp internal "program" is actually this magic
- * number; the start node begins in the second byte.
- */
-#define	MAGIC	0234
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/regsub.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * regsub
- *
- *	Copyright (c) 1986 by University of Toronto.
- *	Written by Henry Spencer.  Not derived from licensed software.
- *
- *	Permission is granted to anyone to use this software for any
- *	purpose on any computer system, and to redistribute it freely,
- *	subject to the following restrictions:
- *
- *	1. The author is not responsible for the consequences of use of
- *		this software, no matter how awful, even if they arise
- *		from defects in it.
- *
- *	2. The origin of this software must not be misrepresented, either
- *		by explicit claim or by omission.
- *
- *	3. Altered versions must be plainly marked as such, and must not
- *		be misrepresented as being the original software.
- */
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#include <stdio.h>
-#include <tptregexp.h>
-#include "regmagic.h"
-
-#ifndef CHARBITS
-#define	UCHARAT(p)	((int)*(unsigned char *)(p))
-#else
-#define	UCHARAT(p)	((int)*(p)&CHARBITS)
-#endif
-
-/*
- - regsub - perform substitutions after a regexp match
- */
-void
-tpt_regsub(prog, source, dest)
-regexp *prog;
-char *source;
-char *dest;
-{
-	register char *src;
-	register char *dst;
-	register char c;
-	register int no;
-	register int len;
-	extern char *strncpy();
-
-	if (prog == NULL || source == NULL || dest == NULL) {
-		tpt_regerror("NULL parm to regsub");
-		return;
-	}
-	if (UCHARAT(prog->program) != MAGIC) {
-		tpt_regerror("damaged regexp fed to regsub");
-		return;
-	}
-
-	src = source;
-	dst = dest;
-	while ((c = *src++) != '\0') {
-		if (c == '&')
-			no = 0;
-		else if (c == '\\' && '0' <= *src && *src <= '9')
-			no = *src++ - '0';
-		else
-			no = -1;
-
-		if (no < 0) {	/* Ordinary character. */
-			if (c == '\\' && (*src == '\\' || *src == '&'))
-				c = *src++;
-			*dst++ = c;
-		} else if (prog->startp[no] != NULL && prog->endp[no] != NULL) {
-			len = prog->endp[no] - prog->startp[no];
-			(void) strncpy(dst, prog->startp[no], len);
-			dst += len;
-			if (len != 0 && *(dst-1) == '\0') {	/* strncpy hit NUL. */
-				tpt_regerror("damaged match string");
-				return;
-			}
-		}
-	}
-	*dst++ = '\0';
-}
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/strerror.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-
-/* standin for strerror(3) which is missing on some systems
- * (eg, SUN)
- */
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-char *
-strerror(int num)
-{
-	perror(num);
-	return "";
-}    
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/tests	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-abc	abc	y	&	abc
-abc	xbc	n	-	-
-abc	axc	n	-	-
-abc	abx	n	-	-
-abc	xabcy	y	&	abc
-abc	ababc	y	&	abc
-ab*c	abc	y	&	abc
-ab*bc	abc	y	&	abc
-ab*bc	abbc	y	&	abbc
-ab*bc	abbbbc	y	&	abbbbc
-ab+bc	abbc	y	&	abbc
-ab+bc	abc	n	-	-
-ab+bc	abq	n	-	-
-ab+bc	abbbbc	y	&	abbbbc
-ab?bc	abbc	y	&	abbc
-ab?bc	abc	y	&	abc
-ab?bc	abbbbc	n	-	-
-ab?c	abc	y	&	abc
-^abc$	abc	y	&	abc
-^abc$	abcc	n	-	-
-^abc	abcc	y	&	abc
-^abc$	aabc	n	-	-
-abc$	aabc	y	&	abc
-^	abc	y	&	
-$	abc	y	&	
-a.c	abc	y	&	abc
-a.c	axc	y	&	axc
-a.*c	axyzc	y	&	axyzc
-a.*c	axyzd	n	-	-
-a[bc]d	abc	n	-	-
-a[bc]d	abd	y	&	abd
-a[b-d]e	abd	n	-	-
-a[b-d]e	ace	y	&	ace
-a[b-d]	aac	y	&	ac
-a[-b]	a-	y	&	a-
-a[b-]	a-	y	&	a-
-a[b-a]	-	c	-	-
-a[]b	-	c	-	-
-a[	-	c	-	-
-a]	a]	y	&	a]
-a[]]b	a]b	y	&	a]b
-a[^bc]d	aed	y	&	aed
-a[^bc]d	abd	n	-	-
-a[^-b]c	adc	y	&	adc
-a[^-b]c	a-c	n	-	-
-a[^]b]c	a]c	n	-	-
-a[^]b]c	adc	y	&	adc
-ab|cd	abc	y	&	ab
-ab|cd	abcd	y	&	ab
-()ef	def	y	&-\1	ef-
-()*	-	c	-	-
-*a	-	c	-	-
-^*	-	c	-	-
-$*	-	c	-	-
-(*)b	-	c	-	-
-$b	b	n	-	-
-a\	-	c	-	-
-a\(b	a(b	y	&-\1	a(b-
-a\(*b	ab	y	&	ab
-a\(*b	a((b	y	&	a((b
-a\\b	a\b	y	&	a\b
-abc)	-	c	-	-
-(abc	-	c	-	-
-((a))	abc	y	&-\1-\2	a-a-a
-(a)b(c)	abc	y	&-\1-\2	abc-a-c
-a+b+c	aabbabc	y	&	abc
-a**	-	c	-	-
-a*?	-	c	-	-
-(a*)*	-	c	-	-
-(a*)+	-	c	-	-
-(a|)*	-	c	-	-
-(a*|b)*	-	c	-	-
-(a+|b)*	ab	y	&-\1	ab-b
-(a+|b)+	ab	y	&-\1	ab-b
-(a+|b)?	ab	y	&-\1	a-a
-[^ab]*	cde	y	&	cde
-(^)*	-	c	-	-
-(ab|)*	-	c	-	-
-)(	-	c	-	-
-	abc	y	&	
-abc		n	-	-
-a*		y	&	
-([abc])*d	abbbcd	y	&-\1	abbbcd-c
-([abc])*bcd	abcd	y	&-\1	abcd-a
-a|b|c|d|e	e	y	&	e
-(a|b|c|d|e)f	ef	y	&-\1	ef-e
-((a*|b))*	-	c	-	-
-abcd*efg	abcdefg	y	&	abcdefg
-ab*	xabyabbbz	y	&	ab
-ab*	xayabbbz	y	&	a
-(ab|cd)e	abcde	y	&-\1	cde-cd
-[abhgefdc]ij	hij	y	&	hij
-^(ab|cd)e	abcde	n	x\1y	xy
-(abc|)ef	abcdef	y	&-\1	ef-
-(a|b)c*d	abcd	y	&-\1	bcd-b
-(ab|ab*)bc	abc	y	&-\1	abc-a
-a([bc]*)c*	abc	y	&-\1	abc-bc
-a([bc]*)(c*d)	abcd	y	&-\1-\2	abcd-bc-d
-a([bc]+)(c*d)	abcd	y	&-\1-\2	abcd-bc-d
-a([bc]*)(c+d)	abcd	y	&-\1-\2	abcd-b-cd
-a[bcd]*dcdcde	adcdcde	y	&	adcdcde
-a[bcd]+dcdcde	adcdcde	n	-	-
-(ab|a)b*c	abc	y	&-\1	abc-ab
-((a)(b)c)(d)	abcd	y	\1-\2-\3-\4	abc-a-b-d
-[a-zA-Z_][a-zA-Z0-9_]*	alpha	y	&	alpha
-^a(bc+|b[eh])g|.h$	abh	y	&-\1	bh-
-(bc+d$|ef*g.|h?i(j|k))	effgz	y	&-\1-\2	effgz-effgz-
-(bc+d$|ef*g.|h?i(j|k))	ij	y	&-\1-\2	ij-ij-j
-(bc+d$|ef*g.|h?i(j|k))	effg	n	-	-
-(bc+d$|ef*g.|h?i(j|k))	bcdd	n	-	-
-(bc+d$|ef*g.|h?i(j|k))	reffgz	y	&-\1-\2	effgz-effgz-
-((((((((((a))))))))))	-	c	-	-
-(((((((((a)))))))))	a	y	&	a
-multiple words of text	uh-uh	n	-	-
-multiple words	multiple words, yeah	y	&	multiple words
-(.*)c(.*)	abcde	y	&-\1-\2	abcde-ab-de
-\((.*), (.*)\)	(a, b)	y	(\2, \1)	(b, a)
-[k]	ab	n	-	-
-abcd	abcd	y	&-\&-\\&	abcd-&-\abcd
-a(bc)d	abcd	y	\1-\\1-\\\1	bc-\1-\bc
-[ -~]*	abc	y	&	abc
-[ -~ -~]*	abc	y	&	abc
-[ -~ -~ -~]*	abc	y	&	abc
-[ -~ -~ -~ -~]*	abc	y	&	abc
-[ -~ -~ -~ -~ -~]*	abc	y	&	abc
-[ -~ -~ -~ -~ -~ -~]*	abc	y	&	abc
-[ -~ -~ -~ -~ -~ -~ -~]*	abc	y	&	abc
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/timer.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-/*
- * Simple timing program for regcomp().
- *
- *	Copyright (c) 1986 by University of Toronto.
- *	Written by Henry Spencer.  Not derived from licensed software.
- *
- *	Permission is granted to anyone to use this software for any
- *	purpose on any computer system, and to redistribute it freely,
- *	subject to the following restrictions:
- *
- *	1. The author is not responsible for the consequences of use of
- *		this software, no matter how awful, even if they arise
- *		from defects in it.
- *
- *	2. The origin of this software must not be misrepresented, either
- *		by explicit claim or by omission.
- *
- *	3. Altered versions must be plainly marked as such, and must not
- *		be misrepresented as being the original software.
- *
- * Usage: timer ncomp nexec nsub
- *	or
- *	timer ncomp nexec nsub regexp string [ answer [ sub ] ]
- *
- * The second form is for timing repetitions of a single test case.
- * The first form's test data is a compiled-in copy of the "tests" file.
- * Ncomp, nexec, nsub are how many times to do each regcomp, regexec,
- * and regsub.  The way to time an operation individually is to do something
- * like "timer 1 50 1".
- */
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#include <stdio.h>
-
-struct try {
-	char *re, *str, *ans, *src, *dst;
-} tests[] = {
-#include "timer.t.h"
-{ NULL, NULL, NULL, NULL, NULL }
-};
-
-#include <tptregexp.h>
-
-int errreport = 0;		/* Report errors via errseen? */
-char *errseen = NULL;		/* Error message. */
-
-char *progname;
-
-/* ARGSUSED */
-main(argc, argv)
-int argc;
-char *argv[];
-{
-	int ncomp, nexec, nsub;
-	struct try one;
-	char dummy[512];
-
-	if (argc < 4) {
-		ncomp = 1;
-		nexec = 1;
-		nsub = 1;
-	} else {
-		ncomp = atoi(argv[1]);
-		nexec = atoi(argv[2]);
-		nsub = atoi(argv[3]);
-	}
-	
-	progname = argv[0];
-	if (argc > 5) {
-		one.re = argv[4];
-		one.str = argv[5];
-		if (argc > 6)
-			one.ans = argv[6];
-		else
-			one.ans = "y";
-		if (argc > 7) {	
-			one.src = argv[7];
-			one.dst = "xxx";
-		} else {
-			one.src = "x";
-			one.dst = "x";
-		}
-		errreport = 1;
-		try(one, ncomp, nexec, nsub);
-	} else
-		multiple(ncomp, nexec, nsub);
-	exit(0);
-}
-
-void
-tpt_regerror(s)
-char *s;
-{
-	if (errreport)
-		errseen = s;
-	else
-		error(s, "");
-}
-
-#ifndef ERRAVAIL
-error(s1, s2)
-char *s1;
-char *s2;
-{
-	fprintf(stderr, "regexp: ");
-	fprintf(stderr, s1, s2);
-	fprintf(stderr, "\n");
-	exit(1);
-}
-#endif
-
-int lineno = 0;
-
-multiple(ncomp, nexec, nsub)
-int ncomp, nexec, nsub;
-{
-	register int i;
-	extern char *strchr();
-
-	errreport = 1;
-	for (i = 0; tests[i].re != NULL; i++) {
-		lineno++;
-		try(tests[i], ncomp, nexec, nsub);
-	}
-}
-
-try(fields, ncomp, nexec, nsub)
-struct try fields;
-int ncomp, nexec, nsub;
-{
-	regexp *r;
-	char dbuf[BUFSIZ];
-	register int i;
-
-	errseen = NULL;
-	r = tpt_regcomp(fields.re);
-	if (r == NULL) {
-		if (*fields.ans != 'c')
-			complain("tpt_regcomp failure in `%s'", fields.re);
-		return;
-	}
-	if (*fields.ans == 'c') {
-		complain("unexpected tpt_regcomp success in `%s'", fields.re);
-		free((char *)r);
-		return;
-	}
-	for (i = ncomp-1; i > 0; i--) {
-		free((char *)r);
-		r = tpt_regcomp(fields.re);
-	}
-	if (!tpt_regexec(r, fields.str)) {
-		if (*fields.ans != 'n')
-			complain("tpt_regexec failure in `%s'", "");
-		free((char *)r);
-		return;
-	}
-	if (*fields.ans == 'n') {
-		complain("unexpected tpt_regexec success", "");
-		free((char *)r);
-		return;
-	}
-	for (i = nexec-1; i > 0; i--)
-		(void) tpt_regexec(r, fields.str);
-	errseen = NULL;
-	for (i = nsub; i > 0; i--)
-		tpt_regsub(r, fields.src, dbuf);
-	if (errseen != NULL) {	
-		complain("tpt_regsub complaint", "");
-		free((char *)r);
-		return;
-	}
-	if (strcmp(dbuf, fields.dst) != 0)
-		complain("tpt_regsub result `%s' wrong", dbuf);
-	free((char *)r);
-}
-
-complain(s1, s2)
-char *s1;
-char *s2;
-{
-	fprintf(stderr, "try: %d: ", lineno);
-	fprintf(stderr, s1, s2);
-	fprintf(stderr, " (%s)\n", (errseen != NULL) ? errseen : "");
-}
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/tptregexp.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
- * Definitions etc. for regexp(3) routines.
- *
- * Caveat:  this is V8 regexp(3) [actually, a reimplementation thereof],
- * not the System V one.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#define NSUBEXP  10
-typedef struct regexp {
-	char *startp[NSUBEXP];
-	char *endp[NSUBEXP];
-	char regstart;		/* Internal use only. */
-	char reganch;		/* Internal use only. */
-	char *regmust;		/* Internal use only. */
-	int regmlen;		/* Internal use only. */
-	char program[1];	/* Unwarranted chumminess with compiler. */
-} regexp;
-
-extern regexp *tpt_regcomp();
-extern int tpt_regexec();
-extern void tpt_regsub();
-extern void tpt_regerror();
--- a/usr/src/cmd/man/src/util/instant.src/tptregexp/try.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-/*
- * Simple test program for regexp(3) stuff.  Knows about debugging hooks.
- *
- *	Copyright (c) 1986 by University of Toronto.
- *	Written by Henry Spencer.  Not derived from licensed software.
- *
- *	Permission is granted to anyone to use this software for any
- *	purpose on any computer system, and to redistribute it freely,
- *	subject to the following restrictions:
- *
- *	1. The author is not responsible for the consequences of use of
- *		this software, no matter how awful, even if they arise
- *		from defects in it.
- *
- *	2. The origin of this software must not be misrepresented, either
- *		by explicit claim or by omission.
- *
- *	3. Altered versions must be plainly marked as such, and must not
- *		be misrepresented as being the original software.
- *
- * Usage: try re [string [output [-]]]
- * The re is compiled and dumped, regexeced against the string, the result
- * is applied to output using regsub().  The - triggers a running narrative
- * from regexec().  Dumping and narrative don't happen unless DEBUG.
- *
- * If there are no arguments, stdin is assumed to be a stream of lines with
- * five fields:  a r.e., a string to match it against, a result code, a
- * source string for regsub, and the proper result.  Result codes are 'c'
- * for compile failure, 'y' for match success, 'n' for match failure.
- * Field separator is tab.
- */
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#include <stdio.h>
-#include <tptregexp.h>
-
-#ifdef ERRAVAIL
-char *progname;
-extern char *mkprogname();
-#endif
-
-#ifdef DEBUG
-extern int regnarrate;
-#endif
-
-char buf[BUFSIZ];
-
-int errreport = 0;		/* Report errors via errseen? */
-char *errseen = NULL;		/* Error message. */
-int status = 0;			/* Exit status. */
-
-/* ARGSUSED */
-main(argc, argv)
-int argc;
-char *argv[];
-{
-	regexp *r;
-	int i;
-
-#ifdef ERRAVAIL
-	progname = mkprogname(argv[0]);
-#endif
-
-	if (argc == 1) {
-		multiple();
-		exit(status);
-	}
-
-	r = tpt_regcomp(argv[1]);
-	if (r == NULL)
-		error("tpt_regcomp failure", "");
-#ifdef DEBUG
-	regdump(r);
-	if (argc > 4)
-		regnarrate++;
-#endif
-	if (argc > 2) {
-		i = tpt_regexec(r, argv[2]);
-		printf("%d", i);
-		for (i = 1; i < NSUBEXP; i++)
-			if (r->startp[i] != NULL && r->endp[i] != NULL)
-				printf(" \\%d", i);
-		printf("\n");
-	}
-	if (argc > 3) {
-		tpt_regsub(r, argv[3], buf);
-		printf("%s\n", buf);
-	}
-	exit(status);
-}
-
-void
-tpt_regerror(s)
-char *s;
-{
-	if (errreport)
-		errseen = s;
-	else
-		error(s, "");
-}
-
-#ifndef ERRAVAIL
-error(s1, s2)
-char *s1;
-char *s2;
-{
-	fprintf(stderr, "regexp: ");
-	fprintf(stderr, s1, s2);
-	fprintf(stderr, "\n");
-	exit(1);
-}
-#endif
-
-int lineno;
-
-regexp badregexp;		/* Implicit init to 0. */
-
-multiple()
-{
-	char rbuf[BUFSIZ];
-	char *field[5];
-	char *scan;
-	int i;
-	regexp *r;
-	extern char *strchr();
-
-	errreport = 1;
-	lineno = 0;
-	while (fgets(rbuf, sizeof(rbuf), stdin) != NULL) {
-		rbuf[strlen(rbuf)-1] = '\0';	/* Dispense with \n. */
-		lineno++;
-		scan = rbuf;
-		for (i = 0; i < 5; i++) {
-			field[i] = scan;
-			if (field[i] == NULL) {
-				complain("bad testfile format", "");
-				exit(1);
-			}
-			scan = strchr(scan, '\t');
-			if (scan != NULL)
-				*scan++ = '\0';
-		}
-		try(field);
-	}
-
-	/* And finish up with some internal testing... */
-	lineno = 9990;
-	errseen = NULL;
-	if (tpt_regcomp((char *)NULL) != NULL || errseen == NULL)
-		complain("tpt_regcomp(NULL) doesn't complain", "");
-	lineno = 9991;
-	errseen = NULL;
-	if (tpt_regexec((regexp *)NULL, "foo") || errseen == NULL)
-		complain("tpt_regexec(NULL, ...) doesn't complain", "");
-	lineno = 9992;
-	r = tpt_regcomp("foo");
-	if (r == NULL) {
-		complain("tpt_regcomp(\"foo\") fails", "");
-		return;
-	}
-	lineno = 9993;
-	errseen = NULL;
-	if (tpt_regexec(r, (char *)NULL) || errseen == NULL)
-		complain("tpt_regexec(..., NULL) doesn't complain", "");
-	lineno = 9994;
-	errseen = NULL;
-	tpt_regsub((regexp *)NULL, "foo", rbuf);
-	if (errseen == NULL)
-		complain("tpt_regsub(NULL, ..., ...) doesn't complain", "");
-	lineno = 9995;
-	errseen = NULL;
-	tpt_regsub(r, (char *)NULL, rbuf);
-	if (errseen == NULL)
-		complain("tpt_regsub(..., NULL, ...) doesn't complain", "");
-	lineno = 9996;
-	errseen = NULL;
-	tpt_regsub(r, "foo", (char *)NULL);
-	if (errseen == NULL)
-		complain("tpt_regsub(..., ..., NULL) doesn't complain", "");
-	lineno = 9997;
-	errseen = NULL;
-	if (tpt_regexec(&badregexp, "foo") || errseen == NULL)
-		complain("tpt_regexec(nonsense, ...) doesn't complain", "");
-	lineno = 9998;
-	errseen = NULL;
-	tpt_regsub(&badregexp, "foo", rbuf);
-	if (errseen == NULL)
-		complain("tpt_regsub(nonsense, ..., ...) doesn't complain", "");
-}
-
-try(fields)
-char **fields;
-{
-	regexp *r;
-	char dbuf[BUFSIZ];
-
-	errseen = NULL;
-	r = tpt_regcomp(fields[0]);
-	if (r == NULL) {
-		if (*fields[2] != 'c')
-			complain("tpt_regcomp failure in `%s'", fields[0]);
-		return;
-	}
-	if (*fields[2] == 'c') {
-		complain("unexpected tpt_regcomp success in `%s'", fields[0]);
-		free((char *)r);
-		return;
-	}
-	if (!tpt_regexec(r, fields[1])) {
-		if (*fields[2] != 'n')
-			complain("tpt_regexec failure in `%s'", "");
-		free((char *)r);
-		return;
-	}
-	if (*fields[2] == 'n') {
-		complain("unexpected tpt_regexec success", "");
-		free((char *)r);
-		return;
-	}
-	errseen = NULL;
-	tpt_regsub(r, fields[3], dbuf);
-	if (errseen != NULL) {
-		complain("tpt_regsub complaint", "");
-		free((char *)r);
-		return;
-	}
-	if (strcmp(dbuf, fields[4]) != 0)
-		complain("tpt_regsub result `%s' wrong", dbuf);
-	free((char *)r);
-}
-
-complain(s1, s2)
-char *s1;
-char *s2;
-{
-	fprintf(stderr, "try: %d: ", lineno);
-	fprintf(stderr, s1, s2);
-	fprintf(stderr, " (%s)\n", (errseen != NULL) ? errseen : "");
-	status = 1;
-}
--- a/usr/src/cmd/man/src/util/instant.src/traninit.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,454 +0,0 @@
-/*
- *  Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
- *  All rights reserved.
- */
-/*
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
- * Copyright (c) 1994  
- * Open Software Foundation, Inc. 
- *  
- * Permission is hereby granted to use, copy, modify and freely distribute 
- * the software in this file and its documentation for any purpose without 
- * fee, provided that the above copyright notice appears in all copies and 
- * that both the copyright notice and this permission notice appear in 
- * supporting documentation.  Further, provided that the name of Open 
- * Software Foundation, Inc. ("OSF") not be used in advertising or 
- * publicity pertaining to distribution of the software without prior 
- * written permission from OSF.  OSF makes no representations about the 
- * suitability of this software for any purpose.  It is provided "as is" 
- * without express or implied warranty. 
- */
-/*
- * Copyright (c) 1996 X Consortium
- * Copyright (c) 1995, 1996 Dalrymple Consulting
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- * 
- * Except as contained in this notice, the names of the X Consortium and
- * Dalrymple Consulting shall not be used in advertising or otherwise to
- * promote the sale, use or other dealings in this Software without prior
- * written authorization.
- */
-/* ________________________________________________________________________
- *
- *  Program to manipulate SGML instances.
- *
- *  This module contains the initialization routines for translation module.
- *  They mostly deal with reading data files (translation specs, SDATA
- *  mappings, character mappings).
- *
- *  Entry points:
- *	ReadTransSpec(transfile)	read/store translation spec from file
- *	ReadSDATA(sdatafile)		read/store SDATA mappings from file
- *	ReadMapping(mapfile)		read/store char mappings from file
- * ________________________________________________________________________
- */
-
-#ifndef lint
-static char *RCSid =
-  "$Header: /usr/src/docbook-to-man/Instant/RCS/traninit.c,v 1.6 1998/06/28 19:15:41 fld Exp fld $";
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <memory.h>
-#include <sys/types.h>
-#include <errno.h>
-
-#include <tptregexp.h>
-#include "general.h"
-#include "translate.h"
-
-#ifndef TRUE
-#define TRUE	(1 == 1)
-#endif
-
-/* forward references */
-void	RememberTransSpec(Trans_t *, int);
-
-/* ______________________________________________________________________ */
-/*  Read the translation specs from the input file, storing in memory.
- *  Arguments:
- *	Name of translation spec file.
- */
-
-void
-ReadTransSpec(
-    char *transfile
-)
-{
-    FILE	*fp;
-    char	buf[LINESIZE], *cp, *fn, *cp2;
-    int		lineno=0, c, i;
-    Trans_t	T;
-
-    if ((fp=OpenFile(transfile)) == NULL) {
-	fprintf(stderr, "Can not open translation spec file '%s'.\n%s\n",
-		transfile, strerror(errno));
-	return;
-    }
-
-    memset(&T, 0, sizeof T);		/* initialize/clear structure */
-    while (fgets(buf, LINESIZE, fp))	/* read line from .ts file */
-    {
-	lineno++;
-	/* skip comment and blank lines */
-	if (buf[0] == '#' || buf[0] == NL) continue;
-
-	/* '-' indicates end of a spec.  When we hit one, remember what we've
-	 * accumulated so far, and null-out the accumulating structure. */
-	if (buf[0] == '-') {
-	    T.lineno = lineno;
-	    RememberTransSpec(&T, lineno);
-	    memset(&T, 0, sizeof T);
-	    continue;
-	}
-
-	stripNL(buf);
-
-	/*  See if next line is continued from this one -- ie. it starts with
-	 *  whitespace.  If so, append to current line.  (This is similar to
-	 *  how e-mail headers work...) */
-	while (1) {
-	    c = getc(fp);		/* 1st char of next line */
-	    if (IsWhite(c)) {		/* space or tab? */
-		/* keep getting characters until it's a non-whitespace */
-		c = getc(fp);
-		while (IsWhite(c)) c = getc(fp);
-		ungetc(c, fp);		/* put back non-whitespace */
-		i = strlen(buf);
-		buf[i++] = ' ';
-		fn = buf + i;		/* point to end of string in buffer */
-		fgets(fn, LINESIZE-i, fp);	/* read and append to buf */
-		lineno++;
-		stripNL(buf);
-	    }
-	    else {
-		ungetc(c, fp);		/* put back non-whitespace */
-		break;
-	    }
-	}
-	/* Isolate field value */
-	if ((cp=strchr(buf, ':'))) {
-	    cp++;				/* point past colon */
-	    while (*cp && IsWhite(*cp)) cp++;	/* point to content */
-	}
-	else {
-	    fprintf(stderr,
-		"Trans spec error, missing colon (skipping line):\n  %s\n", fn);
-	    continue;
-	}
-	fn = buf;		/* fn is name of the field, cp the value. */
-
-	/* Check field names in order that they're likely to occur. */
-	if (!strncmp("GI:",          fn, 3)) {
-	    /* if we are folding the case of GIs, make all upper (unless
-	       it's an internal pseudo-GI name, which starts with '_') */
-	    if (fold_case && cp[0] != '_' && cp[0] != '#') {
-		for (cp2=cp; *cp2; cp2++)
-		    if (islower(*cp2)) *cp2 = toupper(*cp2);
-	    }
-	    T.gi = AddElemName(cp);
-	}
-	else if (!strncmp("StartText:",   fn, 10)) T.starttext	= strdup(cp);
-	else if (!strncmp("EndText:",     fn, 8))  T.endtext	= strdup(cp);
-	else if (!strncmp("Relation:",    fn, 9))  {
-	    if (!T.relations) T.relations = NewMap(IMS_relations);
-	    SetMapping(T.relations, cp);
-	}
-	else if (!strncmp("Replace:",     fn, 8))  T.replace	= strdup(cp);
-	else if (!strncmp("AttValue:",    fn, 9)) {
-	    if (!T.nattpairs) {
-		Malloc(1, T.attpair, AttPair_t);
-	    }
-	    else
-		Realloc((T.nattpairs+1), T.attpair, AttPair_t);
-	    /* we'll split name/value pairs later */
-	    T.attpair[T.nattpairs].name = strdup(cp);
-	    T.nattpairs++;
-	}
-	/* If there's only one item in context, it's the parent.  Treat
-	 * it specially, since it's easier to just check parent gi.
-	 */
-	else if (!strncmp("Context:",     fn, 8))  T.context	= strdup(cp);
-	else if (!strncmp("Message:",     fn, 8))  T.message	= strdup(cp);
-	else if (!strncmp("SpecID:",      fn, 7))  T.my_id	= atoi(cp);
-	else if (!strncmp("Action:",      fn, 7))  T.use_id	= atoi(cp);
-	else if (!strncmp("Content:",     fn, 8))  T.content	= strdup(cp);
-	else if (!strncmp("PAttSet:",     fn, 8))  T.pattrset	= strdup(cp);
-	else if (!strncmp("Verbatim:",    fn, 9))  T.verbatim	= TRUE;
-	else if (!strncmp("Ignore:",      fn, 7)) {
-	    if (!strcmp(cp, "all"))		T.ignore = IGN_ALL;
-	    else if (!strcmp(cp, "data"))	T.ignore = IGN_DATA;
-	    else if (!strcmp(cp, "children"))	T.ignore = IGN_CHILDREN;
-	    else
-		fprintf(stderr, "Bad 'Ignore:' arg in transpec (line %d): %s\n",
-			lineno, cp);
-	}
-	else if (!strncmp("VarValue:",    fn, 9)) {
-	    char	**tok;
-	    i = 2;
-	    tok = Split(cp, &i, S_STRDUP);
-	    T.var_name	= tok[0];
-	    T.var_value	= tok[1];
-	}
-	else if (!strncmp("VarREValue:",    fn, 11)) {
-	    char	**tok;
-	    i = 2;
-	    tok = Split(cp, &i, S_STRDUP);
-	    T.var_RE_name = tok[0];
-	    ExpandVariables(tok[1], buf, 0);
-	    if (!(T.var_RE_value=tpt_regcomp(buf)))	{
-	    	fprintf(stderr, "Regex error in VarREValue Content: %s\n",
-					tok[1]);
-	    }
-	}
-	else if (!strncmp("Set:", fn, 4)) {
-	    if (!T.set_var) T.set_var = NewMap(IMS_setvar);
-	    SetMapping(T.set_var, cp);
-	}
-	else if (!strncmp("Increment:",   fn, 10)) {
-	    if (!T.incr_var) T.incr_var = NewMap(IMS_incvar);
-	    SetMapping(T.incr_var, cp);
-	}
-	else if (!strncmp("Substitute:",   fn, 11)) {
-	    if (!T.incr_var) T.substitute = NewMap(IMS_incvar);
-	    SetMapping(T.substitute, cp);
-	}
-	else if (!strncmp("NthChild:",    fn, 9))  T.nth_child	= atoi(cp);
-	else if (!strncmp("Var:", fn, 4)) SetMapping(Variables, cp);
-	else if (!strncmp("Quit:",        fn, 5))  T.quit	= strdup(cp);
-	else if (!strncmp("Trim:",        fn, 5))  T.trim	= strdup(cp);
-	else
-	    fprintf(stderr, "Unknown translation spec (skipping it): %s\n", fn);
-    }
-    fclose(fp);
-}
-
-/* ______________________________________________________________________ */
-/*  Store translation spec 't' in memory.
- *  Arguments:
- *	Pointer to translation spec to remember.
- *	Line number where translation spec ends.
- */
-void
-RememberTransSpec(
-    Trans_t	*t,
-    int		lineno
-)
-{
-    char	*cp;
-    int		i, do_regex;
-    static Trans_t *last_t;
-    char buf[1000];
-
-    /* If context testing, check some details and set things up for later. */
-    if (t->context) {
-	/* See if the context specified is a regular expression.
-	 * If so, compile the reg expr.  It is assumed to be a regex if
-	 * it contains a character other than what's allowed for GIs in the
-	 * OSF sgml declaration (alphas, nums, '-', and '.').
-	 */
-	for (do_regex=0,cp=t->context; *cp; cp++) {
-	    if (!isalnum(*cp) && *cp != '-' && *cp != '.' && *cp != ' ') {
-		do_regex = 1;
-		break;
-	    }
-	}
-
-	if (do_regex) {
-	    t->depth = MAX_DEPTH;
-	    if (!(t->context_re=tpt_regcomp(t->context))) {
-		fprintf(stderr, "Regex error in Context: %s\n", t->context);
-	    }
-	}
-	else {
-	    /* If there's only one item in context, it's the parent.  Treat
-	     * it specially, since it's faster to just check parent gi.
-	     */
-	    cp = t->context;
-	    if (!strchr(cp, ' ')) {
-		t->parent  = t->context;
-		t->context = NULL;
-	    }
-	    else {
-		/* Figure out depth of context string */
-		t->depth = 0;
-		while (*cp) {
-		    if (*cp) t->depth++;
-		    while (*cp && !IsWhite(*cp)) cp++;	/* find end of gi */
-		    while (*cp && IsWhite(*cp)) cp++;	/* skip space */
-		}
-	    }
-	}
-    }
-
-    /* Compile regular expressions for each attribute */
-    for (i=0; i<t->nattpairs; i++) {
-	/* Initially, name points to "name value".  Split them... */
-	cp = t->attpair[i].name;
-	while (*cp && !IsWhite(*cp)) cp++;	/* point past end of name */
-	if (*cp) {	/* value found */
-	    *cp++ = EOS;			/* terminate name */
-	    while (*cp && IsWhite(*cp)) cp++;	/* point to value */
-	    ExpandVariables(cp, buf, 0);	/* expand any variables */
-	    t->attpair[i].val = strdup(buf);
-	}
-	else {		/* value not found */
-	    t->attpair[i].val = ".";
-	}
-	if (!(t->attpair[i].rex=tpt_regcomp(t->attpair[i].val))) {
-	    fprintf(stderr, "Regex error in AttValue: %s %s\n",
-		    t->attpair[i].name, t->attpair[i].val);
-	}
-    }
-
-    /* Compile regular expression for content */
-    t->content_re = 0;
-    if (t->content) {
-	ExpandVariables(t->content, buf, 0);
-	if (!(t->content_re=tpt_regcomp(buf)))
-	    fprintf(stderr, "Regex error in Content: %s\n",
-		    t->content);
-    }
-
-    /* If multiple GIs, break up into a vector, then remember it.  We either
-     * sture the individual, or the list - not both. */
-    if (t->gi && strchr(t->gi, ' ')) {
-	t->gilist = Split(t->gi, 0, S_ALVEC);
-	t->gi = NULL;
-    }
-
-    /* Now, store structure in linked list. */
-    if (!TrSpecs) {
-	Malloc(1, TrSpecs, Trans_t);
-	last_t = TrSpecs;
-    }
-    else {
-	Malloc(1, last_t->next, Trans_t);
-	last_t = last_t->next;
-    }
-    *last_t = *t;
-}
-
-
-/* ______________________________________________________________________ */
-/*  Read mapping file, filling in structure slots (just name-value pairs).
- *  Arguments:
- *	Name of character mapping file.
- */
-
-void
-ReadCharMap(
-    char *filename
-)
-{
-    FILE	*fp;
-    char	buf[LINESIZE], *name, *val;
-    int		lineno=0;
-    int		n_alloc=0;	/* number of slots allocated so far */
-
-    if ((fp=OpenFile(filename)) == NULL) {
-	fprintf(stderr, "Can not open character mapping file '%s'.\n%s\n",
-		filename, strerror(errno));
-	return;
-    }
-
-    /* We allocate slots in blocks of N, so we don't have to call
-     * malloc so many times. */
-    n_alloc  = 32;
-    Calloc(n_alloc, CharMap, Mapping_t);
-
-    nCharMap = 0;
-    while (fgets(buf, LINESIZE, fp))
-    {
-	lineno++;
-	/* skip comment and blank lines */
-	if (buf[0] == '#' || buf[0] == NL) continue;
-	stripNL(buf);
-
-	/* Need more slots for mapping structures? */
-	if (nCharMap >= n_alloc) {
-	    n_alloc += 32;
-	    Realloc(n_alloc, CharMap, Mapping_t);
-	}
-	name = val = buf;
-	while (*val && !IsWhite(*val)) val++;	/* point past end of name */
-	if (*val) {
-	    *val++ = EOS;				/* terminate name */
-	    while (*val && IsWhite(*val)) val++;	/* point to value */
-	}
-	if (name) {
-	    CharMap[nCharMap].name = strdup(name);
-	    if (val) CharMap[nCharMap].sval = strdup(val);
-	    if (CharMap[nCharMap].name[0] == '\\') CharMap[nCharMap].name++;
-	    nCharMap++;
-	}
-    }
-    fclose(fp);
-}
-
-/* ______________________________________________________________________ */
-/* Read SDATA mapping file, remembering the mappings in memory.
- * Input file format is 2 columns, name and value, separated by one or
- * more tabs (not spaces).
- * This can be called multuple times, reading several files.
- *  Arguments:
- *	Name of SDATA entity mapping file.
- */
-
-void
-ReadSDATA(
-    char *filename
-)
-{
-    FILE	*fp;
-    char	buf[LINESIZE], *name, *val;
-    int		lineno=0;
-
-    if ((fp=OpenFile(filename)) == NULL) {
-	fprintf(stderr, "Can not open SDATA file '%s': %s", filename,
-		strerror(errno));
-	return;
-    }
-
-    if (!SDATAmap) SDATAmap = NewMap(IMS_sdata);
-
-    while (fgets(buf, LINESIZE, fp))
-    {
-	lineno++;
-	/* skip comment and blank lines */
-	if (buf[0] == '#' || buf[0] == NL) continue;
-	stripNL(buf);
-
-	name = val = buf;
-	while (*val && *val != TAB) val++;	/* point past end of name */
-	if (*val) {
-	    *val++ = EOS;			/* terminate name */
-	    while (*val && *val == TAB) val++;	/* point to value */
-	}
-
-	SetMappingNV(SDATAmap, name, val);
-    }
-    fclose(fp);
-}
-
-/* ______________________________________________________________________ */
--- a/usr/src/cmd/man/src/util/instant.src/translate.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1016 +0,0 @@
-/*
- *  Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
- *  All rights reserved.
- */
-/*
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
- * Copyright (c) 1994  
- * Open Software Foundation, Inc. 
- *  
- * Permission is hereby granted to use, copy, modify and freely distribute 
- * the software in this file and its documentation for any purpose without 
- * fee, provided that the above copyright notice appears in all copies and 
- * that both the copyright notice and this permission notice appear in 
- * supporting documentation.  Further, provided that the name of Open 
- * Software Foundation, Inc. ("OSF") not be used in advertising or 
- * publicity pertaining to distribution of the software without prior 
- * written permission from OSF.  OSF makes no representations about the 
- * suitability of this software for any purpose.  It is provided "as is" 
- * without express or implied warranty. 
- */
-/*
- * Copyright (c) 1996 X Consortium
- * Copyright (c) 1995, 1996 Dalrymple Consulting
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- * 
- * Except as contained in this notice, the names of the X Consortium and
- * Dalrymple Consulting shall not be used in advertising or otherwise to
- * promote the sale, use or other dealings in this Software without prior
- * written authorization.
- */
-/* ________________________________________________________________________
- *
- *  Program to manipulate SGML instances.
- *
- *  This module is for "translating" an instance to another form, usually
- *  suitable for a formatting application.
- *
- *  Entry points for this module:
- *	DoTranslate(elem, transfile, mapfile, fp)
- * ________________________________________________________________________
- */
-
-#ifndef lint
-static char *RCSid =
-  "$Header: /usr/src/docbook-to-man/Instant/RCS/translate.c,v 1.16 1998/06/29 04:13:40 fld Exp $";
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <memory.h>
-#include <sys/types.h>
-#include <errno.h>
-
-#include <tptregexp.h>
-#include "general.h"
-#define STORAGE
-#include "translate.h"
-
-static Trans_t	NullTrans;		/* an empty one */
-
-/* stack for nested Transpecs */
-
-#define MAXTRANSPECDEPTH  500	/* max depth of transpec nesting */
-
-static Trans_t	*tsStack[MAXTRANSPECDEPTH];
-static int	tsStacki = -1;	/* index into used stack */
-
-/* forward references */
-void	ProcesOutputSpec(char *, Element_t *, FILE *, int);
-static void	WasProcessed(Element_t *);
-
-/* ______________________________________________________________________ */
-/*  Translate the subtree starting at 'e'.  Use 'transfile' for translation
- *  specs.  Output goes to 'fp'.  This is the entry point for translating
- *  an instance.
- *  Assumes you've read SDATA and CharMap files (optionally).
- *  Arguments:
- *	Pointer to element under consideration.
- *	Pointer to name of translation spec file.
- *	FILE pointer to where to write output.
- */
-
-void
-DoTranslate(
-    Element_t	*e,
-    char	*transfile,
-    FILE	*fp
-)
-{
-    Trans_t	*t, *tn;
-
-    if (!transfile) {
-	fprintf(stderr,
-		"Translation spec file not specified. Skipping translation.\n");
-	return;
-    }
-    ReadTransSpec(transfile);
-
-    /* Find transpec for each node. */
-    DescendTree(e, PrepTranspecs, 0, 0, 0);
-
-    /* Stuff to do at start of processing */
-    if ((t = FindTransByName("_Start"))) {
-	if (t->starttext) ProcesOutputSpec(t->starttext, 0, fp, 1);
-	if (t->replace)   ProcesOutputSpec(t->replace, 0, fp, 1);
-	if (t->message)   ProcesOutputSpec(t->message, 0, stderr, 0);
-	if (t->endtext)   ProcesOutputSpec(t->endtext, 0, fp, 1);
-    }
-
-    /* Translate topmost/first element.  This is recursive. */
-    TransElement(e, fp, NULL);
-
-    /* Stuff to do at end of processing */
-    if ((t = FindTransByName("_End"))) {
-	if (t->starttext) ProcesOutputSpec(t->starttext, 0, fp, 1);
-	if (t->replace)   ProcesOutputSpec(t->replace, 0, fp, 1);
-	if (t->message)   ProcesOutputSpec(t->message, 0, stderr, 0);
-	if (t->endtext)   ProcesOutputSpec(t->endtext, 0, fp, 1);
-    }
-
-    /* Warn about unprocessed elements in this doc tree, if verbose mode. */
-    if (verbose)
-	DescendTree(e, WasProcessed, 0, 0, 0);
-
-    /* Clean up. This is not yet complete, which is no big deal (since the
-     * program is normally done at this point anyway.  */
-    for (t=TrSpecs; t; ) {
-	tn = t->next;
-	/* free the contents of t here ... */
-	(void)free((void* )t);
-	t = tn;
-    }
-    TrSpecs = 0;
-}
-
-/* ______________________________________________________________________ */
-/*  Print warning about unprocessed elements in this doc tree (if they
- *  were not explicitely ignored).
- *  Arguments:
- *	Pointer to element under consideration.
- */
-static void
-WasProcessed(
-    Element_t	*e
-)
-{
-    Trans_t	*t;
-    t = e->trans;
-    if (!e->processed && (t && !t->ignore)) {
-	fprintf(stderr, "Warning: element '%s' was not processed:\n", e->gi);
-	PrintLocation(e, stderr);
-    }
-}
-
-/* ______________________________________________________________________ */
-/*  For each element find transpec.
- *  Arguments:
- *	Pointer to element under consideration.
- */
-void
-PrepTranspecs(
-    Element_t	*e
-)
-{
-    Trans_t	*t;
-    t = FindTrans(e, 0);
-    e->trans = t;
-}
-
-/* ______________________________________________________________________ */
-/*  Copy a buffer/string into another, expanding regular variables and immediate
- *  variables. (Special variables are done later.)
- *  Arguments:
- *	Pointer to string to expand.
- *	Pointer to expanded string. (return)
- *	Pointer to element under consideration.
- */
-void
-ExpandVariables(
-    char	*in,
-    char	*out,
-    Element_t	*e
-)
-{
-    register int i, j, k;
-    char	*ip, *vp, *op;
-    char	*def_val, *s, *atval, *modifier;
-    char	vbuf[500];
-    int		lev;
-
-    ip = in;
-    op = out;
-    while (*ip) {
-	/* start of regular variable? */
-	if (*ip == '$' && *(ip+1) == L_CURLY && *(ip+2) != '_') {
-	    ip++;
-	    ip++;		/* point at variable name */
-	    vp = vbuf;
-	    /*	Look for matching (closing) curly. (watch for nesting)
-	     *	We store the variable content in a tmp buffer, so we don't
-	     *	clobber the input buffer.
-	     */
-	    lev = 0;
-	    while (*ip) {
-		if (*ip == L_CURLY) lev++;
-		if (*ip == R_CURLY) {
-		    if (lev == 0) {
-			ip++;
-			break;
-		    }
-		    else lev--;
-		}
-		*vp++ = *ip++;	/* copy to variable buffer */
-	    }
-	    *vp = EOS;
-	    /* vbuf now contains the variable name (stuff between curlys). */
-	    if (lev != 0) {
-		fprintf(stderr, "Botched variable use: %s\n", in);
-		/* copy rest of string if we can't recover  ?? */
-		return;
-	    }
-	    /* Now, expand variable. */
-	    vp = vbuf;
-
-	    /* Check for immediate variables -- like _special variables but
-	     * interpreted right now.  These start with a "+" */
-	    if ( *vp == '+' )	{
-
-	    	if ( ! strcmp(vp, "+content") )	{
-	    	    for ( i=0;  i<e->ncont; i++ )	{
-	    	    	if ( IsContData(e, i) )	{
-	    	    	    j = strlen(ContData(e,i));
-	    	    	    memcpy(op, ContData(e,i), j);
-	    	    	    op += j;
-	    	    	} else	{
-	    	    	    if ( warnings )
-						if (! IsContPI(e, i) ) 
-			    	fprintf(stderr, "warning: ${+current} skipped element content\n");
-	    	    	}
-	    	    }
-
-	    	} else
-
-	    	if ( ! strcmp(vp, "+caps") )	{
-	    	    for ( i=k=0;  i<e->ncont; i++ )	{
-	    	    	if ( IsContData(e, i) )	{
-	    	    	    for ( j=0;  ContData(e, i)[j];  j++ )	{
-	    	    	    	*op++ = toupper(ContData(e, i)[j]);
-			    }
-	    	    	} else	{
-#if FALSE
-	    	    	    if ( warnings )
-			    	fprintf(stderr, "warning: ${+caps} skipped element content\n");
-#endif
-	    	    	}
-	    	    }
-	    	    *op = 0;
-
-	    	} else	{
-	    	    fprintf(stderr, "unknown immediate variable: %s\n", vp);
-	    	}
-
-	    } else	{
-
-		/* See if this variable has a default [ format: ${varname def} ] */
-
-		def_val = vp;
-		while (*def_val && *def_val != ' ') def_val++;
-		if (*def_val) *def_val++ = EOS;
-		else def_val = 0;
-		/* def_val now points to default, if it exists, null if not. */
-
-		modifier = vp;
-		while (*modifier && *modifier != ':') modifier++;
-		if (*modifier) *modifier++ = EOS;
-		else modifier = 0;
-		/* modifier now points to modifier if it exists, null if not. */
-
-		s = 0;
-		/* if attribute of current elem with this name found, use value */
-		if (e && (atval = FindAttValByName(e, vp)))
-		    s = atval;
-	   	 else	/* else try for (global) variable with this name */
-		    s = FindMappingVal(Variables, vp);
-
-		/* If we found a value, copy it to the output buffer. */
-
-		if (s) {
-		    if ( modifier && *modifier == 'l' ) {
-			while (*s) {
-			    *op = tolower(*s);
-			    op++, *s++;
-			}
-		    } else
-			while (*s) *op++ = *s++;
-		} else
-		if (def_val)	{
-		    while (*def_val) *op++ = *def_val++;
-		}
-	    }
-	    continue;
-	}
-	*op++ = *ip++;
-    }
-    *op = EOS;		/* terminate string */
-}
-
-/* ______________________________________________________________________ */
-/*  Process an "output" translation spec - one of StartText, EndText,
- *  Replace, Message.  (These are the ones that produce output.)
- *  Steps done:
- *	Expand attributes and regular varaibles in input string.
- *	Pass thru string, accumulating chars to be sent to output stream.
- *	If we find the start of a special variable, output what we've
- *	  accumulated, then find the special variable's "bounds" (ie, the
- *	  stuff between the curly brackets), and expand that by passing to
- *	  ExpandSpecialVar().  Continue until done the input string.
- *  Arguments:
- *	Input buffer (string) to be expanded and output.
- *	Pointer to element under consideration.
- *	FILE pointer to where to write output.
- *	Flag saying whether to track the character position we're on
- *	  (passed to OutputString).
- */
-void
-ProcesOutputSpec(
-    char	*ib,
-    Element_t	*e,
-    FILE	*fp,
-    int		track_pos
-)
-{
-    char	obuf[LINESIZE];
-    char	vbuf[LINESIZE];
-    char	*dest, vname[LINESIZE], *cp;
-    int		esc;
-
-    obuf[0] = EOS;			/* start with empty output buffer */
-
-    ExpandVariables(ib, vbuf, e);	/* expand regular variables */
-    ib = vbuf;
-    dest = obuf;
-
-    esc = 0;
-    while (*ib) {
-	/* Is esc-$ next?  If so, just copy the '$'. */
-	if (*ib == '\\' && ib[1] == '$') {
-	    ib++;			/* skip esc */
-	    *dest++ = *ib++;		/* copy $ */
-	    continue;
-	}
-
-	/* If not a $, it's a regular char.  Just copy it and go to next. */
-	if (*ib != '$') {		/* look for att/variable marker */
-	    *dest++ = *ib++;		/* it's not. just copy character */
-	    continue;
-	}
-
-	/* We have a $.  What we have must be a "special variable" since
-	 * regular variables have already been expanded, or just a lone $. */
-
-	if (ib[1] != L_CURLY) {	/* just a stray dollar sign (no variable) */
-	    *dest++ = *ib++;
-	    continue;
-	}
-
-	ib++;				/* point past $ */
-
-	/* Output what we have in buffer so far. */
-	*dest = EOS;			/* terminate string */
-	if (obuf[0]) OutputString(obuf, fp, track_pos);
-	dest = obuf;			/* ready for new stuff in buffer */
-
-	if (!strchr(ib, R_CURLY)) {
-	    fprintf(stderr, "Mismatched braces in TranSpec: %s\n", ib);
-	    /* how do we recover from this? */
-	}
-	ib++;
-	cp = vname;
-	while (*ib && *ib != R_CURLY) *cp++ = *ib++;
-	*cp = EOS;			/* terminate att/var name */
-	ib++;				/* point past closing curly */
-	/* we now have special variable name (stuff in curly {}'s) in vname */
-	ExpandSpecialVar(&vname[1], e, fp, track_pos);
-    }
-    *dest = EOS;			/* terminate string in output buffer */
-
-    if (obuf[0]) OutputString(obuf, fp, track_pos);
-}
-
-/* ______________________________________________________________________ */
-/*  Find the translation spec for the given tag.
- *  Returns pointer to first spec that matches (name, depth, etc., of tag).
- *  Arguments:
- *	e -- Pointer to element under consideration.
- *	specID -- name of specid that we're looking for
- *  Return:
- *	Pointer to translation spec that matches given element's context.
- */
-
-Trans_t *
-FindTrans(
-    Element_t	*e,
-    int		specID
-)
-{
-    char	context[LINESIZE], buf[LINESIZE], *cp, **vec, *atval;
-    int		i, a, match;
-    Trans_t	*t, *tt;
-
-    /* loop through all transpecs */
-    for (t=TrSpecs; t; t=t->next)
-    {
-	/* Only one of gi or gilist will be set. */
-	/* Check if elem name matches */
-	if (t->gi && !StrEq(t->gi, e->gi) && !specID) continue;
-
-	/* test if we're looking for a specific specID and then if
-	 * this is it.. */
-	if (specID)
-	    if (!t->my_id || (specID != t->my_id))
-		continue;
-
-	/* Match one in the list of GIs? */
-	if (t->gilist) {
-	    for (match=0,vec=t->gilist; *vec; vec++) {
-		if (StrEq(*vec, e->gi)) {
-		    match = 1;
-		    break;
-		}
-	    }
-	    if (!match) continue;
-	}
-
-	/* Check context */
-
-	/* Special case of context */
-	if (t->parent)
-	    if (!QRelation(e, t->parent, REL_Parent)) continue;
-
-	if (t->context) {	/* no context specified -> a match */
-	    FindContext(e, t->depth, context);
-
-	    /* If reg expr set, do regex compare; else just string compare. */
-	    if (t->context_re) {
-		if (! tpt_regexec(t->context_re, context)) continue;
-	    }
-	    else {
-		/* Is depth of spec deeper than element's depth? */
-		if (t->depth > e->depth) continue;
-
-		/* See if context of element matches "context" of transpec */
-		match = ( (t->context[0] == context[0]) &&
-			    !strcmp(t->context, context) );
-		if (!match) continue;
-	    }
-	}
-
-	/* Check attributes.  Loop through list, comparing each. */
-	if (t->nattpairs) {	/* no att specified -> a match */
-	    for (match=1,a=0; a<t->nattpairs; a++) {
-		if (!(atval = FindAttValByName(e, t->attpair[a].name))) {
-		    match = 0;
-		    break;
-		}
-		if (!tpt_regexec(t->attpair[a].rex, atval)) match = 0;
-	    }
-	    if (!match) continue;
-	}
-
-	/* Check relationships:  child, parent, ancestor, sib, ...  */
-	if (t->relations) {
-	    Mapping_t *r;
-	    match = 1;
-	    for (r=t->relations->maps,i=0; i<t->relations->n_used; i++) {
-		if (!CheckRelation(e, r[i].name, r[i].sval, 0, 0, RA_Current)) {
-		    match = 0;
-		    break;
-		}
-	    }
-	    if (!match) continue;
-	}
-
-	/* check this element's parent's attribute */
-	if (t->pattrset && e->parent) {
-	    char *p, **tok;
-
-	    i = 2;
-	    match = 1;
-	    tok = Split(t->pattrset, &i, S_STRDUP);
-	    if ( i == 2 ) {
-		p = FindAttValByName(e->parent, tok[0]);
-		ExpandVariables(tok[1], buf, 0);
-		if ( !p || strcmp(p, buf) )
-		    match = 0;
-	    } else {
-		if (!FindAttValByName(e->parent, t->pattrset))
-		    match = 0;
-	    }
-	    free(tok[0]);
-	    if (!match) continue;
-	}
-
-	/* check this element's "birth order" */
-	if (t->nth_child) {
-	    /* First one is called "1" by the user.  Internally called "0". */
-	    i = t->nth_child;
-	    if (i > 0) {	/* positive # -- count from beginning */
-		if (e->my_eorder != (i-1)) continue;
-	    }
-	    else {		/* negative # -- count from end */
-		i = e->parent->necont - i;
-		if (e->my_eorder != i) continue;
-	    }
-	}
-
-	/* check that variables match */
-	if (t->var_name) {
-	    cp = FindMappingVal(Variables, t->var_name);
-	    if (!cp || strcmp(cp, t->var_value)) continue;
-	}
-
-	/* check for variable regular expression match */
-	if ( t->var_RE_name )	{
-	    cp = FindMappingVal(Variables, t->var_RE_name);
-	    if (!cp || !tpt_regexec(t->var_RE_value, cp)) continue;
-	}
-
-	/* check content */
-	if (t->content) {		/* no att specified -> a match */
-	    for (match=0,i=0; i<e->ndcont; i++) {
-		if (tpt_regexec(t->content_re, e->dcont[i])) {
-		    match = 1;
-		    break;
-		}
-	    }
-	    if (!match) continue;
-	}
-
-	/* -------- at this point we've passed all criteria -------- */
-
-	/* See if we should be using another transpec's actions. */
-	if (t->use_id) {
-	    if (t->use_id < 0) return &NullTrans;	/* missing? */
-	    /* see if we have a pointer to that transpec */
-	    if (t->use_trans) return t->use_trans;
-	    for (tt=TrSpecs; tt; tt=tt->next) {
-		if (t->use_id == tt->my_id) {
-		    /* remember pointer for next time */
-		    t->use_trans = tt;
-		    return t->use_trans;
-		}
-	    }
-	    t->use_id = -1;	/* flag it as missing */
-	    fprintf(stderr, "Warning: transpec ID (%d) not found for %s.\n",
-		t->use_id, e->gi);
-	    return &NullTrans;
-	}
-
-	return t;
-    }
-
-    /* At this point, we have not found a matching spec.  See if there
-     * is a wildcard, and if so, use it. (Wildcard GI is named "*".) */
-    if ((t = FindTransByName("*"))) return t;
-
-    if (warnings && !specID)
-	fprintf(stderr, "Warning: transpec not found for %s\n", e->gi);
-
-    /* default spec - pass character data and descend node */
-    return &NullTrans;
-}
-
-/* ______________________________________________________________________ */
-/*  Find translation spec by (GI) name.  Returns the first one that matches.
- *  Arguments:
- *	Pointer to name of transpec (the "gi" field of the Trans structure).
- *  Return:
- *	Pointer to translation spec that matches name.
- */
-
-Trans_t *
-FindTransByName(
-    char *s
-)
-{
-    Trans_t *t;
-
-    for (t=TrSpecs; t; t=t->next) {
-	/* check if tag name matches (first check 1st char, for efficiency) */
-	if (t->gi) {
-	    if (*(t->gi) != *s) continue;	/* check 1st character */
-	    if (!strcmp(t->gi, s)) return t;
-	}
-    }
-    return NULL;
-}
-
-/*  Find translation spec by its ID (SpecID).
- *  Arguments:
- *	Spec ID (an int).
- *  Return:
- *	Pointer to translation spec that matches name.
- */
-Trans_t *
-FindTranByID(int n)
-{
-    Trans_t	*t;
-
-    for (t=TrSpecs; t; t=t->next)
-	if (n == t->my_id) return t;
-    return NULL;
-}
-
-/* ______________________________________________________________________ */
-/*  Process a "chunk" of content data of an element.
- *  Arguments:
- *	Pointer to data content to process
- *	FILE pointer to where to write output.
- */
-
-void
-DoData(
-    char *data,
-    FILE *fp,
-    Trans_t	*t
-)
-{
-    char	*cp, buf[LINESIZE], *dp, *sub, prev;
-    int		i, j, mapped;
-    Mapping_t	*m;
-
-    /*  Worry about embedded newlines? */
-
-    if (!fp) return;
-
-    /* CLEANUP: this should really all be done in OutputString(). (I think) */
-
-    if (nCharMap) {
-	/* for each character, see if it's mapped to something else */
-	for (prev=0,cp=data,dp=buf; *cp; cp++) {
-	    if (prev == '\\') {
-		*dp++ = *cp;
-		prev = *cp;
-		continue;
-	    }
-	    for (mapped=0,i=0; !t->verbatim && (i<nCharMap); i++) {
-		if ((*cp != CharMap[i].name[0]) ||
-		    ((*cp == '\\') && (*(cp+1) != '\\')) )
-		    	continue;
-		if ( *cp == '\\' )
-			*cp++;
-		sub = CharMap[i].sval;
-		while (*sub) *dp++ = *sub++;
-		mapped = 1;
-		break;
-	    }
-	    for ( j=tsStacki;  j >= 0;  j-- )	{
-	        if (tsStack[j]->substitute) {
-		    for (m=tsStack[j]->substitute->maps,i=0;
-		    		i<tsStack[j]->substitute->n_used; i++) {
-		        if ( *cp == m[i].name[0] )	{
-		    	    sub = m[i].sval;
-			    while (*sub)
-				    *dp++ = *sub++;
-			    mapped = 2;
-			    break;
-		        }
-		    }
-		    if ( mapped == 2 )
-		    	break;
-	        }
-	    }
-	    if ( *cp == -1 )	*cp = '';
-	    if (!mapped && t->trim && (strchr(t->trim, *cp) != NULL))	{
-	    	continue;
-	    }
-	    if (!mapped) *dp++ = *cp;
-	    prev = *cp;
-	}
-	*dp = EOS;
-	dp = buf;
-    }
-    else dp = data;
-    OutputString(dp, fp, 1);
-}
-
-/* ______________________________________________________________________ */
-/*  Handle a processing instruction.  This is done similarly to elements,
- *  where we find a transpec, then do what it says.  Differences: PI names
- *  start with '_' in the spec file (if a GI does not start with '_', it
- *  may be forced to upper case, sgmls keeps PIs as mixed case); the args
- *  to the PI are treated as the data of an element.  Note that a PI wildcard
- *  is "_*"
- *  Arguments:
- *	Pointer to the PI.
- *	FILE pointer to where to write output.
- */
-
-void
-DoPI(
-    char *pi,
-    FILE *fp
-)
-{
-    char	buf[250], **tok;
-    int		n;
-    Trans_t	*t;
-
-    buf[0] = '_';
-    strcpy(&buf[1], pi);
-    n = 2;
-    tok = Split(buf, &n, 0);
-    if ((t = FindTransByName(tok[0])) ||
-        (t = FindTransByName("_*"))) {
-	if (t->replace)   ProcesOutputSpec(t->replace, 0, fp, 1);
-	else {
-	    if (t->starttext) ProcesOutputSpec(t->starttext, 0, fp, 1);
-	    if (t->ignore != IGN_DATA)	/* skip data nodes? */
-		if (n > 1) OutputString(tok[1], fp, 1);
-	    if (t->endtext)   ProcesOutputSpec(t->endtext, 0, fp, 1);
-	}
-	if (t->message)   ProcesOutputSpec(t->message, 0, stderr, 0);
-    }
-    else {
-	/* If not found, just print the PI in square brackets, along
-	 * with a warning message. */
-	fprintf(fp, "[%s]", pi);
-	if (warnings) fprintf(stderr, "Warning: Unrecognized PI: [%s]\n", pi);
-    }
-}
-
-/* ______________________________________________________________________ */
-/*  Set and increment variables, as appropriate, if the transpec says to.
- *  Arguments:
- *	Pointer to translation spec for current element.
- */
-
-static void
-set_and_increment(
-    Trans_t	*t,
-    Element_t	*e
-)
-{
-    Mapping_t	*m;
-    int		i, inc, n;
-    char	*cp, buf[50];
-    char	ebuf[5000];
-
-    /* set/reset variables */
-    if (t->set_var) {
-	for (m=t->set_var->maps,i=0; i<t->set_var->n_used; i++)	{
-	    ExpandVariables(m[i].sval, ebuf, e);	/* do some expansion */
-	    SetMappingNV(Variables, m[i].name, ebuf);
-    	}
-    }
-
-    /* increment counters */
-    if (t->incr_var) {
-	for (m=t->incr_var->maps,i=0; i<t->incr_var->n_used; i++) {
-	    cp = FindMappingVal(Variables, m[i].name);
-	    /* if not set at all, set to 1 */
-	    if (!cp) SetMappingNV(Variables, m[i].name, "1");
-	    else {
-		if (isdigit(*cp) || (*cp == '-' && isdigit(cp[1]))) {
-		    n = atoi(cp);
-		    if (m[i].sval && isdigit(*m[i].sval)) inc = atoi(m[i].sval);
-		    else inc = 1;
-		    sprintf(buf, "%d", (n + inc));
-		    SetMappingNV(Variables, m[i].name, buf);
-		} else
-		if (!*(cp+1) && isalpha(*cp))	{
-		    buf[0] = *cp + 1;
-		    buf[1] = 0;
-		    SetMappingNV(Variables, m[i].name, buf);
-		}
-	    }
-	}
-    }
-}
-
-/* ______________________________________________________________________ */
-/*  Translate one element.
- *  Arguments:
- *	Pointer to element under consideration.
- *	FILE pointer to where to write output.
- *	Pointer to translation spec for current element, or null.
- */
-void
-TransElement(
-    Element_t	*e,
-    FILE	*fp,
-    Trans_t	*t
-)
-{
-    int		i;
-
-    if (!t) t = ((e && e->trans) ? e->trans : &NullTrans);
-
-    /* see if we should quit. */
-    if (t->quit) {
-	fprintf(stderr, "Quitting at location:\n");
-	PrintLocation(e, fp);
-	fprintf(stderr, "%s\n", t->quit);
-	exit(1);
-    }
-
-    /* stack this element */
-    PushTranspecName(t);
-
-    /* See if we want to replace subtree (do text, don't descend subtree) */
-    if (t->replace) {
-	ProcesOutputSpec(t->replace, e, fp, 1);
-	if (t->message) ProcesOutputSpec(t->message, e, stderr, 0);
-	set_and_increment(t, e);	/* adjust variables, if appropriate */
-	PopTranspecName();
-	return;
-    }
-
-    if (t->starttext) ProcesOutputSpec(t->starttext, e, fp, 1);
-    if (t->message)   ProcesOutputSpec(t->message, e, stderr, 0);
-
-    /* Process data for this node and descend child elements/nodes. */
-    if (t->ignore != IGN_ALL) {
-	/* Is there a "generated" node at the front of this one? */
-	if (e->gen_trans[0]) {
-	    Trans_t *tp;
-	    if ((tp = FindTranByID(e->gen_trans[0]))) {
-		if (tp->starttext) ProcesOutputSpec(tp->starttext, e, fp, 1);
-		if (tp->message)   ProcesOutputSpec(tp->message, e, stderr, 0);
-		if (tp->endtext)   ProcesOutputSpec(tp->endtext, e, fp, 1);
-	    }
-	}
-	/* Loop thruthe "nodes", whether data, child element, or PI. */
-	for (i=0; i<e->ncont; i++) {
-	    if (IsContElem(e,i)) {
-		if (t->ignore != IGN_CHILDREN)	/* skip child nodes? */
-		    TransElement(ContElem(e,i), fp, NULL);
-	    }
-	    else if (IsContData(e,i)) {
-		if (t->ignore != IGN_DATA)	/* skip data nodes? */
-		    DoData(ContData(e,i), fp, t);
-	    }
-	    else if (IsContPI(e,i))
-		DoPI(e->cont[i].ch.data, fp);
-	}
-	/* Is there a "generated" node at the end of this one? */
-	if (e->gen_trans[1]) {
-	    Trans_t *tp;
-	    if ((tp = FindTranByID(e->gen_trans[1]))) {
-		if (tp->starttext) ProcesOutputSpec(tp->starttext, e, fp, 1);
-		if (tp->message)   ProcesOutputSpec(tp->message, e, stderr, 0);
-		if (tp->endtext)   ProcesOutputSpec(tp->endtext, e, fp, 1);
-	    }
-	}
-    }
-
-    set_and_increment(t, e);		/* adjust variables, if appropriate */
-
-    if (t->endtext) ProcesOutputSpec(t->endtext, e, fp, 1);
-
-    e->processed = 1;
-    PopTranspecName();
-}
-
-/* ______________________________________________________________________ */
-/* Check if element matches specified relationship, and, if it does, perform
- * action on either current element or matching element (depends on flag).
- *  Arguments:
- *	Pointer to element under consideration.
- *	Pointer to relationship name.
- *	Pointer to related element name (GI).
- *	Pointer to action to take (string - turned into an int).
- *	FILE pointer to where to write output.
- *	Flag saying whether to do action on related element (RA_Related)
- *		or on current element (RA_Current).
- *  Return:
- *	Bool, saying whether (1) or not (0) relationship matches.
- */
-
-int
-CheckRelation(
-    Element_t	*e,
-    char	*relname,	/* relationship name */
-    char	*related,	/* related element */
-    char	*actname,	/* action to take */
-    FILE	*fp,
-    RelAction_t	flag
-)
-{
-    Element_t	*ep;
-    Relation_t	r;
-
-    if ((r = FindRelByName(relname)) == REL_Unknown) return 0;
-    if (!(ep=QRelation(e, related, r)))	return 0;
-
-    if (!actname) return 1;		/* no action - return what we found */
-
-    switch (flag) {
-	case RA_Related:	TranTByAction(ep, actname, fp);	break;
-	case RA_Current:	TranTByAction(e, actname, fp);	break;
-    }
-    return 1;
-}
-
-/* ______________________________________________________________________ */
-/* Perform action given by a SpecID on the given element.
- *  Arguments:
- *	Pointer to element under consideration.
- *	SpecID of action to perform.
- *	FILE pointer to where to write output.
- *
- */
-void
-TranByAction(
-    Element_t	*e,
-    int		n,
-    FILE	*fp
-)
-{
-    Trans_t	*t;
-
-    t = FindTranByID(n);
-    if (!t) {
-	fprintf(stderr, "Could not find named action for %d.\n", n);
-	return;
-    }
-    TransElement(e, fp, t);
-}
-
-/* ______________________________________________________________________ */
-/* Perhaps perform action given by a SpecID on the given element.
- *  Arguments:
- *	Pointer to element under consideration.
- *	SpecID of action to perform.  Unlike TranByAction, this is the argument
- *	  as it occurred in the transpec (ASCII) and may end with the letter
- *	  "t" which means that the transpec mustpass criteria selection.
- *	FILE pointer to where to write output.
- */
-void
-TranTByAction(
-    Element_t	*e,
-    char	*strn,
-    FILE	*fp
-)
-{
-    int n;
-    Trans_t	*t;
-
-    n = atoi(strn);
-    if ( strn[strlen(strn)-1] != 't' )	{
-    	t = FindTranByID(n);
-    	if (!t) {
-	    fprintf(stderr, "Could not find named action for %d.\n", n);
-	    return;
-    	}
-    } else	{
-	t = FindTrans(e, n);
-	if ( !t || !t->my_id )
-	    return;
-    }
-    TransElement(e, fp, t);
-}
-
-/* ______________________________________________________________________ */
-/*  push the name of a transpec (the new active one) onto the stack
- *  Arguments:
- *	transpec name
- */
-
-void
-PushTranspecName(
-    Trans_t     *t 
-)
-{
-    if ( tsStacki >= MAXTRANSPECDEPTH )	{
-	fprintf(stderr, "Transpec stack overflow (%d)\n", MAXTRANSPECDEPTH);
-	exit(1);
-    }
-    tsStack[++tsStacki] = t;
-}
-
-/* ______________________________________________________________________ */
-/*  pop the top name of a transpec off the stack
- */
-
-void
-PopTranspecName(
-    Trans_t     *t 
-)
-{
-    if ( tsStacki < 0 )	{
-    	fprintf(stderr, "Transpec stack underflow\n");
-	exit(1);
-    }
-    tsStacki--;
-}
--- a/usr/src/cmd/man/src/util/instant.src/translate.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
- *  Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
- *  All rights reserved.
- */
-/*
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
- * Copyright (c) 1994  
- * Open Software Foundation, Inc. 
- *  
- * Permission is hereby granted to use, copy, modify and freely distribute 
- * the software in this file and its documentation for any purpose without 
- * fee, provided that the above copyright notice appears in all copies and 
- * that both the copyright notice and this permission notice appear in 
- * supporting documentation.  Further, provided that the name of Open 
- * Software Foundation, Inc. ("OSF") not be used in advertising or 
- * publicity pertaining to distribution of the software without prior 
- * written permission from OSF.  OSF makes no representations about the 
- * suitability of this software for any purpose.  It is provided "as is" 
- * without express or implied warranty. 
- */
-/*
- * Copyright (c) 1996 X Consortium
- * Copyright (c) 1995, 1996 Dalrymple Consulting
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- * 
- * Except as contained in this notice, the names of the X Consortium and
- * Dalrymple Consulting shall not be used in advertising or otherwise to
- * promote the sale, use or other dealings in this Software without prior
- * written authorization.
- */
-/* ________________________________________________________________________
- *
- *  Program to manipulate SGML instances.
- *
- *  These are data definitions for the "translating" portion of the program.
- *
- * ________________________________________________________________________
- */
-
-#ifdef STORAGE
-#ifndef lint
-static char *tr_h_RCSid =
-  "$Header: /usr/src/docbook-to-man/Instant/RCS/translate.h,v 1.5 1998/06/29 04:13:40 fld Exp $";
-#endif
-#endif
-
-#define L_CURLY		'{'
-#define R_CURLY		'}'
-
-/* things to ignore when processing an element */
-#define IGN_NONE	0
-#define IGN_ALL		1
-#define IGN_DATA	2
-#define IGN_CHILDREN	3
-
-/* for CheckRelation() */
-typedef enum { RA_Current, RA_Related } RelAction_t;
-
-typedef struct {
-    char	*name;		/* attribute name string */
-    char	*val;		/* attribute value string */
-    regexp	*rex;		/* attribute value reg expr (compiled) */
-} AttPair_t;
-
-typedef struct _Trans {
-    /* criteria */
-    char	*gi;		/* element name of tag under consideration */
-    char	**gilist;	/* list of element names (multiple gi's) */
-    char	*context;	/* context in tree - looking depth levels up */
-    regexp	*context_re;	/* tree heirarchy looking depth levels up */
-    int		depth;		/* number of levels to look up the tree */
-    AttPair_t	*attpair;	/* attr name-value pairs */
-    int		nattpairs;	/* number of name-value pairs */
-    char	*parent;	/* GI has this element as parent */
-    int		nth_child;	/* GI is Nth child of this of parent element */
-    char	*content;	/* element has this string in content */
-    regexp	*content_re;	/* content reg expr (compiled) */
-    char	*pattrset;	/* is this attr set (any value) in parent? */
-    char	*var_name;	/* variable name */
-    char	*var_value;	/* variable value */
-    char	*var_RE_name;	/* variable name (for VarREValue) */
-    regexp	*var_RE_value;	/* variable value (compiled, for VarREValue) */
-    Map_t	*relations;	/* various relations to check */
-
-    /* actions */
-    char	*starttext;	/* string to output at the start tag */
-    char	*endtext;	/* string to output at the end tag */
-    char	*replace;	/* string to replace this subtree with */
-    char	*message;	/* message for stderr, if element encountered */
-    int		ignore;		/* flag - ignore content or data of element? */
-    int		verbatim;	/* flag - pass content verbatim or do cmap? */
-    char	*var_reset;
-    char	*increment;	/* increment these variables */
-    Map_t	*set_var;	/* set these variables */
-    Map_t	*substitute;	/* substitute text as specified */
-    Map_t	*incr_var;	/* increment these variables */
-    char	*quit;		/* print message and exit */
-    char	*trim;		/* characters to trim from pass-through */
-
-    /* pointers and bookkeeping */
-    int		my_id;		/* unique (hopefully) ID of this transpec */
-    int		use_id;		/* use transpec whose ID is this */
-    struct _Trans *use_trans;	/* pointer to other transpec */
-    struct _Trans *next;	/* linked list */
-    int		lineno;		/* line number of end of transpec */
-} Trans_t;
-
-#ifdef def
-#undef def
-#endif
-#ifdef STORAGE
-# define def
-#else
-# define def    extern
-#endif
-
-def Trans_t	*TrSpecs;
-def Mapping_t	*CharMap;
-def int		nCharMap;
-
-/* prototypes for things defined in translate.c */
-int	CheckRelation(Element_t *, char *, char *, char *, FILE*, RelAction_t);
-Trans_t	*FindTrans(Element_t *, int);
-Trans_t	*FindTransByName(char *);
-Trans_t	*FindTransByID(int);
-void	PrepTranspecs(Element_t *);
-void	ProcessOneSpec(char *, Element_t *, FILE *, int);
-void	TransElement(Element_t *, FILE *, Trans_t *);
-void	TranByAction(Element_t *, int, FILE *);
-void	TranTByAction(Element_t *, char *, FILE *);
-void	PushTranspecName(Trans_t *);
-void	PopTranspecName();
-
-/* prototypes for things defined in tranvar.c */
-void	ExpandSpecialVar(char *, Element_t *, FILE *, int);
-
-/* prototypes for things defined in tables.c */
-void	OSFtable(Element_t *, FILE *, char **, int);
-
-/* ______________________________________________________________________ */
-
--- a/usr/src/cmd/man/src/util/instant.src/tranvar.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,769 +0,0 @@
-/*
- *  Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
- *  All rights reserved.
- */
-/*
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
- * Copyright (c) 1994  
- * Open Software Foundation, Inc. 
- *  
- * Permission is hereby granted to use, copy, modify and freely distribute 
- * the software in this file and its documentation for any purpose without 
- * fee, provided that the above copyright notice appears in all copies and 
- * that both the copyright notice and this permission notice appear in 
- * supporting documentation.  Further, provided that the name of Open 
- * Software Foundation, Inc. ("OSF") not be used in advertising or 
- * publicity pertaining to distribution of the software without prior 
- * written permission from OSF.  OSF makes no representations about the 
- * suitability of this software for any purpose.  It is provided "as is" 
- * without express or implied warranty. 
- */
-/*
- * Copyright (c) 1996 X Consortium
- * Copyright (c) 1995, 1996 Dalrymple Consulting
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- * 
- * Except as contained in this notice, the names of the X Consortium and
- * Dalrymple Consulting shall not be used in advertising or otherwise to
- * promote the sale, use or other dealings in this Software without prior
- * written authorization.
- */
-/* ________________________________________________________________________
- *
- *  instant - a program to manipulate SGML instances.
- *
- *  This module is for handling "special variables".  These act a lot like
- *  procedure calls
- * ________________________________________________________________________
- */
-
-#ifndef lint
-static char *RCSid =
-  "$Header: /usr/src/docbook-to-man/Instant/RCS/tranvar.c,v 1.8 1998/06/28 18:53:40 fld Exp $";
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <memory.h>
-#include <sys/types.h>
-#include <errno.h>
-
-#include <tptregexp.h>
-#include "general.h"
-#include "translate.h"
-
-static char	**idrefs;		/* list of IDREF att names to follow */
-static char	*def_idrefs[] = { "LINKEND", "LINKENDS", "IDREF", 0 };
-static char	*each_A = 0;	/* last seen _eachatt */
-static char	*each_C = 0;	/* last seen _eachcon */
-
-/* forward references */
-void	ChaseIDRefs(Element_t *, char *, char *, FILE *);
-void	Find(Element_t *, int, char **, FILE *);
-void	GetIDREFnames();
-
-/* ______________________________________________________________________ */
-/*  Handle "special" variable - read file, run command, do action, etc.
- *  Arguments:
- *	Name of special variable to expand.
- *	Pointer to element under consideration.
- *	FILE pointer to where to write output.
- *	Flag saying whether to track the character position we're on
- *	  (passed to OutputString).
- */
-
-void
-ExpandSpecialVar(
-    char	*name,
-    Element_t	*e,
-    FILE	*fp,
-    int		track_pos
-)
-{
-    FILE	*infile;
-    char	buf[LINESIZE], *cp, *cp2, *atval;
-    char	**tok;
-    int		ntok, n, i, actioni;
-    char	*action, *action1;
-    Element_t	*ep;
-    Trans_t	*t, *tt;
-    Entity_t	*entp;
-
-    /* Run a command.
-     * Format: _! command args ... */
-    if (*name == '!') {
-	name++;
-	if ((infile = popen(name, "r"))) {
-	    while (fgets(buf, LINESIZE, infile)) fputs(buf, fp);
-	    pclose(infile);
-	    fflush(fp);
-	}
-	else {
-	    fprintf(stderr, "Could not start program '%s': %s",
-		name, strerror(errno));
-	}
-	return;
-    }
-
-    /* See if caller wants one of the tokens from _eachatt or _eachcon.
-     * If so, output it and return.  (Yes, I admit that this is a hack.)
-     */
-    if (*name == 'A' && name[1] == EOS && each_A) {
-	OutputString(each_A, fp, track_pos);
-	return;
-    }
-    if (*name == 'C' && name[1] == EOS && each_C) {
-	OutputString(each_C, fp, track_pos);
-	return;
-    }
-
-    ntok = 0;
-    tok = Split(name, &ntok, 0);
-
-    /* Include another file.
-     * Format: _include filename */
-    if (StrEq(tok[0], "include")) {
-	name = tok[1];
-	if (ntok > 1 ) {
-	    if ((infile=OpenFile(name)) == NULL) {
-		sprintf(buf, "Can not open included file '%s'", name);
-		perror(buf);
-		return;
-	    }
-	    while (fgets(buf, LINESIZE, infile)) fputs(buf, fp);
-	    fclose(infile);
-	}
-	else fprintf(stderr, "No file name specified for include\n");
-	return;
-    }
-
-    /* Print location (nearest title, line no, path).
-     * Format: _location */
-    else if (StrEq(tok[0], "location")) {
-	PrintLocation(e, fp);
-    }
-
-    /* Print path to this element.
-     * Format: _path */
-    else if (StrEq(tok[0], "path")) {
-	(void)FindElementPath(e, buf);
-	OutputString(buf, fp, track_pos);
-    }
-
-    /* Print name of this element (gi).
-     * Format: _gi [M|L|U] */
-    else if (StrEq(tok[0], "gi")) {
-	strcpy(buf, e->gi);
-	if (ntok >= 2) {
-	    if (*tok[1] == 'L' || *tok[1] == 'l' ||
-		*tok[1] == 'M' || *tok[1] == 'm') {
-		for (cp=buf; *cp; cp++)
-		    if (isupper(*cp)) *cp = tolower(*cp);
-	    }
-	    if (*tok[1] == 'M' || *tok[1] == 'm')
-		if (islower(buf[0])) buf[0] = toupper(buf[0]);
-	}
-	OutputString(buf, fp, track_pos);
-    }
-
-    /* Print filename of this element's associated external entity.
-     * Format: _filename */
-    else if (StrEq(tok[0], "filename")) {
-    	if ( ntok >= 2 )	{
-	    cp2 = FindAttValByName(e, tok[1]);
-	    if ( ! (entp = FindEntity(cp2)) )	{
-	    	fprintf(stderr, "Can't find entity named %s (via _filename expression):\n", tok[1]);
-	    	PrintLocation(e, stderr);
-	    	return;
-	    }
-	    OutputString(entp->sysid, fp, track_pos);
-	} else	{
-	    if (!e->entity) {
-	    	fprintf(stderr, "Expected ext entity (element %s) - no ->entity (internal error? bug?):\n", e->gi);
-	    	PrintLocation(e, stderr);
-	    	return;
-	    }
-	    if (!e->entity->fname) {
-	    	fprintf(stderr, "Expected filename (element %s) - no ->entity->fname (internal error? bug?):\n", e->gi);
-	    	PrintLocation(e, stderr);
-	    	return;
-	    }
-	    OutputString(e->entity->sysid, fp, track_pos);
-	}
-    }
-
-    /* Value of parent's attribute, by attr name.
-     * Format: _pattr attname */
-    else if (StrEq(tok[0], "pattr")) {
-	ep = e->parent;
-	if (!ep) {
-	    fprintf(stderr, "Element does not have a parent:\n");
-	    PrintLocation(ep, stderr);
-	    return;
-	}
-	if ((atval = FindAttValByName(ep, tok[1]))) {
-	    OutputString(atval, fp, track_pos);
-	}
-    }
-
-    /* Use an action, given transpec's SID.
-     * Format: _action action */
-    else if (StrEq(tok[0], "action")) {
-	TranTByAction(e, tok[1], fp);
-    }
-
-    /* Number of child elements of this element.
-     * Format: _nchild */
-    else if (StrEq(tok[0], "nchild")) {
-	if (ntok > 1) {
-	    for (n=0,i=0; i<e->necont; i++)
-		if (StrEq(e->econt[i]->gi, tok[1])) n++;
-	}
-	else n = e->necont;
-	sprintf(buf, "%d", n);
-	OutputString(buf, fp, track_pos);
-    }
-
-    /* number of 1st child's child elements (grandchildren from first child).
-     * Format: _n1gchild */
-    else if (StrEq(tok[0], "n1gchild")) {
-	if (e->necont) {
-	    sprintf(buf, "%d", e->econt[0]->necont);
-	    OutputString(buf, fp, track_pos);
-	}
-    }
-
-    /* Chase this element's pointers until we hit the named GI.
-     * Do the action if it matches.
-     * Format: _chasetogi gi action */
-    else if (StrEq(tok[0], "chasetogi")) {
-	if (ntok < 3) {
-	    fprintf(stderr, "Error: Not enough args for _chasetogi.\n");
-	    return;
-	}
-	actioni = atoi(tok[2]);
-	if (actioni) ChaseIDRefs(e, tok[1], tok[2], fp);
-    }
-
-    /* Follow link to element pointed to, then do action.
-     * Format: _followlink [attname] action. */
-    else if (StrEq(tok[0], "followlink")) {
-	char **s;
-	if (ntok > 2) {
-	    if ((atval = FindAttValByName(e, tok[1]))) {
-		if ((ep = FindElemByID(atval))) {
-		    TranTByAction(ep, tok[2], fp);
-		    return;
-		}
-	    }
-	    else fprintf(stderr, "Error: Did not find attr: %s.\n", tok[1]);
-	    return;
-	}
-	GetIDREFnames();
-	for (s=idrefs; *s; s++) {
-	    /* is this IDREF attr set? */
-	    if ((atval = FindAttValByName(e, *s))) {
-		ntok = 0;
-		tok = Split(atval, &ntok, S_STRDUP);
-		/* we'll follow the first one... */
-		if ((ep = FindElemByID(tok[0]))) {
-		    TranTByAction(ep, tok[1], fp);
-		    return;
-		}
-		else fprintf(stderr, "Error: Can not find elem for ID: %s.\n",
-			tok[0]);
-	    }
-	}
-	fprintf(stderr, "Error: Element does not have IDREF attribute set:\n");
-	PrintLocation(e, stderr);
-	return;
-    }
-
-    /* Starting at this element, decend tree (in-order), finding GI.
-     * Do the action if it matches.
-     * Format: _find args ... */
-    else if (StrEq(tok[0], "find")) {
-	Find(e, ntok, tok, fp);
-    }
-
-    /* Starting at this element's parent, decend tree (in-order), finding GI.
-     * Do the action if it matches.
-     * Format: _pfind args ... */
-    else if (StrEq(tok[0], "pfind")) {
-	Find(e->parent ? e->parent : e, ntok, tok, fp);
-    }
-
-    /* Content is supposed to be a list of IDREFs.  Follow each, doing action.
-     * If 2 actions are specified, use 1st for the 1st ID, 2nd for the rest.
-     * Format: _namelist action [action2] */
-    else if (StrEq(tok[0], "namelist")) {
-	int id;
-	action1 = tok[1];
-	if (ntok > 2) action = tok[2];
-	else action = action1;
-	for (i=0; i<e->ndcont; i++) {
-	    n = 0;
-	    tok = Split(e->dcont[i], &n, S_STRDUP);
-	    for (id=0; id<n; id++) {
-		if (fold_case)
-		    for (cp=tok[id]; *cp; cp++)
-			if (islower(*cp)) *cp = toupper(*cp);
-		if ((e = FindElemByID(tok[id]))) {
-		    if (id) TranTByAction(e, action, fp);
-		    else TranTByAction(e, action1, fp);	/* first one */
-		}
-		else fprintf(stderr, "Error: Can not find ID: %s.\n", tok[id]);
-	    }
-	}
-    }
-
-    /* For each word in the element's content, do action.
-     * Format: _eachcon action [action] */
-    else if (StrEq(tok[0], "eachcon")) {
-	int id;
-	action1 = tok[1];
-	if (ntok > 3) action = tok[2];
-	else action = action1;
-	for (i=0; i<e->ndcont; i++) {
-	    n = 0;
-	    tok = Split(e->dcont[i], &n, S_STRDUP|S_ALVEC);
-	    for (id=0; id<n; id++) {
-		each_C = tok[id];
-		TranTByAction(e, action, fp);
-	    }
-	    free(*tok);
-	}
-    }
-    /* For each word in the given attribute's value, do action.
-     * Format: _eachatt attname action [action] */
-    else if (StrEq(tok[0], "eachatt")) {
-	int id;
-	action1 = tok[2];
-	if (ntok > 3) action = tok[3];
-	else action = action1;
-	if ((atval = FindAttValByName(e, tok[1]))) {
-	    n = 0;
-	    tok = Split(atval, &n, S_STRDUP|S_ALVEC);
-	    for (id=0; id<n; id++) {
-		each_A = tok[id];
-		if (id) TranTByAction(e, action, fp);
-		else TranTByAction(e, action1, fp);	/* first one */
-	    }
-	    free(*tok);
-	}
-    }
-
-    /* Do action on this element if element has [relationship] with gi.
-     * Format: _relation relationship gi action [action] */
-    else if (StrEq(tok[0], "relation")) {
-	if (ntok >= 4) {
-	    if (!CheckRelation(e, tok[1], tok[2], tok[3], fp, RA_Current)) {
-		/* action not done, see if alt action specified */
-		if (ntok >= 5)
-		    TranTByAction(e, tok[4], fp);
-	    }
-	}
-    }
-
-    /* Do action on followed element if element has [relationship] with gi.
-     * Format: _followrel relationship gi action */
-    else if (StrEq(tok[0], "followrel")) {
-	if (ntok >= 4)
-	    (void)CheckRelation(e, tok[1], tok[2], tok[3], fp, RA_Related);
-    }
-
-    /* Find element with matching ID and do action.  If action not specified,
-     * choose the right one appropriate for its context.
-     * Format: _id id [action] */
-    else if (StrEq(tok[0], "id")) {
-	if ((ep = FindElemByID(tok[1]))) {
-	    if (ntok > 2) TranTByAction(ep, tok[2], fp);
-	    else {
-		t = FindTrans(ep, 0);
-		TransElement(ep, fp, t);
-	    }
-	}
-    }
-
-    /* Set variable to value.
-     * Format: _set name value */
-    else if (StrEq(tok[0], "set")) {
-	SetMappingNV(Variables, tok[1], tok[2]);
-    }
-
-    /* Do action if variable is set, optionally to value.
-     * If not set, do nothing.
-     * Format: _isset varname [value] action 
-     * Format: _issete varname [value] action  --  expands value */
-    else if (StrEq(tok[0], "isset") || StrEq(tok[0], "issete")) {
-	if ((cp = FindMappingVal(Variables, tok[1]))) {
-	    if (ntok == 3) TranTByAction(e, tok[2], fp);
-	    else
-	    if (ntok > 3)	{
-	    	if ( StrEq(tok[0], "issete") )	{
-			ExpandVariables(tok[2], buf, e);
-			cp2 = buf;
-		} else
-			cp2 = tok[2];
-	    	if ( !strcmp(cp, cp2))
-			TranTByAction(e, tok[3], fp);
-	    }
-	}
-    }
-
-    /* Insert a node into the tree at start/end, pointing to action to perform.
-     * Format: _insertnode S|E action */
-    else if (StrEq(tok[0], "insertnode")) {
-	actioni = atoi(tok[2]);
-	if (*tok[1] == 'S') e->gen_trans[0] = actioni;
-	else if (*tok[1] == 'E') e->gen_trans[1] = actioni;
-    }
-
-    /* Do an CALS DTD table spec for TeX or troff.  Looks through attributes
-     * and determines what to output. "check" means to check consistency,
-     * and print error messages.
-     * This is (hopefully) the only hard-coded part of instant.
-     *
-     * This was originally written for the OSF DTDs and recoded by FLD for
-     * CALS tables (since no one will ever use the OSF tables).  Although
-     * TeX was addressed first, it seems that a fresh approach was required,
-     * and so, tbl is the first to be really *fixed*.  Once tbl is stable,
-     * and there is a need for TeX again, that part will be recoded.
-     *
-     * *Obsolete* form (viz, for TeX):
-     *    Format: _calstable [clear|check|tex]
-     *			  [cellstart|cellend|rowstart|rowend|top|bottom]
-     *
-     * New, good form:
-     *
-     *    Format: _calstable [tbl]
-     *			  [tablestart|tableend|tablegroup|tablefoot|rowstart|
-     *			   rowend|entrystart|entryend]
-     */
-
-    else if (StrEq(tok[0], "calstable")) {
-	CALStable(e, fp, tok, ntok);
-    }
-
-    /* Do action if element's attr is set, optionally to value.
-     * If not set, do nothing.
-     * Format: _attval att [value] action */
-    else if (StrEq(tok[0], "attval")) {
-	if ((atval = FindAttValByName(e, tok[1]))) {
-	    if (ntok == 3) TranTByAction(e, tok[2], fp);
-	    else if (ntok > 3 && !strcmp(atval, tok[2]))
-		TranTByAction(e, tok[3], fp);
-	}
-    }
-    /* Same thing, but look at parent */
-    else if (StrEq(tok[0], "pattval")) {
-	if ((atval = FindAttValByName(e->parent, tok[1]))) {
-	    if (ntok == 3) {
-		TranTByAction(e, tok[2], fp);
-	    }
-	    if (ntok > 3 && !strcmp(atval, tok[2]))
-		TranTByAction(e, tok[3], fp);
-	}
-    }
-
-    /* Print each attribute and value for the current element, hopefully
-     * in a legal sgml form: <elem-name att1="value1" att2="value2:> .
-     * Format: _allatts */
-    else if (StrEq(tok[0], "allatts")) {
-	for (i=0; i<e->natts; i++) {
-	    if (i != 0) putc(' ', fp);
-	    fputs(e->atts[i].name, fp);
-	    fputs("=\"", fp);
-	    fputs(e->atts[i].sval, fp);
-	    putc('"', fp);
-	}
-    }
-
-    /* Print the element's input filename, and optionally, the line number.
-     * Format: _infile [line] */
-    else if (StrEq(tok[0], "infile")) {
-	if (e->infile) {
-	    if (ntok > 1 && !strcmp(tok[1], "root")) {
-		strcpy(buf, e->infile);
-		if ((cp = strrchr(buf, '.'))) *cp = EOS;
-		fputs(buf, fp);
-	    }
-	    else {
-		fputs(e->infile, fp);
-		if (ntok > 1 && !strcmp(tok[1], "line"))
-		    fprintf(fp, " %d", e->lineno);
-	    }
-	    return;
-	}
-	else fputs("input-file??", fp);
-    }
-
-    /* Get value of an environement variable */
-    else if (StrEq(tok[0], "env")) {
-	if (ntok > 1 && (cp = getenv(tok[1]))) {
-	    OutputString(cp, fp, track_pos);
-	}
-    }
-
-    /* Something unknown */
-    else {
-	fprintf(stderr, "Unknown special variable: %s\n", tok[0]);
-	tt = e->trans;
-	if (tt && tt->lineno)
-	    fprintf(stderr, "Used in transpec, line %d\n", tt->lineno);
-    }
-    return;
-}
-
-/* ______________________________________________________________________ */
-/*  return the value for the special variables _A (last processed _eachatt)
- *  and _C (last processed _eachcon)
- */
-
-char *
-Get_A_C_value(char * name)
-{
-    if ( !strcmp(name, "each_A") )	{
-	if ( each_A )	{
-	    return each_A;
-	} else	{
-	    fprintf(stderr, "Requested value for unset _A variable\n");
-	}
-    } else
-    if ( !strcmp(name, "each_C") )	{
-	if ( each_C )	{
-	    return each_C;
-	} else	{
-	    fprintf(stderr, "Requested value for unset _C variable\n");
-	}
-    } else	{
-	fprintf(stderr, "Requested value for unknown special variable '%s'\n",
-				name);
-    }
-    return "";
-}
-
-/* ______________________________________________________________________ */
-/*  Chase IDs until we find an element whose GI matches.  We also check
- *  child element names, not just the names of elements directly pointed
- *  at (by IDREF attributes).
- */
-
-void
-GetIDREFnames()
-{
-    char	*cp;
-
-    if (!idrefs) {
-	/* did user or transpec set the variable */
-	if ((cp = FindMappingVal(Variables, "link_atts")))
-	    idrefs = Split(cp, 0, S_STRDUP|S_ALVEC);
-	else
-	    idrefs = def_idrefs;
-    }
-}
-
-/* ______________________________________________________________________ */
-/*  Chase ID references - follow IDREF(s) attributes until we find
- *  a GI named 'gi', then perform given action on that GI.
- *  Arguments:
- *	Pointer to element under consideration.
- *	Name of GI we're looking for.
- *	Spec ID of action to take.
- *	FILE pointer to where to write output.
- */
-void
-ChaseIDRefs(
-    Element_t	*e,
-    char	*gi,
-    char *	action,
-    FILE	*fp
-)
-{
-    int		ntok, i, ei;
-    char	**tok, **s, *atval;
-
-    /* First, see if we got what we came for with this element */
-    if (StrEq(e->gi, gi)) {
-	TranTByAction(e, action, fp);
-	return;
-    }
-    GetIDREFnames();
-
-    /* loop for each attribute of type IDREF(s) */
-    for (s=idrefs; *s; s++) {
-	/* is this IDREF attr set? */
-	if ((atval = FindAttValByName(e, *s))) {
-	    ntok = 0;
-	    tok = Split(atval, &ntok, 0);
-	    for (i=0; i<ntok; i++) {
-		/* get element pointed to */
-		if ((e = FindElemByID(tok[i]))) {
-		    /* OK, we found a matching GI name */
-		    if (StrEq(e->gi, gi)) {
-			/* process using named action */
-			TranTByAction(e, action, fp);
-			return;
-		    }
-		    else {
-			/* this elem itself did not match, try its children */
-			for (ei=0; ei<e->necont; ei++) {
-			    if (StrEq(e->econt[ei]->gi, gi)) {
-				TranTByAction(e->econt[ei], action, fp);
-				return;
-			    }
-			}
-			/* try this elem's IDREF attributes */
-			ChaseIDRefs(e, gi, action, fp);
-			return;
-		    }
-		}
-		else {
-		    /* should not happen, since parser checks ID/IDREFs */
-		    fprintf(stderr, "Error: Could not find ID %s\n", atval);
-		}
-	    }
-	}
-    }
-    /* if the pointers didn't lead to the GI, give error */
-    if (!s)
-	fprintf(stderr, "Error: Could not find '%s'\n", gi);
-}
-
-/* ______________________________________________________________________ */
-
-/* state to pass to recursive routines - so we don't have to use
- * global variables. */
-typedef struct {
-    char	*gi;
-    char	*gi2;
-    char	action[10];
-    Element_t	*elem;
-    FILE	*fp;
-} Descent_t;
-
-static void
-tr_find_gi(
-    Element_t	*e,
-    Descent_t	*ds
-)
-{
-    if (StrEq(ds->gi, e->gi))
-	if (ds->action[0]) TranTByAction(e, ds->action, ds->fp);
-}
-
-static void
-tr_find_gipar(
-    Element_t	*e,
-    Descent_t	*ds
-)
-{
-    if (StrEq(ds->gi, e->gi) && e->parent &&
-		StrEq(ds->gi2, e->parent->gi))
-	if (ds->action[0]) TranTByAction(e, ds->action, ds->fp);
-}
-
-static void
-tr_find_attr(
-    Element_t	*e,
-    Descent_t	*ds
-)
-{
-    char	*atval;
-    if ((atval = FindAttValByName(e, ds->gi)) && StrEq(ds->gi2, atval))
-	TranTByAction(e, ds->action, ds->fp);
-}
-
-static void
-tr_find_parent(
-    Element_t	*e,
-    Descent_t	*ds
-)
-{
-    if (QRelation(e, ds->gi, REL_Parent)) {
-	if (ds->action[0]) TranTByAction(e, ds->action, ds->fp);
-    }
-}
-
-/* ______________________________________________________________________ */
-/*  Descend tree, finding elements that match criteria, then perform
- *  given action.
- *  Arguments:
- *	Pointer to element under consideration.
- *	Number of tokens in special variable.
- *	Vector of tokens in special variable (eg, "find" "gi" "TITLE")
- *	FILE pointer to where to write output.
- */
-void
-Find(
-    Element_t	*e,
-    int		ac,
-    char	**av,
-    FILE	*fp
-)
-{
-    Descent_t	DS;		/* state passed to recursive routine */
-
-    memset(&DS, 0, sizeof(Descent_t));
-    DS.elem = e;
-    DS.fp   = fp;
-
-    /* see if we should start at the top of instance tree */
-    if (StrEq(av[1], "top")) {
-	av++;
-	ac--;
-	e = DocTree;
-    }
-    if (ac < 4) {
-	fprintf(stderr, "Bad '_find' specification - missing args.\n");
-	return;
-    }
-    /* Find elem whose GI is av[2] */
-    if (StrEq(av[1], "gi")) {
-	DS.gi     = av[2];
-	strcpy(DS.action, av[3]);
-	DescendTree(e, tr_find_gi, 0, 0, &DS);
-    }
-    /* Find elem whose GI is av[2] and whose parent GI is av[3] */
-    else if (StrEq(av[1], "gi-parent")) {
-	DS.gi     = av[2];
-	DS.gi2    = av[3];
-	strcpy(DS.action, av[4]);
-	DescendTree(e, tr_find_gipar, 0, 0, &DS);
-    }
-    /* Find elem whose parent GI is av[2] */
-    else if (StrEq(av[0], "parent")) {
-	DS.gi     = av[2];
-	strcpy(DS.action, av[3]);
-	DescendTree(e, tr_find_parent, 0, 0, &DS);
-    }
-    /* Find elem whose attribute av[2] has value av[3] */
-    else if (StrEq(av[0], "attr")) {
-	DS.gi     = av[2];
-	DS.gi2    = av[3];
-	strcpy(DS.action, av[4]);
-	DescendTree(e, tr_find_attr, 0, 0, &DS);
-    }
-}
-
-/* ______________________________________________________________________ */
-
--- a/usr/src/cmd/man/src/util/instant.src/util.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1152 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- *  Copyright 1993 Open Software Foundation, Inc., Cambridge, Massachusetts.
- *  All rights reserved.
- */
-
-/*
- * Copyright 1994
- * Open Software Foundation, Inc.
- *
- * Permission is hereby granted to use, copy, modify and freely distribute
- * the software in this file and its documentation for any purpose without
- * fee, provided that the above copyright notice appears in all copies and
- * that both the copyright notice and this permission notice appear in
- * supporting documentation.  Further, provided that the name of Open
- * Software Foundation, Inc. ("OSF") not be used in advertising or
- * publicity pertaining to distribution of the software without prior
- * written permission from OSF.  OSF makes no representations about the
- * suitability of this software for any purpose.  It is provided "as is"
- * without express or implied warranty.
- */
-
-/*
- * Copyright 1996 X Consortium
- * Copyright 1995, 1996 Dalrymple Consulting
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the names of the X Consortium and
- * Dalrymple Consulting shall not be used in advertising or otherwise to
- * promote the sale, use or other dealings in this Software without prior
- * written authorization.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-/*
- * ________________________________________________________________________
- *
- *  General utility functions for 'instant' program.  These are used
- *  throughout the rest of the program.
- *
- *  Entry points for this module:
- *	Split(s, &n, flags)		split string into n tokens
- *	NewMap(slot_incr)		create a new mapping structure
- *	FindMapping(map, name)		find mapping by name; return mapping
- *	FindMappingVal(map, name)	find mapping by name; return value
- *	SetMapping(map, s)		set mapping based on string
- *	OpenFile(filename)		open file, looking in inst path
- *	FindElementPath(elem, s)	find path to element
- *	PrintLocation(ele, fp)		print location of element in tree
- *	NearestOlderElem(elem, name)	find prev elem up tree with name
- *	OutputString(s, fp, track_pos)	output string
- *	AddElemName(name)		add elem to list of known elements
- *	AddAttName(name)		add att name to list of known atts
- *	FindAttByName(elem, name)	find an elem's att by name
- *	FindContext(elem, lev, context)	find context of elem
- *	QRelation(elem, name, rel_flag)	find relation elem has to named elem
- *	DescendTree(elem, enter_f, leave_f, data_f, dp)	descend doc tree,
- *					calling functions for each elem/node
- * ________________________________________________________________________
- */
-
-#ifndef lint
-static char *RCSid =
-"$Header: /usr/local/src/docbook-to-man/\
-Instant/RCS/util.c,v 1.7 1998/12/14 05:06:24 fld Exp $";
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <memory.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/file.h>
-/*
- * CSS don't have it and I don't see where it's used
- * #include <values.h>
- */
-
-#include "general.h"
-
-/* forward references */
-static char	*LookupSDATA(char *);
-
-/* ______________________________________________________________________ */
-/*
- *  "Split" a string into tokens.  Given a string that has space-separated
- *  (space/tab) tokens, return a pointer to an array of pointers to the
- *  tokens.  Like what the shell does with *argv[].  The array can be is
- *  static or allocated.  Space can be allocated for string, or allocated.
- *  Arguments:
- *	Pointer to string to pick apart.
- *	Pointer to max number of tokens to find; actual number found is
- *	  returned. If 0 or null pointer, use a 'sane' maximum number (hard-
- *	  code). If more tokens than the number specified, make last token be
- *	  a single string composed of the rest of the tokens (includes spaces).
- *	Flag. Bit 0 says whether to make a copy of input string (since we'll
- *	  clobber parts of it).  To free the string, use the pointer to
- *	  the first token returned by the function (or *ret_value).
- *	  Bit 1 says whether to allocate the vector itself.  If not, use
- *	  (and return) a static vector.
- *  Return:
- *	Pointer to the provided string (for convenience of caller).
- */
-
-char **
-Split(
-	char	*s,		/* input string */
-	int		*ntok,	/* # of tokens desired (input)/found (return) */
-	int		flag	/* dup string? allocate a vector? */
-)
-{
-	int		quote, maxnt, i = 0;
-	int		n_alloc;
-	char	**tokens;
-	static char	*local_tokens[100];
-
-	/*
-	 * Figure max number of tokens (maxnt) to find.
-	 * 0 means find them all.
-	 */
-	if (ntok == NULL)
-		maxnt = 100;
-	else {
-		if (*ntok <= 0 || *ntok > 100)
-			maxnt = 100;	/* arbitrary size */
-		else maxnt = *ntok;
-		*ntok = 0;
-	}
-
-	if (!s)
-		return (0);			/* no string */
-
-	/* Point to 1st token (there may be initial space) */
-	while (*s && IsWhite(*s)) s++;	/* skip initial space, if any */
-	if (*s == EOS)
-		return (0);		/* none found? */
-
-	/* See if caller wants us to copy the input string. */
-	if (flag & S_STRDUP) s = strdup(s);
-
-	/* See if caller wants us to allocate the returned vector. */
-	if (flag & S_ALVEC) {
-		n_alloc = 20;
-		Malloc(n_alloc, tokens, char *);
-		/*
-		 * if caller did not specify max tokens to find,
-		 *  set to more than there will possibly ever be
-		 */
-		if (!ntok || !(*ntok)) maxnt = 10000;
-	} else tokens = local_tokens;
-
-	i = 0;			/* index into vector */
-	tokens[0] = s;		/* s already points to 1st token */
-	while (i < maxnt) {
-		quote = (*s == '\007');
-		if (quote)	s++;	/* skip quote */
-		tokens[i] = s;	/* point vector member at start of token */
-		i++;
-		/* If we allocated vector, see if we need more space. */
-		if ((flag & S_ALVEC) && i >= n_alloc) {
-			n_alloc += 20;
-			Realloc(n_alloc, tokens, char *);
-		}
-		if (i >= maxnt) break;	/* is this the last one? */
-		while (*s && (quote || !IsWhite(*s)) &&
-			(!quote || (*s != '\007'))) s++;
-			/* skip past end of token */
-		if (*s && quote)	{
-			*s = EOS;
-			s++;
-		}
-		if (*s == EOS) break;	/* at end of input string? */
-		if (*s) *s++ = EOS;		/* terminate token string */
-		while (*s && IsWhite(*s)) s++;	/* skip space - to next token */
-	}
-	if (ntok) *ntok = i; /* return number of tokens found */
-	tokens[i] = 0;		/* null-terminate vector */
-	return (tokens);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  Mapping routines.  These are used for name-value pairs, like attributes,
- *  variables, and counters.  A "Map" is an opaque data structure used
- *  internally by these routines.  The caller gets one when creating a new
- *  map, then hands it to other routines that need it.  A "Mapping" is a
- *  name/value pair.  The user has access to this.
- *  Here's some sample usage:
- *
- *	Map *V;
- *	V = NewMap(20);
- *	SetMappingNV(V, "home", "/users/bowe");
- *	printf("Home: %s\n", FindMappingVal(V, "home");
- */
-
-/*
- *  Allocate new map structure.  Only done once for each map/variable list.
- *  Arg:
- *	Number of initial slots to allocate space for.  This is also the
- *	"chunk size" - how much to allocate when we use up the given space.
- *  Return:
- *	Pointer to the (opaque) map structure. (User passes this to other
- *	mapping routines.)
- */
-Map_t *
-NewMap(
-	int		slot_increment
-)
-{
-	Map_t	*M;
-	Calloc(1, M, Map_t);
-	/*
-	 * should really do the memset's in Calloc/Malloc/Realloc
-	 * macros, but that will have to wait until time permits -CSS
-	 */
-	memset((char *)M, 0, sizeof (Map_t));
-	if (!slot_increment) slot_increment = 1;
-	M->slot_incr = slot_increment;
-	return (M);
-}
-
-/*
- *  Given pointer to a Map and a name, find the mapping.
- *  Arguments:
- *	Pointer to map structure (as returned by NewMap().
- *	Variable name.
- *  Return:
- *	Pointer to the matching mapping structure, or null if not found.
- */
-Mapping_t *
-FindMapping(
-	Map_t	*M,
-	char	*name
-)
-{
-	int		i;
-	Mapping_t	*m;
-
-	if (!M || M->n_used == 0)
-		return (NULL);
-	for (m = M->maps, i = 0; i < M->n_used; i++)
-	if (m[i].name[0] == name[0] &&
-		(strcmp(m[i].name, name) == 0))
-		return (&m[i]);
-	return (NULL);
-
-}
-
-/*
- *  Given pointer to a Map and a name, return string value of the mapping.
- *  Arguments:
- *	Pointer to map structure (as returned by NewMap().
- *	Variable name.
- *  Return:
- *	Pointer to the value (string), or null if not found.
- */
-char *
-FindMappingVal(
-	Map_t	*M,
-	char	*name
-)
-{
-	Mapping_t	*m;
-
-	if ((strcmp(name, "each_A") == 0) ||
-		(strcmp(name, "each_C") == 0)) {
-		return (Get_A_C_value(name));
-	}
-
-	/*
-	 * if (!M || M->n_used == 0) return NULL;
-	 * if ((m = FindMapping(M, name))) return m->sval;
-	 * return (NULL);
-	 */
-	if (!M || M->n_used == 0) {
-		return (NULL);
-	}
-	if ((m = FindMapping(M, name))) {
-		return (m->sval);
-	}
-	return (NULL);
-
-}
-
-/*
- *  Set a mapping/variable in Map M.  Input string is a name-value pair where
- *  there is some amount of space after the name.  The correct mapping is done.
- *  Arguments:
- *	Pointer to map structure (as returned by NewMap().
- *	Pointer to variable name (string).
- *	Pointer to variable value (string).
- */
-void
-SetMappingNV(
-	Map_t	*M,
-	char	*name,
-	char	*value
-)
-{
-	FILE	*pp;
-	char	buf[LINESIZE], *cp, *s;
-	int		i;
-	Mapping_t	*m;
-	Mapping_t	*xx;
-
-	/* First, look to see if it's a "well-known" variable. */
-	if (strcmp(name, "verbose") == 0) {
-		verbose   = atoi(value); return;
-	}
-	if (strcmp(name, "warnings") == 0) {
-		warnings  = atoi(value); return;
-	}
-	if (strcmp(name, "foldcase") == 0) {
-		fold_case = atoi(value); return;
-	}
-
-	m = FindMapping(M, name); /* find existing mapping (if set) */
-
-	/* OK, we have a string mapping */
-	if (m) {	/* exists - just replace value */
-	free(m->sval);
-	if (value) m->sval = strdup(value);
-	else m->sval = NULL;
-	} else {
-	if (name) {		/* just in case */
-	    /* Need more slots for mapping structures?  Allocate in clumps. */
-	    if (M->n_used == 0) {
-		M->n_alloc = M->slot_incr;
-		Malloc(M->n_alloc, M->maps, Mapping_t);
-	    } else
-			if (M->n_used >= M->n_alloc) {
-				M->n_alloc += M->slot_incr;
-				Realloc(M->n_alloc, M->maps, Mapping_t);
-			}
-
-			m = &M->maps[M->n_used];
-			M->n_used++;
-			m->name = strdup(name);
-			if (value) m->sval = strdup(value);
-				else m->sval = NULL;
-		}
-	}
-
-	if (value) {
-		/*
-		 * See if the value is a command to run.  If so, run the command
-		 * and replace the value with the output.
-		 */
-		s = value;
-		if (*s == '!') {
-			s++;				/* point to command */
-			if ((pp = popen(s, "r"))) {
-				/* run cmd, read its output */
-				i = 0;
-				cp = buf;
-				while (fgets(cp, LINESIZE-i, pp)) {
-					i += strlen(cp);
-					cp = &buf[i];
-					if (i >= LINESIZE) {
-						fprintf(stderr,
-							"Prog execution of "
-							"variable '%s' too "
-							"long.\n", m->name);
-						break;
-					}
-				}
-				free(m->sval);
-				stripNL(buf);
-				m->sval = strdup(buf);
-				pclose(pp);
-			} else {
-				sprintf(buf, "Could not start program '%s'", s);
-				perror(buf);
-			}
-		}
-	}
-}
-
-/*
- *  Separate name and value from input string, then pass to SetMappingNV.
- *  Arguments:
- *	Pointer to map structure (as returned by NewMap().
- *	Pointer to variable name and value (string), in form "name value".
- */
-void
-SetMapping(
-	Map_t	*M,
-	char	*s
-)
-{
-	char	buf[LINESIZE];
-	char	*name, *val;
-
-	if (!M) {
-		fprintf(stderr, "SetMapping: Map not initialized.\n");
-		return;
-	}
-	strcpy(buf, s);
-	name = val = buf;
-	while (*val && !IsWhite(*val)) val++;	/* point past end of name */
-	if (*val) {
-		*val++ = EOS;				/* terminate name */
-		while (*val && IsWhite(*val)) val++;	/* point to value */
-	}
-	if (name) SetMappingNV(M, name, val);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  Opens a file for reading.  If not found in current directory, try
- *  lib directories (from TPT_LIB env variable, or -l option).
- *  Arguments:
- *	Filename (string).
- *  Return:
- *	FILE pointer to open file, or null if it not found or can't open.
- */
-
-FILE *
-OpenFile(
-	char	*filename
-)
-{
-	FILE	*fp;
-	char	buf[LINESIZE];
-	int		i;
-	static char	**libdirs;
-	static int	nlibdirs = -1;
-
-	if ((fp = fopen(filename, "r")))
-		return (fp);
-
-	if (*filename == '/')
-		return (NULL);		/* full path specified? */
-
-	if (nlibdirs < 0) {
-	char *cp, *s;
-	if (tpt_lib) {
-	    s = strdup(tpt_lib);
-	    for (cp = s; *cp; cp++)
-			if (*cp == ':')
-				*cp = ' ';
-	    nlibdirs = 0;
-	    libdirs = Split(s, &nlibdirs, S_ALVEC);
-	} else
-		nlibdirs = 0;
-	}
-	for (i = 0; i < nlibdirs; i++) {
-		sprintf(buf, "%s/%s", libdirs[i], filename);
-		if ((fp = fopen(buf, "r")))
-			return (fp);
-	}
-	return (NULL);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  This will find the path to an tag.  The format is the:
- *	tag1(n1):tag2(n2):tag3
- *  where the tags are going down the tree and the numbers indicate which
- *  child (the first is numbered 1) the next tag is.
- *  Returns pointer to the string just written to (so you can use this
- *  function as a printf arg).
- *  Arguments:
- *	Pointer to element under consideration.
- *	String to write path into (provided by caller).
- *  Return:
- *	Pointer to the provided string (for convenience of caller).
- */
-char *
-FindElementPath(
-	Element_t	*e,
-	char	*s
-)
-{
-	Element_t	*ep;
-	int		i, e_path[MAX_DEPTH];
-	char	*cp;
-
-	/* Move up the tree, noting "birth order" of each element encountered */
-	for (ep = e; ep; ep = ep->parent)
-		e_path[ep->depth-1] = ep->my_eorder;
-	/* Move down the tree, printing the element names to the string. */
-	for (cp = s, i = 0, ep = DocTree; i < e->depth;
-		ep = ep->econt[e_path[i]], i++) {
-		sprintf(cp, "%s(%d) ", ep->gi, e_path[i]);
-		cp += strlen(cp);
-	}
-	sprintf(cp, "%s", e->gi);
-	return (s);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  Print some location info about a tag.  Helps user locate error.
- *  Messages are indented 2 spaces (convention for multi-line messages).
- *  Arguments:
- *	Pointer to element under consideration.
- *	FILE pointer of where to print.
- */
-
-void
-PrintLocation(
-	Element_t	*e,
-	FILE	*fp
-)
-{
-	char	*s, buf[LINESIZE];
-
-	if (!e || !fp)
-		return;
-	fprintf(fp, "  Path: %s\n", FindElementPath(e, buf));
-	if ((s = NearestOlderElem(e, "TITLE")))
-		fprintf(fp, "  Position hint: TITLE='%s'\n", s);
-	if (e->lineno) {
-		if (e->infile)
-			fprintf(fp, "  At or near instance file: %s, "
-				"line: %d\n", e->infile, e->lineno);
-		else
-			fprintf(fp, "  At or near instance line: "
-				"%d\n", e->lineno);
-	}
-	if (e->id)
-		fprintf(fp, "  ID: %s\n", e->id);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  Finds the data part of the nearest "older" tag (up the tree, and
- *  preceding) whose tag name matches the argument, or "TITLE", if null.
- *  Returns a pointer to the first chunk of character data.
- *  Arguments:
- *	Pointer to element under consideration.
- *	Name (GI) of element we'll return data from.
- *  Return:
- *	Pointer to that element's data content.
- */
-char *
-NearestOlderElem(
-	Element_t	*e,
-	char	*name
-)
-{
-	int		i;
-	Element_t	*ep;
-
-	if (!e)
-		return (0);
-	if (!name) name = "TITLE";			/* useful default */
-
-	for (; e->parent; e = e->parent)		/* move up tree */
-		for (i = 0; i <= e->my_eorder; i++) {
-			/* check preceding sibs */
-			ep = e->parent;
-			if (strcmp(name, ep->econt[i]->gi) == 0)
-				return ep->econt[i]->ndcont ?
-			ep->econt[i]->dcont[0] : "-empty-";
-		}
-
-	return (NULL);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  Expands escaped strings in the input buffer (things like tabs, newlines,
- *  octal characters - using C style escapes) and outputs buffer to specified
- *  fp.  The hat/anchor character forces that position to appear at the
- *  beginning of a line.  The cursor position is kept track of (optionally)
- *  so that this can be done.
- *  Arguments:
- *	Pointer to element under consideration.
- *	FILE pointer of where to print.
- *	Flag saying whether or not to keep track of our position in the output
- *	  stream. (We want to when writing to a file, but not for stderr.)
- */
-
-void
-OutputString(
-	char	*s,
-	FILE	*fp,
-	int		track_pos
-)
-{
-	int		i;
-	char	c, *sdata, *cp;
-	char	saved_c, *saved_cp;
-	static int	char_pos;	/* remembers our character position */
-
-	if (!fp)
-		return;
-	if (!s) s = "";		/* no string - go to start of line */
-
-	for (; *s; s++) {
-		if (*s == '\\') {
-			s++;
-			if (track_pos) char_pos++;
-			switch (*s) {
-				default:	c = *s; break;
-
-				case 's':	c = ' '; break;
-
-				case 't':	c = TAB; break;
-
-				case 'n':	c = NL;
-					char_pos = 0; break;
-
-				case 'r':	c = CR;
-					char_pos = 0; break;
-
-				case '0': case '1': case '2': case '3':
-				case '4': case '5': case '6': case '7':
-					/* for octal numbers (C style) */
-					/* of the form \012 */
-					c = *s - '0';
-					for (i = 1, s++; ((*s >= '0') &&
-						(*s <= '7') &&
-						(i <= 2)); s++, i++)
-						c = (c << 3) + (*s - '0');
-					s--;
-					break;
-
-				case '|':		/* SDATA */
-					s++;		/* point past \| */
-					sdata = s;
-					/* find matching/closing \| */
-					cp = s;
-					while (*cp && *cp != '\\' &&
-						cp[1] != '|') cp++;
-					if (!*cp) break;
-
-					saved_cp = cp;
-					saved_c = *saved_cp;
-					*cp = EOS; /* terminate sdata string */
-					cp++;
-					s = cp;	/* s now points to | */
-
-					cp = LookupSDATA(sdata);
-					if (cp) OutputString(cp, fp, track_pos);
-					else {
-						/* not found - output sdata */
-						/* thing in brackets */
-						putc('[', fp);
-						fputs(sdata, fp);
-						putc(']', fp);
-					}
-
-					*saved_cp = saved_c;
-
-					c = 0;
-					break;
-			}
-		} else { /* not escaped - just pass the character */
-	    c = *s;
-		/*
-		 * If caller wants us to track position, see if it's an anchor
-		 * (ie, align at a newline).
-		 */
-			if (track_pos) {
-				if (c == ANCHOR) {
-					/*
-					 * If we're already at the start of
-					 * a line, don't do another newline.
-					 */
-					if (char_pos != 0) c = NL;
-					else c = 0;
-				} else
-					char_pos++;
-				if (c == NL) char_pos = 0;
-			} else if (c == ANCHOR) c = NL;
-		}
-		if (c) putc(c, fp);
-	}
-}
-
-/* ______________________________________________________________________ */
-/*
- * Figure out value of SDATA entity.
- * We rememeber lookup hits in a "cache" (a shorter list), and look in
- * cache before general list.  Typically there will be LOTS of entries
- * in the general list and only a handful in the hit list.  Often, if an
- * entity is used once, it'll be used again.
- *  Arguments:
- *	Pointer to SDATA entity token in ESIS.
- *  Return:
- *	Mapped value of the SDATA entity.
- */
-
-static char *
-LookupSDATA(
-	char	*s
-)
-{
-	char	*v;
-	static Map_t *Hits;		/* remember lookup hits */
-
-	/* If we have a hit list, check it. */
-	if (Hits) {
-		if ((v = FindMappingVal(Hits, s)))
-			return (v);
-	}
-
-	v = FindMappingVal(SDATAmap, s);
-
-	/* If mapping found, remember it, then return it. */
-	if ((v = FindMappingVal(SDATAmap, s))) {
-		if (!Hits) Hits = NewMap(IMS_sdatacache);
-		SetMappingNV(Hits, s, v);
-		return (v);
-	}
-
-	fprintf(stderr, "Error: Could not find SDATA substitution '%s'.\n", s);
-	return (NULL);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  Add tag 'name' of length 'len' to list of tag names (if not there).
- *  This is a list of null-terminated strings so that we don't have to
- *  keep using the name length.
- *  Arguments:
- *	Pointer to element name (GI) to remember.
- *  Return:
- *	Pointer to the SAVED element name (GI).
- */
-
-char *
-AddElemName(
-	char	*name
-)
-{
-	int		i;
-	static int	n_alloc = 0;	/* number of slots allocated so far */
-
-	/* See if it's already in the list. */
-	for (i = 0; i < nUsedElem; i++)
-		if (UsedElem[i][0] == name[0] &&
-			(strcmp(UsedElem[i], name) == 0))
-			return (UsedElem[i]);
-
-	/*
-	 * Allocate slots in blocks of N, so we don't have to call malloc
-	 * so many times.
-	 */
-	if (n_alloc == 0) {
-		n_alloc = IMS_elemnames;
-		Calloc(n_alloc, UsedElem, char *);
-	} else if (nUsedElem >= n_alloc) {
-		n_alloc += IMS_elemnames;
-		Realloc(n_alloc, UsedElem, char *);
-	}
-	UsedElem[nUsedElem] = strdup(name);
-	return (UsedElem[nUsedElem++]);
-}
-/* ______________________________________________________________________ */
-/*
- *  Add attrib name to list of attrib names (if not there).
- *  This is a list of null-terminated strings so that we don't have to
- *  keep using the name length.
- *  Arguments:
- *	Pointer to attr name to remember.
- *  Return:
- *	Pointer to the SAVED attr name.
- */
-
-char *
-AddAttName(
-	char	*name
-)
-{
-	int		i;
-	static int	n_alloc = 0;	/* number of slots allocated so far */
-
-	/* See if it's already in the list. */
-	for (i = 0; i < nUsedAtt; i++)
-	if (UsedAtt[i][0] == name[0] && (strcmp(UsedAtt[i], name) == 0))
-	    return (UsedAtt[i]);
-
-	/*
-	 * Allocate slots in blocks of N, so we don't have to call malloc
-	 * so many times.
-	 */
-	if (n_alloc == 0) {
-		n_alloc = IMS_attnames;
-		Calloc(n_alloc, UsedAtt, char *);
-	} else
-		if (nUsedAtt >= n_alloc) {
-			n_alloc += IMS_attnames;
-			Realloc(n_alloc, UsedAtt, char *);
-		}
-	UsedAtt[nUsedAtt] = strdup(name);
-	return (UsedAtt[nUsedAtt++]);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  Find an element's attribute value given element pointer and attr name.
- *  Typical use:
- *	a = FindAttByName("TYPE", t);
- *	do something with a->val;
- *  Arguments:
- *	Pointer to element under consideration.
- *	Pointer to attribute name.
- *  Return:
- *	Pointer to the value of the attribute.
- */
-
-/*
- * Mapping_t *
- * FindAttByName(
- *   Element_t	*e,
- *   char	*name
- * )
- * {
- *     int		i;
- *     if (!e) return NULL;
- *     for (i=0; i<e->natts; i++)
- * 	if (e->atts[i].name[0] == name[0] && !strcmp(e->atts[i].name, name))
- * 		return &(e->atts[i]);
- *     return NULL;
- * }
- */
-
-char *
-FindAttValByName(
-	Element_t	*e,
-	char	*name
-)
-{
-	int		i;
-	if (!e)
-		return (NULL);
-	for (i = 0; i < e->natts; i++)
-		if (e->atts[i].name[0] == name[0] &&
-			(strcmp(e->atts[i].name, name) == 0))
-			return (e->atts[i].sval);
-	return (NULL);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  Find context of a tag, 'levels' levels up the tree.
- *  Space for string is passed by caller.
- *  Arguments:
- *	Pointer to element under consideration.
- *	Number of levels to look up tree.
- *	String to write path into (provided by caller).
- *  Return:
- *	Pointer to the provided string (for convenience of caller).
- */
-
-char *
-FindContext(
-	Element_t	*e,
-	int		levels,
-	char	*con
-)
-{
-	char	*s;
-	Element_t	*ep;
-	int		i;
-
-	if (!e)
-		return (NULL);
-	s = con;
-	*s = EOS;
-	for (i = 0, ep = e->parent; ep && levels;
-		ep = ep->parent, i++, levels--) {
-		if (i != 0) *s++ = ' ';
-		strcpy(s, ep->gi);
-		s += strlen(s);
-	}
-	return (con);
-}
-
-
-/* ______________________________________________________________________ */
-/*
- *  Tests relationship (specified by argument/flag) between given element
- *  (structure pointer) and named element.
- *  Returns pointer to matching tag if found, null otherwise.
- *  Arguments:
- *	Pointer to element under consideration.
- *	Pointer to name of elem whose relationsip we are trying to determine.
- *	Relationship we are testing.
- *  Return:
- *	Pointer to the provided string (for convenience of caller).
- */
-
-Element_t *
-QRelation(
-	Element_t	*e,
-	char	*s,
-	Relation_t	rel
-)
-{
-	int		i;
-	Element_t	*ep;
-
-	if (!e)
-		return (0);
-
-	/* we'll call e the "given element" */
-	switch (rel) {
-	case REL_Parent:
-	    if (!e->parent || !e->parent->gi)
-			return (0);
-	    if (strcmp(e->parent->gi, s) == 0)
-			return (e->parent);
-	    break;
-	case REL_Child:
-	    for (i = 0; i < e->necont; i++)
-		if (strcmp(s, e->econt[i]->gi) == 0)
-			return (e->econt[i]);
-	    break;
-	case REL_Ancestor:
-	    if (!e->parent || !e->parent->gi)
-			return (0);
-	    for (ep = e->parent; ep; ep = ep->parent)
-		if (strcmp(ep->gi, s) == 0)
-			return (ep);
-	    break;
-	case REL_Descendant:
-	    if (e->necont == 0)
-			return (0);
-	    /* check immediate children first */
-	    for (i = 0; i < e->necont; i++)
-		if (strcmp(s, e->econt[i]->gi) == 0)
-			return (e->econt[i]);
-	    /* then children's children (recursively) */
-	    for (i = 0; i < e->necont; i++)
-		if ((ep = QRelation(e->econt[i], s, REL_Descendant)))
-		    return (ep);
-	    break;
-	case REL_Sibling:
-	    if (!e->parent)
-			return (0);
-	    ep = e->parent;
-	    for (i = 0; i < ep->necont; i++)
-		if ((strcmp(s, ep->econt[i]->gi) == 0) &&
-			i != e->my_eorder)
-		    return (ep->econt[i]);
-	    break;
-	case REL_Preceding:
-	    if (!e->parent || e->my_eorder == 0)
-			return (0);
-	    ep = e->parent;
-	    for (i = 0; i < e->my_eorder; i++)
-		if (strcmp(s, ep->econt[i]->gi) == 0)
-			return (ep->econt[i]);
-	    break;
-	case REL_ImmPreceding:
-	    if (!e->parent || e->my_eorder == 0)
-			return (0);
-	    ep = e->parent->econt[e->my_eorder-1];
-	    if (strcmp(s, ep->gi) == 0)
-			return (ep);
-	    break;
-	case REL_Following:
-	    if (!e->parent || e->my_eorder == (e->parent->necont-1))
-		return (0);	/* last? */
-	    ep = e->parent;
-	    for (i = (e->my_eorder+1); i < ep->necont; i++)
-		if (strcmp(s, ep->econt[i]->gi) == 0)
-			return (ep->econt[i]);
-	    break;
-	case REL_ImmFollowing:
-	    if (!e->parent || e->my_eorder == (e->parent->necont-1))
-		return (0);	/* last? */
-	    ep = e->parent->econt[e->my_eorder+1];
-	    if (strcmp(s, ep->gi) == 0)
-			return (ep);
-	    break;
-	case REL_Cousin:
-	    if (!e->parent)
-			return (0);
-	    /* Now, see if element's parent has that thing as a child. */
-	    return (QRelation(e->parent, s, REL_Child));
-	    break;
-	case REL_None:
-	case REL_Unknown:
-	    fprintf(stderr, "You can not query 'REL_None' or 'REL_Unknown'.\n");
-	    break;
-	}
-	return (NULL);
-}
-
-/*
- *  Given a relationship name (string), determine enum symbol for it.
- *  Arguments:
- *	Pointer to relationship name.
- *  Return:
- *	Relation_t enum.
- */
-Relation_t
-FindRelByName(
-	char	*relname
-)
-{
-	if (strcmp(relname, "?") == 0) {
-		fprintf(stderr, "Supported query/relationships %s\n%s.\n",
-			"child, parent, ancestor, descendant,",
-			"sibling, sibling+, sibling+1, sibling-, sibling-1");
-		return (REL_None);
-	} else if (StrEq(relname, "child"))
-			return (REL_Child);
-	else if (StrEq(relname, "parent"))
-		return (REL_Parent);
-	else if (StrEq(relname, "ancestor"))
-		return (REL_Ancestor);
-	else if (StrEq(relname, "descendant"))
-		return (REL_Descendant);
-	else if (StrEq(relname, "sibling"))
-		return (REL_Sibling);
-	else if (StrEq(relname, "sibling-"))
-		return (REL_Preceding);
-	else if (StrEq(relname, "sibling-1"))
-		return (REL_ImmPreceding);
-	else if (StrEq(relname, "sibling+"))
-		return (REL_Following);
-	else if (StrEq(relname, "sibling+1"))
-		return (REL_ImmFollowing);
-	else if (StrEq(relname, "cousin"))
-		return (REL_Cousin);
-	else fprintf(stderr, "Unknown relationship: %s\n", relname);
-		return (REL_Unknown);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  This will descend the element tree in-order. (enter_f)() is called
- *  upon entering the node.  Then all children (data and child elements)
- *  are operated on, calling either DescendTree() with a pointer to
- *  the child element or (data_f)() for each non-element child node.
- *  Before leaving the node (ascending), (leave_f)() is called.  enter_f
- *  and leave_f are passed a pointer to this node and data_f is passed
- *  a pointer to the data/content (which includes the data itself and
- *  type information).  dp is an opaque pointer to any data the caller
- *  wants to pass.
- *  Arguments:
- *	Pointer to element under consideration.
- *	Pointer to procedure to call when entering element.
- *	Pointer to procedure to call when leaving element.
- *	Pointer to procedure to call for each "chunk" of content data.
- *	Void data pointer, passed to the avobe 3 procedures.
- */
-
-void
-DescendTree(
-	Element_t	*e,
-	void	(*enter_f)(),
-	void	(*leave_f)(),
-	void	(*data_f)(),
-	void	*dp
-)
-{
-	int		i;
-	if (enter_f) (enter_f)(e, dp);
-	for (i = 0; i < e->ncont; i++) {
-	if (e->cont[i].type == CMD_OPEN)
-	    DescendTree(e->cont[i].ch.elem, enter_f, leave_f, data_f, dp);
-	else
-		if (data_f) (data_f)(&e->cont[i], dp);
-	}
-	if (leave_f) (leave_f)(e, dp);
-}
-
-/* ______________________________________________________________________ */
-/*
- *  Add element, 'e', whose ID is 'idval', to a list of IDs.
- *  This makes it easier to find an element by ID later.
- *  Arguments:
- *	Pointer to element under consideration.
- *	Element's ID attribute value (a string).
- */
-
-void
-AddID(
-	Element_t	*e,
-	char	*idval
-)
-{
-	static ID_t	*id_last;
-
-	if (!IDList) {
-		Malloc(1, id_last, ID_t);
-		IDList = id_last;
-	} else {
-		Malloc(1, id_last->next, ID_t);
-		id_last = id_last->next;
-	}
-	id_last->elem = e;
-	id_last->id   = idval;
-}
-
-/* ______________________________________________________________________ */
-/*
- *  Return pointer to element who's ID is given.
- *  Arguments:
- *	Element's ID attribute value (a string).
- *  Return:
- *	Pointer to element whose ID matches.
- */
-
-Element_t *
-FindElemByID(
-	char	*idval
-)
-{
-	ID_t	*id;
-	for (id = IDList; id; id = id->next)
-		if (id->id[0] == idval[0] && (strcmp(id->id, idval) == 0))
-			return (id->elem);
-	return (0);
-}
-
-/* ______________________________________________________________________ */
-
-#if !defined(linux) && !defined(sun)
-
-char *
-strerror(int number)
-{
-	char buf[100];
-
-	sprintf(buf, "error number %d\n", number);
-	perror(buf);
-}
-
-#endif
--- a/usr/src/cmd/man/src/util/iso-amsa.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOamsa PUBLIC
-       "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN">
-     %ISOamsa;
--->
-<!ENTITY cularr SDATA "[cularr]"--/curvearrowleft A: left curved arrow -->
-<!ENTITY curarr SDATA "[curarr]"--/curvearrowright A: rt curved arrow -->
-<!ENTITY dArr   SDATA "[dArr  ]"--/Downarrow A: down dbl arrow -->
-<!ENTITY darr2  SDATA "[darr2 ]"--/downdownarrows A: two down arrows -->
-<!ENTITY dharl  SDATA "[dharl ]"--/downleftharpoon A: dn harpoon-left -->
-<!ENTITY dharr  SDATA "[dharr ]"--/downrightharpoon A: down harpoon-rt -->
-<!ENTITY lAarr  SDATA "[lAarr ]"--/Lleftarrow A: left triple arrow -->
-<!ENTITY Larr   SDATA "[Larr  ]"--/twoheadleftarrow A:-->
-<!ENTITY larr2  SDATA "[larr2 ]"--/leftleftarrows A: two left arrows -->
-<!ENTITY larrhk SDATA "[larrhk]"--/hookleftarrow A: left arrow-hooked -->
-<!ENTITY larrlp SDATA "[larrlp]"--/looparrowleft A: left arrow-looped -->
-<!ENTITY larrtl SDATA "[larrtl]"--/leftarrowtail A: left arrow-tailed -->
-<!ENTITY lhard  SDATA "[lhard ]"--/leftharpoondown A: l harpoon-down -->
-<!ENTITY lharu  SDATA "[lharu ]"--/leftharpoonup A: left harpoon-up -->
-<!ENTITY hArr   SDATA "[hArr  ]"--/Leftrightarrow A: l&r dbl arrow -->
-<!ENTITY harr   SDATA "[harr  ]"--/leftrightarrow A: l&r arrow -->
-<!ENTITY lrarr2 SDATA "[lrarr2]"--/leftrightarrows A: l arr over r arr -->
-<!ENTITY rlarr2 SDATA "[rlarr2]"--/rightleftarrows A: r arr over l arr -->
-<!ENTITY harrw  SDATA "[harrw ]"--/leftrightsquigarrow A: l&r arr-wavy -->
-<!ENTITY rlhar2 SDATA "[rlhar2]"--/rightleftharpoons A: r harp over l -->
-<!ENTITY lrhar2 SDATA "[lrhar2]"--/leftrightharpoons A: l harp over r -->
-<!ENTITY lsh    SDATA "[lsh   ]"--/Lsh A:-->
-<!ENTITY map    SDATA "[map   ]"--/mapsto A:-->
-<!ENTITY mumap  SDATA "[mumap ]"--/multimap A:-->
-<!ENTITY nearr  SDATA "[nearr ]"--/nearrow A: NE pointing arrow -->
-<!ENTITY nlArr  SDATA "[nlArr ]"--/nLeftarrow A: not implied by -->
-<!ENTITY nlarr  SDATA "[nlarr ]"--/nleftarrow A: not left arrow -->
-<!ENTITY nhArr  SDATA "[nhArr ]"--/nLeftrightarrow A: not l&r dbl arr -->
-<!ENTITY nharr  SDATA "[nharr ]"--/nleftrightarrow A: not l&r arrow -->
-<!ENTITY nrarr  SDATA "[nrarr ]"--/nrightarrow A: not right arrow -->
-<!ENTITY nrArr  SDATA "[nrArr ]"--/nRightarrow A: not implies -->
-<!ENTITY nwarr  SDATA "[nwarr ]"--/nwarrow A: NW pointing arrow -->
-<!ENTITY olarr  SDATA "[olarr ]"--/circlearrowleft A: l arr in circle -->
-<!ENTITY orarr  SDATA "[orarr ]"--/circlearrowright A: r arr in circle -->
-<!ENTITY rAarr  SDATA "[rAarr ]"--/Rrightarrow A: right triple arrow -->
-<!ENTITY Rarr   SDATA "[Rarr  ]"--/twoheadrightarrow A:-->
-<!ENTITY rarr2  SDATA "[rarr2 ]"--/rightrightarrows A: two rt arrows -->
-<!ENTITY rarrhk SDATA "[rarrhk]"--/hookrightarrow A: rt arrow-hooked -->
-<!ENTITY rarrlp SDATA "[rarrlp]"--/looparrowright A: rt arrow-looped -->
-<!ENTITY rarrtl SDATA "[rarrtl]"--/rightarrowtail A: rt arrow-tailed -->
-<!ENTITY rarrw  SDATA "[rarrw ]"--/squigarrowright A: rt arrow-wavy -->
-<!ENTITY rhard  SDATA "[rhard ]"--/rightharpoondown A: rt harpoon-down -->
-<!ENTITY rharu  SDATA "[rharu ]"--/rightharpoonup A: rt harpoon-up -->
-<!ENTITY rsh    SDATA "[rsh   ]"--/Rsh A:-->
-<!ENTITY drarr  SDATA "[drarr ]"--/searrow A: downward rt arrow -->
-<!ENTITY dlarr  SDATA "[dlarr ]"--/swarrow A: downward l arrow -->
-<!ENTITY uArr   SDATA "[uArr  ]"--/Uparrow A: up dbl arrow -->
-<!ENTITY uarr2  SDATA "[uarr2 ]"--/upuparrows A: two up arrows -->
-<!ENTITY vArr   SDATA "[vArr  ]"--/Updownarrow A: up&down dbl arrow -->
-<!ENTITY varr   SDATA "[varr  ]"--/updownarrow A: up&down arrow -->
-<!ENTITY uharl  SDATA "[uharl ]"--/upleftharpoon A: up harpoon-left -->
-<!ENTITY uharr  SDATA "[uharr ]"--/uprightharpoon A: up harp-r-->
-<!ENTITY xlArr  SDATA "[xlArr ]"--/Longleftarrow A: long l dbl arrow -->
-<!ENTITY xhArr  SDATA "[xhArr ]"--/Longleftrightarrow A: long l&r dbl arr-->
-<!ENTITY xharr  SDATA "[xharr ]"--/longleftrightarrow A: long l&r arr -->
-<!ENTITY xrArr  SDATA "[xrArr ]"--/Longrightarrow A: long rt dbl arr -->
--- a/usr/src/cmd/man/src/util/iso-amsb.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOamsb PUBLIC
-       "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN">
-     %ISOamsb;
--->
-<!ENTITY amalg  SDATA "[amalg ]"--/amalg B: amalgamation or coproduct-->
-<!ENTITY Barwed SDATA "[Barwed]"--/doublebarwedge B: log and, dbl bar-->
-<!ENTITY barwed SDATA "[barwed]"--/barwedge B: logical and, bar above-->
-<!ENTITY Cap    SDATA "[Cap   ]"--/Cap /doublecap B: dbl intersection-->
-<!ENTITY Cup    SDATA "[Cup   ]"--/Cup /doublecup B: dbl union-->
-<!ENTITY cuvee  SDATA "[cuvee ]"--/curlyvee B: curly logical or-->
-<!ENTITY cuwed  SDATA "[cuwed ]"--/curlywedge B: curly logical and-->
-<!ENTITY diam   SDATA "[diam  ]"--/diamond B: open diamond-->
-<!ENTITY divonx SDATA "[divonx]"--/divideontimes B: division on times-->
-<!ENTITY intcal SDATA "[intcal]"--/intercal B: intercal-->
-<!ENTITY lthree SDATA "[lthree]"--/leftthreetimes B:-->
-<!ENTITY ltimes SDATA "[ltimes]"--/ltimes B: times sign, left closed-->
-<!ENTITY minusb SDATA "[minusb]"--/boxminus B: minus sign in box-->
-<!ENTITY oast   SDATA "[oast  ]"--/circledast B: asterisk in circle-->
-<!ENTITY ocir   SDATA "[ocir  ]"--/circledcirc B: open dot in circle-->
-<!ENTITY odash  SDATA "[odash ]"--/circleddash B: hyphen in circle-->
-<!ENTITY odot   SDATA "[odot  ]"--/odot B: middle dot in circle-->
-<!ENTITY ominus SDATA "[ominus]"--/ominus B: minus sign in circle-->
-<!ENTITY oplus  SDATA "[oplus ]"--/oplus B: plus sign in circle-->
-<!ENTITY osol   SDATA "[osol  ]"--/oslash B: solidus in circle-->
-<!ENTITY otimes SDATA "[otimes]"--/otimes B: multiply sign in circle-->
-<!ENTITY plusb  SDATA "[plusb ]"--/boxplus B: plus sign in box-->
-<!ENTITY plusdo SDATA "[plusdo]"--/dotplus B: plus sign, dot above-->
-<!ENTITY rthree SDATA "[rthree]"--/rightthreetimes B:-->
-<!ENTITY rtimes SDATA "[rtimes]"--/rtimes B: times sign, right closed-->
-<!ENTITY sdot   SDATA "[sdot  ]"--/cdot B: small middle dot-->
-<!ENTITY sdotb  SDATA "[sdotb ]"--/dotsquare /boxdot B: small dot in box-->
-<!ENTITY setmn  SDATA "[setmn ]"--/setminus B: reverse solidus-->
-<!ENTITY sqcap  SDATA "[sqcap ]"--/sqcap B: square intersection-->
-<!ENTITY sqcup  SDATA "[sqcup ]"--/sqcup B: square union-->
-<!ENTITY ssetmn SDATA "[ssetmn]"--/smallsetminus B: sm reverse solidus-->
-<!ENTITY sstarf SDATA "[sstarf]"--/star B: small star, filled-->
-<!ENTITY timesb SDATA "[timesb]"--/boxtimes B: multiply sign in box-->
-<!ENTITY top    SDATA "[top   ]"--/top B: inverted perpendicular-->
-<!ENTITY uplus  SDATA "[uplus ]"--/uplus B: plus sign in union-->
-<!ENTITY wreath SDATA "[wreath]"--/wr B: wreath product-->
-<!ENTITY xcirc  SDATA "[xcirc ]"--/bigcirc B: large circle-->
-<!ENTITY xdtri  SDATA "[xdtri ]"--/bigtriangledown B: big dn tri, open-->
-<!ENTITY xutri  SDATA "[xutri ]"--/bigtriangleup B: big up tri, open-->
-<!ENTITY coprod SDATA "[coprod]"--/coprod L: coproduct operator-->
-<!ENTITY prod   SDATA "[prod  ]"--/prod L: product operator-->
-<!ENTITY sum    SDATA "[sum   ]"--/sum L: summation operator-->
--- a/usr/src/cmd/man/src/util/iso-amsc.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOamsc PUBLIC
-       "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN">
-     %ISOamsc;
--->
-<!ENTITY rceil  SDATA "[rceil ]"--/rceil C: right ceiling-->
-<!ENTITY rfloor SDATA "[rfloor]"--/rfloor C: right floor-->
-<!ENTITY rpargt SDATA "[rpargt]"--/rightparengtr C: right paren, gt-->
-<!ENTITY urcorn SDATA "[urcorn]"--/urcorner C: upper right corner-->
-<!ENTITY drcorn SDATA "[drcorn]"--/lrcorner C: downward right corner-->
-<!ENTITY lceil  SDATA "[lceil ]"--/lceil O: left ceiling-->
-<!ENTITY lfloor SDATA "[lfloor]"--/lfloor O: left floor-->
-<!ENTITY lpargt SDATA "[lpargt]"--/leftparengtr O: left parenthesis, gt-->
-<!ENTITY ulcorn SDATA "[ulcorn]"--/ulcorner O: upper left corner-->
-<!ENTITY dlcorn SDATA "[dlcorn]"--/llcorner O: downward left corner-->
--- a/usr/src/cmd/man/src/util/iso-amsn.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOamsn PUBLIC
-       "ISO 8879:1986//ENTITIES
-        Added Math Symbols: Negated Relations//EN">
-     %ISOamsn;
--->
-<!ENTITY gnap   SDATA "[gnap  ]"--/gnapprox N: greater, not approximate-->
-<!ENTITY gne    SDATA "[gne   ]"--/gneq N: greater, not equals-->
-<!ENTITY gnE    SDATA "[gnE   ]"--/gneqq N: greater, not dbl equals-->
-<!ENTITY gnsim  SDATA "[gnsim ]"--/gnsim N: greater, not similar-->
-<!ENTITY gvnE   SDATA "[gvnE  ]"--/gvertneqq N: gt, vert, not dbl eq-->
-<!ENTITY lnap   SDATA "[lnap  ]"--/lnapprox N: less, not approximate-->
-<!ENTITY lnE    SDATA "[lnE   ]"--/lneqq N: less, not double equals-->
-<!ENTITY lne    SDATA "[lne   ]"--/lneq N: less, not equals-->
-<!ENTITY lnsim  SDATA "[lnsim ]"--/lnsim N: less, not similar-->
-<!ENTITY lvnE   SDATA "[lvnE  ]"--/lvertneqq N: less, vert, not dbl eq-->
-<!ENTITY nap    SDATA "[nap   ]"--/napprox N: not approximate-->
-<!ENTITY ncong  SDATA "[ncong ]"--/ncong N: not congruent with-->
-<!ENTITY nequiv SDATA "[nequiv]"--/nequiv N: not identical with-->
-<!ENTITY ngE    SDATA "[ngE   ]"--/ngeqq N: not greater, dbl equals-->
-<!ENTITY nge    SDATA "[nge   ]"--/ngeq N: not greater-than-or-equal-->
-<!ENTITY nges   SDATA "[nges  ]"--/ngeqslant N: not gt-or-eq, slanted-->
-<!ENTITY ngt    SDATA "[ngt   ]"--/ngtr N: not greater-than-->
-<!ENTITY nle    SDATA "[nle   ]"--/nleq N: not less-than-or-equal-->
-<!ENTITY nlE    SDATA "[nlE   ]"--/nleqq N: not less, dbl equals-->
-<!ENTITY nles   SDATA "[nles  ]"--/nleqslant N: not less-or-eq, slant-->
-<!ENTITY nlt    SDATA "[nlt   ]"--/nless N: not less-than-->
-<!ENTITY nltri  SDATA "[nltri ]"--/ntriangleleft N: not left triangle-->
-<!ENTITY nltrie SDATA "[nltrie]"--/ntrianglelefteq N: not l tri, eq-->
-<!ENTITY nmid   SDATA "[nmid  ]"--/nmid-->
-<!ENTITY npar   SDATA "[npar  ]"--/nparallel N: not parallel-->
-<!ENTITY npr    SDATA "[npr   ]"--/nprec N: not precedes-->
-<!ENTITY npre   SDATA "[npre  ]"--/npreceq N: not precedes, equals-->
-<!ENTITY nrtri  SDATA "[nrtri ]"--/ntriangleright N: not rt triangle-->
-<!ENTITY nrtrie SDATA "[nrtrie]"--/ntrianglerighteq N: not r tri, eq-->
-<!ENTITY nsc    SDATA "[nsc   ]"--/nsucc N: not succeeds-->
-<!ENTITY nsce   SDATA "[nsce  ]"--/nsucceq N: not succeeds, equals-->
-<!ENTITY nsim   SDATA "[nsim  ]"--/nsim N: not similar-->
-<!ENTITY nsime  SDATA "[nsime ]"--/nsimeq N: not similar, equals-->
-<!ENTITY nsmid  SDATA "[nsmid ]"--/nshortmid-->
-<!ENTITY nspar  SDATA "[nspar ]"--/nshortparallel N: not short par-->
-<!ENTITY nsub   SDATA "[nsub  ]"--/nsubset N: not subset-->
-<!ENTITY nsube  SDATA "[nsube ]"--/nsubseteq N: not subset, equals-->
-<!ENTITY nsubE  SDATA "[nsubE ]"--/nsubseteqq N: not subset, dbl eq-->
-<!ENTITY nsup   SDATA "[nsup  ]"--/nsupset N: not superset-->
-<!ENTITY nsupE  SDATA "[nsupE ]"--/nsupseteqq N: not superset, dbl eq-->
-<!ENTITY nsupe  SDATA "[nsupe ]"--/nsupseteq N: not superset, equals-->
-<!ENTITY nvdash SDATA "[nvdash]"--/nvdash N: not vertical, dash-->
-<!ENTITY nvDash SDATA "[nvDash]"--/nvDash N: not vertical, dbl dash-->
-<!ENTITY nVDash SDATA "[nVDash]"--/nVDash N: not dbl vert, dbl dash-->
-<!ENTITY nVdash SDATA "[nVdash]"--/nVdash N: not dbl vertical, dash-->
-<!ENTITY prnap  SDATA "[prnap ]"--/precnapprox N: precedes, not approx-->
-<!ENTITY prnE   SDATA "[prnE  ]"--/precneqq N: precedes, not dbl eq-->
-<!ENTITY prnsim SDATA "[prnsim]"--/precnsim N: precedes, not similar-->
-<!ENTITY scnap  SDATA "[scnap ]"--/succnapprox N: succeeds, not approx-->
-<!ENTITY scnE   SDATA "[scnE  ]"--/succneqq N: succeeds, not dbl eq-->
-<!ENTITY scnsim SDATA "[scnsim]"--/succnsim N: succeeds, not similar-->
-<!ENTITY subne  SDATA "[subne ]"--/subsetneq N: subset, not equals-->
-<!ENTITY subnE  SDATA "[subnE ]"--/subsetneqq N: subset, not dbl eq-->
-<!ENTITY supne  SDATA "[supne ]"--/supsetneq N: superset, not equals-->
-<!ENTITY supnE  SDATA "[supnE ]"--/supsetneqq N: superset, not dbl eq-->
-<!ENTITY vsubnE SDATA "[vsubnE]"--/subsetneqq N: subset not dbl eq, var-->
-<!ENTITY vsubne SDATA "[vsubne]"--/subsetneq N: subset, not eq, var-->
-<!ENTITY vsupne SDATA "[vsupne]"--/supsetneq N: superset, not eq, var-->
-<!ENTITY vsupnE SDATA "[vsupnE]"--/supsetneqq N: super not dbl eq, var-->
--- a/usr/src/cmd/man/src/util/iso-amso.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOamso PUBLIC
-       "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN">
-     %ISOamso;
--->
-<!ENTITY ang    SDATA "[ang   ]"--/angle - angle-->
-<!ENTITY angmsd SDATA "[angmsd]"--/measuredangle - angle-measured-->
-<!ENTITY beth   SDATA "[beth  ]"--/beth - beth, Hebrew-->
-<!ENTITY bprime SDATA "[bprime]"--/backprime - reverse prime-->
-<!ENTITY comp   SDATA "[comp  ]"--/complement - complement sign-->
-<!ENTITY daleth SDATA "[daleth]"--/daleth - daleth, Hebrew-->
-<!ENTITY ell    SDATA "[ell   ]"--/ell - cursive small l-->
-<!ENTITY empty  SDATA "[empty ]"--/emptyset /varnothing =small o, slash-->
-<!ENTITY gimel  SDATA "[gimel ]"--/gimel - gimel, Hebrew-->
-<!ENTITY image  SDATA "[image ]"--/Im - imaginary-->
-<!ENTITY inodot SDATA "[inodot]"--/imath =small i, no dot-->
-<!ENTITY jnodot SDATA "[jnodot]"--/jmath - small j, no dot-->
-<!ENTITY nexist SDATA "[nexist]"--/nexists - negated exists-->
-<!ENTITY oS     SDATA "[oS    ]"--/circledS - capital S in circle-->
-<!ENTITY planck SDATA "[planck]"--/hbar /hslash - Planck's over 2pi-->
-<!ENTITY real   SDATA "[real  ]"--/Re - real-->
-<!ENTITY sbsol  SDATA "[sbsol ]"--/sbs - short reverse solidus-->
-<!ENTITY vprime SDATA "[vprime]"--/varprime - prime, variant-->
-<!ENTITY weierp SDATA "[weierp]"--/wp - Weierstrass p-->
--- a/usr/src/cmd/man/src/util/iso-amsr.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOamsr PUBLIC
-       "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN">
-     %ISOamsr;
--->
-<!ENTITY ape    SDATA "[ape   ]"--/approxeq R: approximate, equals-->
-<!ENTITY asymp  SDATA "[asymp ]"--/asymp R: asymptotically equal to-->
-<!ENTITY bcong  SDATA "[bcong ]"--/backcong R: reverse congruent-->
-<!ENTITY bepsi  SDATA "[bepsi ]"--/backepsilon R: such that-->
-<!ENTITY bowtie SDATA "[bowtie]"--/bowtie R:-->
-<!ENTITY bsim   SDATA "[bsim  ]"--/backsim R: reverse similar-->
-<!ENTITY bsime  SDATA "[bsime ]"--/backsimeq R: reverse similar, eq-->
-<!ENTITY bump   SDATA "[bump  ]"--/Bumpeq R: bumpy equals-->
-<!ENTITY bumpe  SDATA "[bumpe ]"--/bumpeq R: bumpy equals, equals-->
-<!ENTITY cire   SDATA "[cire  ]"--/circeq R: circle, equals-->
-<!ENTITY colone SDATA "[colone]"--/coloneq R: colon, equals-->
-<!ENTITY cuepr  SDATA "[cuepr ]"--/curlyeqprec R: curly eq, precedes-->
-<!ENTITY cuesc  SDATA "[cuesc ]"--/curlyeqsucc R: curly eq, succeeds-->
-<!ENTITY cupre  SDATA "[cupre ]"--/curlypreceq R: curly precedes, eq-->
-<!ENTITY dashv  SDATA "[dashv ]"--/dashv R: dash, vertical-->
-<!ENTITY ecir   SDATA "[ecir  ]"--/eqcirc R: circle on equals sign-->
-<!ENTITY ecolon SDATA "[ecolon]"--/eqcolon R: equals, colon-->
-<!ENTITY eDot   SDATA "[eDot  ]"--/doteqdot /Doteq R: eq, even dots-->
-<!ENTITY esdot  SDATA "[esdot ]"--/doteq R: equals, single dot above-->
-<!ENTITY efDot  SDATA "[efDot ]"--/fallingdotseq R: eq, falling dots-->
-<!ENTITY egs    SDATA "[egs   ]"--/eqslantgtr R: equal-or-gtr, slanted-->
-<!ENTITY els    SDATA "[els   ]"--/eqslantless R: eq-or-less, slanted-->
-<!ENTITY erDot  SDATA "[erDot ]"--/risingdotseq R: eq, rising dots-->
-<!ENTITY fork   SDATA "[fork  ]"--/pitchfork R: pitchfork-->
-<!ENTITY frown  SDATA "[frown ]"--/frown R: down curve-->
-<!ENTITY gap    SDATA "[gap   ]"--/gtrapprox R: greater, approximate-->
-<!ENTITY gsdot  SDATA "[gsdot ]"--/gtrdot R: greater than, single dot-->
-<!ENTITY gE     SDATA "[gE    ]"--/geqq R: greater, double equals-->
-<!ENTITY gel    SDATA "[gel   ]"--/gtreqless R: greater, equals, less-->
-<!ENTITY gEl    SDATA "[gEl   ]"--/gtreqqless R: gt, dbl equals, less-->
-<!ENTITY ges    SDATA "[ges   ]"--/geqslant R: gt-or-equal, slanted-->
-<!ENTITY Gg     SDATA "[Gg    ]"--/ggg /Gg /gggtr R: triple gtr-than-->
-<!ENTITY gl     SDATA "[gl    ]"--/gtrless R: greater, less-->
-<!ENTITY gsim   SDATA "[gsim  ]"--/gtrsim R: greater, similar-->
-<!ENTITY Gt     SDATA "[Gt    ]"--/gg R: dbl greater-than sign-->
-<!ENTITY lap    SDATA "[lap   ]"--/lessapprox R: less, approximate-->
-<!ENTITY ldot   SDATA "[ldot  ]"--/lessdot R: less than, with dot-->
-<!ENTITY lE     SDATA "[lE    ]"--/leqq R: less, double equals-->
-<!ENTITY lEg    SDATA "[lEg   ]"--/lesseqqgtr R: less, dbl eq, greater-->
-<!ENTITY leg    SDATA "[leg   ]"--/lesseqgtr R: less, eq, greater-->
-<!ENTITY les    SDATA "[les   ]"--/leqslant R: less-than-or-eq, slant-->
-<!ENTITY lg     SDATA "[lg    ]"--/lessgtr R: less, greater-->
-<!ENTITY Ll     SDATA "[Ll    ]"--/Ll /lll /llless R: triple less-than-->
-<!ENTITY lsim   SDATA "[lsim  ]"--/lesssim R: less, similar-->
-<!ENTITY Lt     SDATA "[Lt    ]"--/ll R: double less-than sign-->
-<!ENTITY ltrie  SDATA "[ltrie ]"--/trianglelefteq R: left triangle, eq-->
-<!ENTITY mid    SDATA "[mid   ]"--/mid R:-->
-<!ENTITY models SDATA "[models]"--/models R:-->
-<!ENTITY pr     SDATA "[pr    ]"--/prec R: precedes-->
-<!ENTITY prap   SDATA "[prap  ]"--/precapprox R: precedes, approximate-->
-<!ENTITY pre    SDATA "[pre   ]"--/preceq R: precedes, equals-->
-<!ENTITY prsim  SDATA "[prsim ]"--/precsim R: precedes, similar-->
-<!ENTITY rtrie  SDATA "[rtrie ]"--/trianglerighteq R: right tri, eq-->
-<!ENTITY samalg SDATA "[samalg]"--/smallamalg R: small amalg-->
-<!ENTITY sc     SDATA "[sc    ]"--/succ R: succeeds-->
-<!ENTITY scap   SDATA "[scap  ]"--/succapprox R: succeeds, approximate-->
-<!ENTITY sccue  SDATA "[sccue ]"--/succcurlyeq R: succeeds, curly eq-->
-<!ENTITY sce    SDATA "[sce   ]"--/succeq R: succeeds, equals-->
-<!ENTITY scsim  SDATA "[scsim ]"--/succsim R: succeeds, similar-->
-<!ENTITY sfrown SDATA "[sfrown]"--/smallfrown R: small down curve-->
-<!ENTITY smid   SDATA "[smid  ]"--/shortmid R:-->
-<!ENTITY smile  SDATA "[smile ]"--/smile R: up curve-->
-<!ENTITY spar   SDATA "[spar  ]"--/shortparallel R: short parallel-->
-<!ENTITY sqsub  SDATA "[sqsub ]"--/sqsubset R: square subset-->
-<!ENTITY sqsube SDATA "[sqsube]"--/sqsubseteq R: square subset, equals-->
-<!ENTITY sqsup  SDATA "[sqsup ]"--/sqsupset R: square superset-->
-<!ENTITY sqsupe SDATA "[sqsupe]"--/sqsupseteq R: square superset, eq-->
-<!ENTITY ssmile SDATA "[ssmile]"--/smallsmile R: small up curve-->
-<!ENTITY Sub    SDATA "[Sub   ]"--/Subset R: double subset-->
-<!ENTITY subE   SDATA "[subE  ]"--/subseteqq R: subset, dbl equals-->
-<!ENTITY Sup    SDATA "[Sup   ]"--/Supset R: dbl superset-->
-<!ENTITY supE   SDATA "[supE  ]"--/supseteqq R: superset, dbl equals-->
-<!ENTITY thkap  SDATA "[thkap ]"--/thickapprox R: thick approximate-->
-<!ENTITY thksim SDATA "[thksim]"--/thicksim R: thick similar-->
-<!ENTITY trie   SDATA "[trie  ]"--/triangleq R: triangle, equals-->
-<!ENTITY twixt  SDATA "[twixt ]"--/between R: between-->
-<!ENTITY vdash  SDATA "[vdash ]"--/vdash R: vertical, dash-->
-<!ENTITY Vdash  SDATA "[Vdash ]"--/Vdash R: dbl vertical, dash-->
-<!ENTITY vDash  SDATA "[vDash ]"--/vDash R: vertical, dbl dash-->
-<!ENTITY veebar SDATA "[veebar]"--/veebar R: logical or, bar below-->
-<!ENTITY vltri  SDATA "[vltri ]"--/vartriangleleft R: l tri, open, var-->
-<!ENTITY vprop  SDATA "[vprop ]"--/varpropto R: proportional, variant-->
-<!ENTITY vrtri  SDATA "[vrtri ]"--/vartriangleright R: r tri, open, var-->
-<!ENTITY Vvdash SDATA "[Vvdash]"--/Vvdash R: triple vertical, dash-->
--- a/usr/src/cmd/man/src/util/iso-box.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISObox PUBLIC
-       "ISO 8879:1986//ENTITIES Box and Line Drawing//EN">
-     %ISObox;
--->
-<!-- All names are in the form: box1234, where:
-    box = constants that identify a box drawing entity.
-    1&2 = v, V, u, U, d, D, Ud, or uD, as follows:
-      v = vertical line for full height.
-      u = upper half of vertical line.
-      d = downward (lower) half of vertical line.
-    3&4 = h, H, l, L, r, R, Lr, or lR, as follows:
-      h = horizontal line for full width.
-      l = left half of horizontal line.
-      r = right half of horizontal line.
-    In all cases, an upper-case letter means a double or heavy line.
--->
-<!ENTITY boxh   SDATA "[boxh  ]"--horizontal line -->
-<!ENTITY boxv   SDATA "[boxv  ]"--vertical line-->
-<!ENTITY boxur  SDATA "[boxur ]"--upper right quadrant-->
-<!ENTITY boxul  SDATA "[boxul ]"--upper left quadrant-->
-<!ENTITY boxdl  SDATA "[boxdl ]"--lower left quadrant-->
-<!ENTITY boxdr  SDATA "[boxdr ]"--lower right quadrant-->
-<!ENTITY boxvr  SDATA "[boxvr ]"--upper and lower right quadrants-->
-<!ENTITY boxhu  SDATA "[boxhu ]"--upper left and right quadrants-->
-<!ENTITY boxvl  SDATA "[boxvl ]"--upper and lower left quadrants-->
-<!ENTITY boxhd  SDATA "[boxhd ]"--lower left and right quadrants-->
-<!ENTITY boxvh  SDATA "[boxvh ]"--all four quadrants-->
-<!ENTITY boxvR  SDATA "[boxvR ]"--upper and lower right quadrants-->
-<!ENTITY boxhU  SDATA "[boxhU ]"--upper left and right quadrants-->
-<!ENTITY boxvL  SDATA "[boxvL ]"--upper and lower left quadrants-->
-<!ENTITY boxhD  SDATA "[boxhD ]"--lower left and right quadrants-->
-<!ENTITY boxvH  SDATA "[boxvH ]"--all four quadrants-->
-<!ENTITY boxH   SDATA "[boxH  ]"--horizontal line-->
-<!ENTITY boxV   SDATA "[boxV  ]"--vertical line-->
-<!ENTITY boxUR  SDATA "[boxUR ]"--upper right quadrant-->
-<!ENTITY boxUL  SDATA "[boxUL ]"--upper left quadrant-->
-<!ENTITY boxDL  SDATA "[boxDL ]"--lower left quadrant-->
-<!ENTITY boxDR  SDATA "[boxDR ]"--lower right quadrant-->
-<!ENTITY boxVR  SDATA "[boxVR ]"--upper and lower right quadrants-->
-<!ENTITY boxHU  SDATA "[boxHU ]"--upper left and right quadrants-->
-<!ENTITY boxVL  SDATA "[boxVL ]"--upper and lower left quadrants-->
-<!ENTITY boxHD  SDATA "[boxHD ]"--lower left and right quadrants-->
-<!ENTITY boxVH  SDATA "[boxVH ]"--all four quadrants-->
-<!ENTITY boxVr  SDATA "[boxVr ]"--upper and lower right quadrants-->
-<!ENTITY boxHu  SDATA "[boxHu ]"--upper left and right quadrants-->
-<!ENTITY boxVl  SDATA "[boxVl ]"--upper and lower left quadrants-->
-<!ENTITY boxHd  SDATA "[boxHd ]"--lower left and right quadrants-->
-<!ENTITY boxVh  SDATA "[boxVh ]"--all four quadrants-->
-<!ENTITY boxuR  SDATA "[boxuR ]"--upper right quadrant-->
-<!ENTITY boxUl  SDATA "[boxUl ]"--upper left quadrant-->
-<!ENTITY boxdL  SDATA "[boxdL ]"--lower left quadrant-->
-<!ENTITY boxDr  SDATA "[boxDr ]"--lower right quadrant-->
-<!ENTITY boxUr  SDATA "[boxUr ]"--upper right quadrant-->
-<!ENTITY boxuL  SDATA "[boxuL ]"--upper left quadrant-->
-<!ENTITY boxDl  SDATA "[boxDl ]"--lower left quadrant-->
-<!ENTITY boxdR  SDATA "[boxdR ]"--lower right quadrant-->
--- a/usr/src/cmd/man/src/util/iso-cyr1.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOcyr1 PUBLIC
-       "ISO 8879:1986//ENTITIES Russian Cyrillic//EN">
-     %ISOcyr1;
--->
-<!ENTITY acy    SDATA "[acy   ]"--=small a, Cyrillic-->
-<!ENTITY Acy    SDATA "[Acy   ]"--=capital A, Cyrillic-->
-<!ENTITY bcy    SDATA "[bcy   ]"--=small be, Cyrillic-->
-<!ENTITY Bcy    SDATA "[Bcy   ]"--=capital BE, Cyrillic-->
-<!ENTITY vcy    SDATA "[vcy   ]"--=small ve, Cyrillic-->
-<!ENTITY Vcy    SDATA "[Vcy   ]"--=capital VE, Cyrillic-->
-<!ENTITY gcy    SDATA "[gcy   ]"--=small ghe, Cyrillic-->
-<!ENTITY Gcy    SDATA "[Gcy   ]"--=capital GHE, Cyrillic-->
-<!ENTITY dcy    SDATA "[dcy   ]"--=small de, Cyrillic-->
-<!ENTITY Dcy    SDATA "[Dcy   ]"--=capital DE, Cyrillic-->
-<!ENTITY iecy   SDATA "[iecy  ]"--=small ie, Cyrillic-->
-<!ENTITY IEcy   SDATA "[IEcy  ]"--=capital IE, Cyrillic-->
-<!ENTITY iocy   SDATA "[iocy  ]"--=small io, Russian-->
-<!ENTITY IOcy   SDATA "[IOcy  ]"--=capital IO, Russian-->
-<!ENTITY zhcy   SDATA "[zhcy  ]"--=small zhe, Cyrillic-->
-<!ENTITY ZHcy   SDATA "[ZHcy  ]"--=capital ZHE, Cyrillic-->
-<!ENTITY zcy    SDATA "[zcy   ]"--=small ze, Cyrillic-->
-<!ENTITY Zcy    SDATA "[Zcy   ]"--=capital ZE, Cyrillic-->
-<!ENTITY icy    SDATA "[icy   ]"--=small i, Cyrillic-->
-<!ENTITY Icy    SDATA "[Icy   ]"--=capital I, Cyrillic-->
-<!ENTITY jcy    SDATA "[jcy   ]"--=small short i, Cyrillic-->
-<!ENTITY Jcy    SDATA "[Jcy   ]"--=capital short I, Cyrillic-->
-<!ENTITY kcy    SDATA "[kcy   ]"--=small ka, Cyrillic-->
-<!ENTITY Kcy    SDATA "[Kcy   ]"--=capital KA, Cyrillic-->
-<!ENTITY lcy    SDATA "[lcy   ]"--=small el, Cyrillic-->
-<!ENTITY Lcy    SDATA "[Lcy   ]"--=capital EL, Cyrillic-->
-<!ENTITY mcy    SDATA "[mcy   ]"--=small em, Cyrillic-->
-<!ENTITY Mcy    SDATA "[Mcy   ]"--=capital EM, Cyrillic-->
-<!ENTITY ncy    SDATA "[ncy   ]"--=small en, Cyrillic-->
-<!ENTITY Ncy    SDATA "[Ncy   ]"--=capital EN, Cyrillic-->
-<!ENTITY ocy    SDATA "[ocy   ]"--=small o, Cyrillic-->
-<!ENTITY Ocy    SDATA "[Ocy   ]"--=capital O, Cyrillic-->
-<!ENTITY pcy    SDATA "[pcy   ]"--=small pe, Cyrillic-->
-<!ENTITY Pcy    SDATA "[Pcy   ]"--=capital PE, Cyrillic-->
-<!ENTITY rcy    SDATA "[rcy   ]"--=small er, Cyrillic-->
-<!ENTITY Rcy    SDATA "[Rcy   ]"--=capital ER, Cyrillic-->
-<!ENTITY scy    SDATA "[scy   ]"--=small es, Cyrillic-->
-<!ENTITY Scy    SDATA "[Scy   ]"--=capital ES, Cyrillic-->
-<!ENTITY tcy    SDATA "[tcy   ]"--=small te, Cyrillic-->
-<!ENTITY Tcy    SDATA "[Tcy   ]"--=capital TE, Cyrillic-->
-<!ENTITY ucy    SDATA "[ucy   ]"--=small u, Cyrillic-->
-<!ENTITY Ucy    SDATA "[Ucy   ]"--=capital U, Cyrillic-->
-<!ENTITY fcy    SDATA "[fcy   ]"--=small ef, Cyrillic-->
-<!ENTITY Fcy    SDATA "[Fcy   ]"--=capital EF, Cyrillic-->
-<!ENTITY khcy   SDATA "[khcy  ]"--=small ha, Cyrillic-->
-<!ENTITY KHcy   SDATA "[KHcy  ]"--=capital HA, Cyrillic-->
-<!ENTITY tscy   SDATA "[tscy  ]"--=small tse, Cyrillic-->
-<!ENTITY TScy   SDATA "[TScy  ]"--=capital TSE, Cyrillic-->
-<!ENTITY chcy   SDATA "[chcy  ]"--=small che, Cyrillic-->
-<!ENTITY CHcy   SDATA "[CHcy  ]"--=capital CHE, Cyrillic-->
-<!ENTITY shcy   SDATA "[shcy  ]"--=small sha, Cyrillic-->
-<!ENTITY SHcy   SDATA "[SHcy  ]"--=capital SHA, Cyrillic-->
-<!ENTITY shchcy SDATA "[shchcy]"--=small shcha, Cyrillic-->
-<!ENTITY SHCHcy SDATA "[SHCHcy]"--=capital SHCHA, Cyrillic-->
-<!ENTITY hardcy SDATA "[hardcy]"--=small hard sign, Cyrillic-->
-<!ENTITY HARDcy SDATA "[HARDcy]"--=capital HARD sign, Cyrillic-->
-<!ENTITY ycy    SDATA "[ycy   ]"--=small yeru, Cyrillic-->
-<!ENTITY Ycy    SDATA "[Ycy   ]"--=capital YERU, Cyrillic-->
-<!ENTITY softcy SDATA "[softcy]"--=small soft sign, Cyrillic-->
-<!ENTITY SOFTcy SDATA "[SOFTcy]"--=capital SOFT sign, Cyrillic-->
-<!ENTITY ecy    SDATA "[ecy   ]"--=small e, Cyrillic-->
-<!ENTITY Ecy    SDATA "[Ecy   ]"--=capital E, Cyrillic-->
-<!ENTITY yucy   SDATA "[yucy  ]"--=small yu, Cyrillic-->
-<!ENTITY YUcy   SDATA "[YUcy  ]"--=capital YU, Cyrillic-->
-<!ENTITY yacy   SDATA "[yacy  ]"--=small ya, Cyrillic-->
-<!ENTITY YAcy   SDATA "[YAcy  ]"--=capital YA, Cyrillic-->
-<!ENTITY numero SDATA "[numero]"--=numero sign-->
--- a/usr/src/cmd/man/src/util/iso-cyr2.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOcyr2 PUBLIC
-       "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN">
-     %ISOcyr2;
--->
-<!ENTITY djcy   SDATA "[djcy  ]"--=small dje, Serbian-->
-<!ENTITY DJcy   SDATA "[DJcy  ]"--=capital DJE, Serbian-->
-<!ENTITY gjcy   SDATA "[gjcy  ]"--=small gje, Macedonian-->
-<!ENTITY GJcy   SDATA "[GJcy  ]"--=capital GJE Macedonian-->
-<!ENTITY jukcy  SDATA "[jukcy ]"--=small je, Ukrainian-->
-<!ENTITY Jukcy  SDATA "[Jukcy ]"--=capital JE, Ukrainian-->
-<!ENTITY dscy   SDATA "[dscy  ]"--=small dse, Macedonian-->
-<!ENTITY DScy   SDATA "[DScy  ]"--=capital DSE, Macedonian-->
-<!ENTITY iukcy  SDATA "[iukcy ]"--=small i, Ukrainian-->
-<!ENTITY Iukcy  SDATA "[Iukcy ]"--=capital I, Ukrainian-->
-<!ENTITY yicy   SDATA "[yicy  ]"--=small yi, Ukrainian-->
-<!ENTITY YIcy   SDATA "[YIcy  ]"--=capital YI, Ukrainian-->
-<!ENTITY jsercy SDATA "[jsercy]"--=small je, Serbian-->
-<!ENTITY Jsercy SDATA "[Jsercy]"--=capital JE, Serbian-->
-<!ENTITY ljcy   SDATA "[ljcy  ]"--=small lje, Serbian-->
-<!ENTITY LJcy   SDATA "[LJcy  ]"--=capital LJE, Serbian-->
-<!ENTITY njcy   SDATA "[njcy  ]"--=small nje, Serbian-->
-<!ENTITY NJcy   SDATA "[NJcy  ]"--=capital NJE, Serbian-->
-<!ENTITY tshcy  SDATA "[tshcy ]"--=small tshe, Serbian-->
-<!ENTITY TSHcy  SDATA "[TSHcy ]"--=capital TSHE, Serbian-->
-<!ENTITY kjcy   SDATA "[kjcy  ]"--=small kje Macedonian-->
-<!ENTITY KJcy   SDATA "[KJcy  ]"--=capital KJE, Macedonian-->
-<!ENTITY ubrcy  SDATA "[ubrcy ]"--=small u, Byelorussian-->
-<!ENTITY Ubrcy  SDATA "[Ubrcy ]"--=capital U, Byelorussian-->
-<!ENTITY dzcy   SDATA "[dzcy  ]"--=small dze, Serbian-->
-<!ENTITY DZcy   SDATA "[DZcy  ]"--=capital dze, Serbian-->
--- a/usr/src/cmd/man/src/util/iso-dia.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOdia PUBLIC
-       "ISO 8879:1986//ENTITIES Diacritical Marks//EN">
-     %ISOdia;
--->
-<!ENTITY acute  SDATA "[acute ]"--=acute accent-->
-<!ENTITY breve  SDATA "[breve ]"--=breve-->
-<!ENTITY caron  SDATA "[caron ]"--=caron-->
-<!ENTITY cedil  SDATA "[cedil ]"--=cedilla-->
-<!ENTITY circ   SDATA "[circ  ]"--=circumflex accent-->
-<!ENTITY dblac  SDATA "[dblac ]"--=double acute accent-->
-<!ENTITY die    SDATA "[die   ]"--=dieresis-->
-<!ENTITY dot    SDATA "[dot   ]"--=dot above-->
-<!ENTITY grave  SDATA "[grave ]"--=grave accent-->
-<!ENTITY macr   SDATA "[macr  ]"--=macron-->
-<!ENTITY ogon   SDATA "[ogon  ]"--=ogonek-->
-<!ENTITY ring   SDATA "[ring  ]"--=ring-->
-<!ENTITY tilde  SDATA "[tilde ]"--=tilde-->
-<!ENTITY uml    SDATA "[uml   ]"--=umlaut mark-->
--- a/usr/src/cmd/man/src/util/iso-grk1.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOgrk1 PUBLIC
-       "ISO 8879:1986//ENTITIES Greek Letters//EN">
-     %ISOgrk1;
--->
-<!ENTITY agr    SDATA "[agr   ]"--=small alpha, Greek-->
-<!ENTITY Agr    SDATA "[Agr   ]"--=capital Alpha, Greek-->
-<!ENTITY bgr    SDATA "[bgr   ]"--=small beta, Greek-->
-<!ENTITY Bgr    SDATA "[Bgr   ]"--=capital Beta, Greek-->
-<!ENTITY ggr    SDATA "[ggr   ]"--=small gamma, Greek-->
-<!ENTITY Ggr    SDATA "[Ggr   ]"--=capital Gamma, Greek-->
-<!ENTITY dgr    SDATA "[dgr   ]"--=small delta, Greek-->
-<!ENTITY Dgr    SDATA "[Dgr   ]"--=capital Delta, Greek-->
-<!ENTITY egr    SDATA "[egr   ]"--=small epsilon, Greek-->
-<!ENTITY Egr    SDATA "[Egr   ]"--=capital Epsilon, Greek-->
-<!ENTITY zgr    SDATA "[zgr   ]"--=small zeta, Greek-->
-<!ENTITY Zgr    SDATA "[Zgr   ]"--=capital Zeta, Greek-->
-<!ENTITY eegr   SDATA "[eegr  ]"--=small eta, Greek-->
-<!ENTITY EEgr   SDATA "[EEgr  ]"--=capital Eta, Greek-->
-<!ENTITY thgr   SDATA "[thgr  ]"--=small theta, Greek-->
-<!ENTITY THgr   SDATA "[THgr  ]"--=capital Theta, Greek-->
-<!ENTITY igr    SDATA "[igr   ]"--=small iota, Greek-->
-<!ENTITY Igr    SDATA "[Igr   ]"--=capital Iota, Greek-->
-<!ENTITY kgr    SDATA "[kgr   ]"--=small kappa, Greek-->
-<!ENTITY Kgr    SDATA "[Kgr   ]"--=capital Kappa, Greek-->
-<!ENTITY lgr    SDATA "[lgr   ]"--=small lambda, Greek-->
-<!ENTITY Lgr    SDATA "[Lgr   ]"--=capital Lambda, Greek-->
-<!ENTITY mgr    SDATA "[mgr   ]"--=small mu, Greek-->
-<!ENTITY Mgr    SDATA "[Mgr   ]"--=capital Mu, Greek-->
-<!ENTITY ngr    SDATA "[ngr   ]"--=small nu, Greek-->
-<!ENTITY Ngr    SDATA "[Ngr   ]"--=capital Nu, Greek-->
-<!ENTITY xgr    SDATA "[xgr   ]"--=small xi, Greek-->
-<!ENTITY Xgr    SDATA "[Xgr   ]"--=capital Xi, Greek-->
-<!ENTITY ogr    SDATA "[ogr   ]"--=small omicron, Greek-->
-<!ENTITY Ogr    SDATA "[Ogr   ]"--=capital Omicron, Greek-->
-<!ENTITY pgr    SDATA "[pgr   ]"--=small pi, Greek-->
-<!ENTITY Pgr    SDATA "[Pgr   ]"--=capital Pi, Greek-->
-<!ENTITY rgr    SDATA "[rgr   ]"--=small rho, Greek-->
-<!ENTITY Rgr    SDATA "[Rgr   ]"--=capital Rho, Greek-->
-<!ENTITY sgr    SDATA "[sgr   ]"--=small sigma, Greek-->
-<!ENTITY Sgr    SDATA "[Sgr   ]"--=capital Sigma, Greek-->
-<!ENTITY sfgr   SDATA "[sfgr  ]"--=final small sigma, Greek-->
-<!ENTITY tgr    SDATA "[tgr   ]"--=small tau, Greek-->
-<!ENTITY Tgr    SDATA "[Tgr   ]"--=capital Tau, Greek-->
-<!ENTITY ugr    SDATA "[ugr   ]"--=small upsilon, Greek-->
-<!ENTITY Ugr    SDATA "[Ugr   ]"--=capital Upsilon, Greek-->
-<!ENTITY phgr   SDATA "[phgr  ]"--=small phi, Greek-->
-<!ENTITY PHgr   SDATA "[PHgr  ]"--=capital Phi, Greek-->
-<!ENTITY khgr   SDATA "[khgr  ]"--=small chi, Greek-->
-<!ENTITY KHgr   SDATA "[KHgr  ]"--=capital Chi, Greek-->
-<!ENTITY psgr   SDATA "[psgr  ]"--=small psi, Greek-->
-<!ENTITY PSgr   SDATA "[PSgr  ]"--=capital Psi, Greek-->
-<!ENTITY ohgr   SDATA "[ohgr  ]"--=small omega, Greek-->
-<!ENTITY OHgr   SDATA "[OHgr  ]"--=capital Omega, Greek-->
--- a/usr/src/cmd/man/src/util/iso-grk2.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOgrk2 PUBLIC
-       "ISO 8879:1986//ENTITIES Monotoniko Greek//EN">
-     %ISOgrk2;
--->
-<!ENTITY aacgr  SDATA "[aacgr ]"--=small alpha, accent, Greek-->
-<!ENTITY Aacgr  SDATA "[Aacgr ]"--=capital Alpha, accent, Greek-->
-<!ENTITY eacgr  SDATA "[eacgr ]"--=small epsilon, accent, Greek-->
-<!ENTITY Eacgr  SDATA "[Eacgr ]"--=capital Epsilon, accent, Greek-->
-<!ENTITY eeacgr SDATA "[eeacgr]"--=small eta, accent, Greek-->
-<!ENTITY EEacgr SDATA "[EEacgr]"--=capital Eta, accent, Greek-->
-<!ENTITY idigr  SDATA "[idigr ]"--=small iota, dieresis, Greek-->
-<!ENTITY Idigr  SDATA "[Idigr ]"--=capital Iota, dieresis, Greek-->
-<!ENTITY iacgr  SDATA "[iacgr ]"--=small iota, accent, Greek-->
-<!ENTITY Iacgr  SDATA "[Iacgr ]"--=capital Iota, accent, Greek-->
-<!ENTITY idiagr SDATA "[idiagr]"--=small iota, dieresis, accent, Greek-->
-<!ENTITY oacgr  SDATA "[oacgr ]"--=small omicron, accent, Greek-->
-<!ENTITY Oacgr  SDATA "[Oacgr ]"--=capital Omicron, accent, Greek-->
-<!ENTITY udigr  SDATA "[udigr ]"--=small upsilon, dieresis, Greek-->
-<!ENTITY Udigr  SDATA "[Udigr ]"--=capital Upsilon, dieresis, Greek-->
-<!ENTITY uacgr  SDATA "[uacgr ]"--=small upsilon, accent, Greek-->
-<!ENTITY Uacgr  SDATA "[Uacgr ]"--=capital Upsilon, accent, Greek-->
-<!ENTITY udiagr SDATA "[udiagr]"--=small upsilon, dieresis, accent, Greek-->
-<!ENTITY ohacgr SDATA "[ohacgr]"--=small omega, accent, Greek-->
-<!ENTITY OHacgr SDATA "[OHacgr]"--=capital Omega, accent, Greek-->
--- a/usr/src/cmd/man/src/util/iso-grk3.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOgrk3 PUBLIC
-       "ISO 8879:1986//ENTITIES Greek Symbols//EN">
-     %ISOgrk3;
--->
-<!ENTITY alpha    SDATA "[alpha ]"--=small alpha, Greek-->
-<!ENTITY beta     SDATA "[beta  ]"--=small beta, Greek-->
-<!ENTITY gamma    SDATA "[gamma ]"--=small gamma, Greek-->
-<!ENTITY Gamma    SDATA "[Gamma ]"--=capital Gamma, Greek-->
-<!ENTITY gammad   SDATA "[gammad]"--/digamma-->
-<!ENTITY delta    SDATA "[delta ]"--=small delta, Greek-->
-<!ENTITY Delta    SDATA "[Delta ]"--=capital Delta, Greek-->
-<!ENTITY epsi     SDATA "[epsi  ]"--=small epsilon, Greek-->
-<!ENTITY epsiv    SDATA "[epsiv ]"--/varepsilon-->
-<!ENTITY epsis    SDATA "[epsis ]"--/straightepsilon-->
-<!ENTITY zeta     SDATA "[zeta  ]"--=small zeta, Greek-->
-<!ENTITY eta      SDATA "[eta   ]"--=small eta, Greek-->
-<!ENTITY thetas   SDATA "[thetas]"--straight theta-->
-<!ENTITY Theta    SDATA "[Theta ]"--=capital Theta, Greek-->
-<!ENTITY thetav   SDATA "[thetav]"--/vartheta - curly or open theta-->
-<!ENTITY iota     SDATA "[iota  ]"--=small iota, Greek-->
-<!ENTITY kappa    SDATA "[kappa ]"--=small kappa, Greek-->
-<!ENTITY kappav   SDATA "[kappav]"--/varkappa-->
-<!ENTITY lambda   SDATA "[lambda]"--=small lambda, Greek-->
-<!ENTITY Lambda   SDATA "[Lambda]"--=capital Lambda, Greek-->
-<!ENTITY mu       SDATA "[mu    ]"--=small mu, Greek-->
-<!ENTITY nu       SDATA "[nu    ]"--=small nu, Greek-->
-<!ENTITY xi       SDATA "[xi    ]"--=small xi, Greek-->
-<!ENTITY Xi       SDATA "[Xi    ]"--=capital Xi, Greek-->
-<!ENTITY pi       SDATA "[pi    ]"--=small pi, Greek-->
-<!ENTITY piv      SDATA "[piv   ]"--/varpi-->
-<!ENTITY Pi       SDATA "[Pi    ]"--=capital Pi, Greek-->
-<!ENTITY rho      SDATA "[rho   ]"--=small rho, Greek-->
-<!ENTITY rhov     SDATA "[rhov  ]"--/varrho-->
-<!ENTITY sigma    SDATA "[sigma ]"--=small sigma, Greek-->
-<!ENTITY Sigma    SDATA "[Sigma ]"--=capital Sigma, Greek-->
-<!ENTITY sigmav   SDATA "[sigmav]"--/varsigma-->
-<!ENTITY tau      SDATA "[tau   ]"--=small tau, Greek-->
-<!ENTITY upsi     SDATA "[upsi  ]"--=small upsilon, Greek-->
-<!ENTITY Upsi     SDATA "[Upsi  ]"--=capital Upsilon, Greek-->
-<!ENTITY phis     SDATA "[phis  ]"--/straightphi - straight phi-->
-<!ENTITY Phi      SDATA "[Phi   ]"--=capital Phi, Greek-->
-<!ENTITY phiv     SDATA "[phiv  ]"--/varphi - curly or open phi-->
-<!ENTITY chi      SDATA "[chi   ]"--=small chi, Greek-->
-<!ENTITY psi      SDATA "[psi   ]"--=small psi, Greek-->
-<!ENTITY Psi      SDATA "[Psi   ]"--=capital Psi, Greek-->
-<!ENTITY omega    SDATA "[omega ]"--=small omega, Greek-->
-<!ENTITY Omega    SDATA "[Omega ]"--=capital Omega, Greek-->
--- a/usr/src/cmd/man/src/util/iso-grk4.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOgrk4 PUBLIC
-       "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN">
-     %ISOgrk4;
--->
-<!ENTITY b.alpha  SDATA "[b.alpha ]"--=small alpha, Greek-->
-<!ENTITY b.beta   SDATA "[b.beta  ]"--=small beta, Greek-->
-<!ENTITY b.gamma  SDATA "[b.gamma ]"--=small gamma, Greek-->
-<!ENTITY b.Gamma  SDATA "[b.Gamma ]"--=capital Gamma, Greek-->
-<!ENTITY b.gammad SDATA "[b.gammad]"--/digamma-->
-<!ENTITY b.delta  SDATA "[b.delta ]"--=small delta, Greek-->
-<!ENTITY b.Delta  SDATA "[b.Delta ]"--=capital Delta, Greek-->
-<!ENTITY b.epsi   SDATA "[b.epsi  ]"--=small epsilon, Greek-->
-<!ENTITY b.epsiv  SDATA "[b.epsiv ]"--/varepsilon-->
-<!ENTITY b.epsis  SDATA "[b.epsis ]"--/straightepsilon-->
-<!ENTITY b.zeta   SDATA "[b.zeta  ]"--=small zeta, Greek-->
-<!ENTITY b.eta    SDATA "[b.eta   ]"--=small eta, Greek-->
-<!ENTITY b.thetas SDATA "[b.thetas]"--straight theta-->
-<!ENTITY b.Theta  SDATA "[b.Theta ]"--=capital Theta, Greek-->
-<!ENTITY b.thetav SDATA "[b.thetav]"--/vartheta - curly or open theta-->
-<!ENTITY b.iota   SDATA "[b.iota  ]"--=small iota, Greek-->
-<!ENTITY b.kappa  SDATA "[b.kappa ]"--=small kappa, Greek-->
-<!ENTITY b.kappav SDATA "[b.kappav]"--/varkappa-->
-<!ENTITY b.lambda SDATA "[b.lambda]"--=small lambda, Greek-->
-<!ENTITY b.Lambda SDATA "[b.Lambda]"--=capital Lambda, Greek-->
-<!ENTITY b.mu     SDATA "[b.mu    ]"--=small mu, Greek-->
-<!ENTITY b.nu     SDATA "[b.nu    ]"--=small nu, Greek-->
-<!ENTITY b.xi     SDATA "[b.xi    ]"--=small xi, Greek-->
-<!ENTITY b.Xi     SDATA "[b.Xi    ]"--=capital Xi, Greek-->
-<!ENTITY b.pi     SDATA "[b.pi    ]"--=small pi, Greek-->
-<!ENTITY b.Pi     SDATA "[b.Pi    ]"--=capital Pi, Greek-->
-<!ENTITY b.piv    SDATA "[b.piv   ]"--/varpi-->
-<!ENTITY b.rho    SDATA "[b.rho   ]"--=small rho, Greek-->
-<!ENTITY b.rhov   SDATA "[b.rhov  ]"--/varrho-->
-<!ENTITY b.sigma  SDATA "[b.sigma ]"--=small sigma, Greek-->
-<!ENTITY b.Sigma  SDATA "[b.Sigma ]"--=capital Sigma, Greek-->
-<!ENTITY b.sigmav SDATA "[b.sigmav]"--/varsigma-->
-<!ENTITY b.tau    SDATA "[b.tau   ]"--=small tau, Greek-->
-<!ENTITY b.upsi   SDATA "[b.upsi  ]"--=small upsilon, Greek-->
-<!ENTITY b.Upsi   SDATA "[b.Upsi  ]"--=capital Upsilon, Greek-->
-<!ENTITY b.phis   SDATA "[b.phis  ]"--/straightphi - straight phi-->
-<!ENTITY b.Phi    SDATA "[b.Phi   ]"--=capital Phi, Greek-->
-<!ENTITY b.phiv   SDATA "[b.phiv  ]"--/varphi - curly or open phi-->
-<!ENTITY b.chi    SDATA "[b.chi   ]"--=small chi, Greek-->
-<!ENTITY b.psi    SDATA "[b.psi   ]"--=small psi, Greek-->
-<!ENTITY b.Psi    SDATA "[b.Psi   ]"--=capital Psi, Greek-->
-<!ENTITY b.omega  SDATA "[b.omega ]"--=small omega, Greek-->
-<!ENTITY b.Omega  SDATA "[b.Omega ]"--=capital Omega, Greek-->
--- a/usr/src/cmd/man/src/util/iso-lat1.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOlat1 PUBLIC
-       "ISO 8879:1986//ENTITIES Added Latin 1//EN">
-     %ISOlat1;
--->
-<!ENTITY aacute SDATA "[aacute]"--=small a, acute accent-->
-<!ENTITY Aacute SDATA "[Aacute]"--=capital A, acute accent-->
-<!ENTITY acirc  SDATA "[acirc ]"--=small a, circumflex accent-->
-<!ENTITY Acirc  SDATA "[Acirc ]"--=capital A, circumflex accent-->
-<!ENTITY agrave SDATA "[agrave]"--=small a, grave accent-->
-<!ENTITY Agrave SDATA "[Agrave]"--=capital A, grave accent-->
-<!ENTITY aring  SDATA "[aring ]"--=small a, ring-->
-<!ENTITY Aring  SDATA "[Aring ]"--=capital A, ring-->
-<!ENTITY atilde SDATA "[atilde]"--=small a, tilde-->
-<!ENTITY Atilde SDATA "[Atilde]"--=capital A, tilde-->
-<!ENTITY auml   SDATA "[auml  ]"--=small a, dieresis or umlaut mark-->
-<!ENTITY Auml   SDATA "[Auml  ]"--=capital A, dieresis or umlaut mark-->
-<!ENTITY aelig  SDATA "[aelig ]"--=small ae diphthong (ligature)-->
-<!ENTITY AElig  SDATA "[AElig ]"--=capital AE diphthong (ligature)-->
-<!ENTITY ccedil SDATA "[ccedil]"--=small c, cedilla-->
-<!ENTITY Ccedil SDATA "[Ccedil]"--=capital C, cedilla-->
-<!ENTITY eth    SDATA "[eth   ]"--=small eth, Icelandic-->
-<!ENTITY ETH    SDATA "[ETH   ]"--=capital Eth, Icelandic-->
-<!ENTITY eacute SDATA "[eacute]"--=small e, acute accent-->
-<!ENTITY Eacute SDATA "[Eacute]"--=capital E, acute accent-->
-<!ENTITY ecirc  SDATA "[ecirc ]"--=small e, circumflex accent-->
-<!ENTITY Ecirc  SDATA "[Ecirc ]"--=capital E, circumflex accent-->
-<!ENTITY egrave SDATA "[egrave]"--=small e, grave accent-->
-<!ENTITY Egrave SDATA "[Egrave]"--=capital E, grave accent-->
-<!ENTITY euml   SDATA "[euml  ]"--=small e, dieresis or umlaut mark-->
-<!ENTITY Euml   SDATA "[Euml  ]"--=capital E, dieresis or umlaut mark-->
-<!ENTITY iacute SDATA "[iacute]"--=small i, acute accent-->
-<!ENTITY Iacute SDATA "[Iacute]"--=capital I, acute accent-->
-<!ENTITY icirc  SDATA "[icirc ]"--=small i, circumflex accent-->
-<!ENTITY Icirc  SDATA "[Icirc ]"--=capital I, circumflex accent-->
-<!ENTITY igrave SDATA "[igrave]"--=small i, grave accent-->
-<!ENTITY Igrave SDATA "[Igrave]"--=capital I, grave accent-->
-<!ENTITY iuml   SDATA "[iuml  ]"--=small i, dieresis or umlaut mark-->
-<!ENTITY Iuml   SDATA "[Iuml  ]"--=capital I, dieresis or umlaut mark-->
-<!ENTITY ntilde SDATA "[ntilde]"--=small n, tilde-->
-<!ENTITY Ntilde SDATA "[Ntilde]"--=capital N, tilde-->
-<!ENTITY oacute SDATA "[oacute]"--=small o, acute accent-->
-<!ENTITY Oacute SDATA "[Oacute]"--=capital O, acute accent-->
-<!ENTITY ocirc  SDATA "[ocirc ]"--=small o, circumflex accent-->
-<!ENTITY Ocirc  SDATA "[Ocirc ]"--=capital O, circumflex accent-->
-<!ENTITY ograve SDATA "[ograve]"--=small o, grave accent-->
-<!ENTITY Ograve SDATA "[Ograve]"--=capital O, grave accent-->
-<!ENTITY oslash SDATA "[oslash]"--=small o, slash-->
-<!ENTITY Oslash SDATA "[Oslash]"--=capital O, slash-->
-<!ENTITY otilde SDATA "[otilde]"--=small o, tilde-->
-<!ENTITY Otilde SDATA "[Otilde]"--=capital O, tilde-->
-<!ENTITY ouml   SDATA "[ouml  ]"--=small o, dieresis or umlaut mark-->
-<!ENTITY Ouml   SDATA "[Ouml  ]"--=capital O, dieresis or umlaut mark-->
-<!ENTITY szlig  SDATA "[szlig ]"--=small sharp s, German (sz ligature)-->
-<!ENTITY thorn  SDATA "[thorn ]"--=small thorn, Icelandic-->
-<!ENTITY THORN  SDATA "[THORN ]"--=capital THORN, Icelandic-->
-<!ENTITY uacute SDATA "[uacute]"--=small u, acute accent-->
-<!ENTITY Uacute SDATA "[Uacute]"--=capital U, acute accent-->
-<!ENTITY ucirc  SDATA "[ucirc ]"--=small u, circumflex accent-->
-<!ENTITY Ucirc  SDATA "[Ucirc ]"--=capital U, circumflex accent-->
-<!ENTITY ugrave SDATA "[ugrave]"--=small u, grave accent-->
-<!ENTITY Ugrave SDATA "[Ugrave]"--=capital U, grave accent-->
-<!ENTITY uuml   SDATA "[uuml  ]"--=small u, dieresis or umlaut mark-->
-<!ENTITY Uuml   SDATA "[Uuml  ]"--=capital U, dieresis or umlaut mark-->
-<!ENTITY yacute SDATA "[yacute]"--=small y, acute accent-->
-<!ENTITY Yacute SDATA "[Yacute]"--=capital Y, acute accent-->
-<!ENTITY yuml   SDATA "[yuml  ]"--=small y, dieresis or umlaut mark-->
--- a/usr/src/cmd/man/src/util/iso-lat2.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOlat2 PUBLIC
-       "ISO 8879:1986//ENTITIES Added Latin 2//EN">
-     %ISOlat2;
--->
-<!ENTITY abreve SDATA "[abreve]"--=small a, breve-->
-<!ENTITY Abreve SDATA "[Abreve]"--=capital A, breve-->
-<!ENTITY amacr  SDATA "[amacr ]"--=small a, macron-->
-<!ENTITY Amacr  SDATA "[Amacr ]"--=capital A, macron-->
-<!ENTITY aogon  SDATA "[aogon ]"--=small a, ogonek-->
-<!ENTITY Aogon  SDATA "[Aogon ]"--=capital A, ogonek-->
-<!ENTITY cacute SDATA "[cacute]"--=small c, acute accent-->
-<!ENTITY Cacute SDATA "[Cacute]"--=capital C, acute accent-->
-<!ENTITY ccaron SDATA "[ccaron]"--=small c, caron-->
-<!ENTITY Ccaron SDATA "[Ccaron]"--=capital C, caron-->
-<!ENTITY ccirc  SDATA "[ccirc ]"--=small c, circumflex accent-->
-<!ENTITY Ccirc  SDATA "[Ccirc ]"--=capital C, circumflex accent-->
-<!ENTITY cdot   SDATA "[cdot  ]"--=small c, dot above-->
-<!ENTITY Cdot   SDATA "[Cdot  ]"--=capital C, dot above-->
-<!ENTITY dcaron SDATA "[dcaron]"--=small d, caron-->
-<!ENTITY Dcaron SDATA "[Dcaron]"--=capital D, caron-->
-<!ENTITY dstrok SDATA "[dstrok]"--=small d, stroke-->
-<!ENTITY Dstrok SDATA "[Dstrok]"--=capital D, stroke-->
-<!ENTITY ecaron SDATA "[ecaron]"--=small e, caron-->
-<!ENTITY Ecaron SDATA "[Ecaron]"--=capital E, caron-->
-<!ENTITY edot   SDATA "[edot  ]"--=small e, dot above-->
-<!ENTITY Edot   SDATA "[Edot  ]"--=capital E, dot above-->
-<!ENTITY emacr  SDATA "[emacr ]"--=small e, macron-->
-<!ENTITY Emacr  SDATA "[Emacr ]"--=capital E, macron-->
-<!ENTITY eogon  SDATA "[eogon ]"--=small e, ogonek-->
-<!ENTITY Eogon  SDATA "[Eogon ]"--=capital E, ogonek-->
-<!ENTITY gacute SDATA "[gacute]"--=small g, acute accent-->
-<!ENTITY gbreve SDATA "[gbreve]"--=small g, breve-->
-<!ENTITY Gbreve SDATA "[Gbreve]"--=capital G, breve-->
-<!ENTITY Gcedil SDATA "[Gcedil]"--=capital G, cedilla-->
-<!ENTITY gcirc  SDATA "[gcirc ]"--=small g, circumflex accent-->
-<!ENTITY Gcirc  SDATA "[Gcirc ]"--=capital G, circumflex accent-->
-<!ENTITY gdot   SDATA "[gdot  ]"--=small g, dot above-->
-<!ENTITY Gdot   SDATA "[Gdot  ]"--=capital G, dot above-->
-<!ENTITY hcirc  SDATA "[hcirc ]"--=small h, circumflex accent-->
-<!ENTITY Hcirc  SDATA "[Hcirc ]"--=capital H, circumflex accent-->
-<!ENTITY hstrok SDATA "[hstrok]"--=small h, stroke-->
-<!ENTITY Hstrok SDATA "[Hstrok]"--=capital H, stroke-->
-<!ENTITY Idot   SDATA "[Idot  ]"--=capital I, dot above-->
-<!ENTITY Imacr  SDATA "[Imacr ]"--=capital I, macron-->
-<!ENTITY imacr  SDATA "[imacr ]"--=small i, macron-->
-<!ENTITY ijlig  SDATA "[ijlig ]"--=small ij ligature-->
-<!ENTITY IJlig  SDATA "[IJlig ]"--=capital IJ ligature-->
-<!ENTITY inodot SDATA "[inodot]"--=small i without dot-->
-<!ENTITY iogon  SDATA "[iogon ]"--=small i, ogonek-->
-<!ENTITY Iogon  SDATA "[Iogon ]"--=capital I, ogonek-->
-<!ENTITY itilde SDATA "[itilde]"--=small i, tilde-->
-<!ENTITY Itilde SDATA "[Itilde]"--=capital I, tilde-->
-<!ENTITY jcirc  SDATA "[jcirc ]"--=small j, circumflex accent-->
-<!ENTITY Jcirc  SDATA "[Jcirc ]"--=capital J, circumflex accent-->
-<!ENTITY kcedil SDATA "[kcedil]"--=small k, cedilla-->
-<!ENTITY Kcedil SDATA "[Kcedil]"--=capital K, cedilla-->
-<!ENTITY kgreen SDATA "[kgreen]"--=small k, Greenlandic-->
-<!ENTITY lacute SDATA "[lacute]"--=small l, acute accent-->
-<!ENTITY Lacute SDATA "[Lacute]"--=capital L, acute accent-->
-<!ENTITY lcaron SDATA "[lcaron]"--=small l, caron-->
-<!ENTITY Lcaron SDATA "[Lcaron]"--=capital L, caron-->
-<!ENTITY lcedil SDATA "[lcedil]"--=small l, cedilla-->
-<!ENTITY Lcedil SDATA "[Lcedil]"--=capital L, cedilla-->
-<!ENTITY lmidot SDATA "[lmidot]"--=small l, middle dot-->
-<!ENTITY Lmidot SDATA "[Lmidot]"--=capital L, middle dot-->
-<!ENTITY lstrok SDATA "[lstrok]"--=small l, stroke-->
-<!ENTITY Lstrok SDATA "[Lstrok]"--=capital L, stroke-->
-<!ENTITY nacute SDATA "[nacute]"--=small n, acute accent-->
-<!ENTITY Nacute SDATA "[Nacute]"--=capital N, acute accent-->
-<!ENTITY eng    SDATA "[eng   ]"--=small eng, Lapp-->
-<!ENTITY ENG    SDATA "[ENG   ]"--=capital ENG, Lapp-->
-<!ENTITY napos  SDATA "[napos ]"--=small n, apostrophe-->
-<!ENTITY ncaron SDATA "[ncaron]"--=small n, caron-->
-<!ENTITY Ncaron SDATA "[Ncaron]"--=capital N, caron-->
-<!ENTITY ncedil SDATA "[ncedil]"--=small n, cedilla-->
-<!ENTITY Ncedil SDATA "[Ncedil]"--=capital N, cedilla-->
-<!ENTITY odblac SDATA "[odblac]"--=small o, double acute accent-->
-<!ENTITY Odblac SDATA "[Odblac]"--=capital O, double acute accent-->
-<!ENTITY Omacr  SDATA "[Omacr ]"--=capital O, macron-->
-<!ENTITY omacr  SDATA "[omacr ]"--=small o, macron-->
-<!ENTITY oelig  SDATA "[oelig ]"--=small oe ligature-->
-<!ENTITY OElig  SDATA "[OElig ]"--=capital OE ligature-->
-<!ENTITY racute SDATA "[racute]"--=small r, acute accent-->
-<!ENTITY Racute SDATA "[Racute]"--=capital R, acute accent-->
-<!ENTITY rcaron SDATA "[rcaron]"--=small r, caron-->
-<!ENTITY Rcaron SDATA "[Rcaron]"--=capital R, caron-->
-<!ENTITY rcedil SDATA "[rcedil]"--=small r, cedilla-->
-<!ENTITY Rcedil SDATA "[Rcedil]"--=capital R, cedilla-->
-<!ENTITY sacute SDATA "[sacute]"--=small s, acute accent-->
-<!ENTITY Sacute SDATA "[Sacute]"--=capital S, acute accent-->
-<!ENTITY scaron SDATA "[scaron]"--=small s, caron-->
-<!ENTITY Scaron SDATA "[Scaron]"--=capital S, caron-->
-<!ENTITY scedil SDATA "[scedil]"--=small s, cedilla-->
-<!ENTITY Scedil SDATA "[Scedil]"--=capital S, cedilla-->
-<!ENTITY scirc  SDATA "[scirc ]"--=small s, circumflex accent-->
-<!ENTITY Scirc  SDATA "[Scirc ]"--=capital S, circumflex accent-->
-<!ENTITY tcaron SDATA "[tcaron]"--=small t, caron-->
-<!ENTITY Tcaron SDATA "[Tcaron]"--=capital T, caron-->
-<!ENTITY tcedil SDATA "[tcedil]"--=small t, cedilla-->
-<!ENTITY Tcedil SDATA "[Tcedil]"--=capital T, cedilla-->
-<!ENTITY tstrok SDATA "[tstrok]"--=small t, stroke-->
-<!ENTITY Tstrok SDATA "[Tstrok]"--=capital T, stroke-->
-<!ENTITY ubreve SDATA "[ubreve]"--=small u, breve-->
-<!ENTITY Ubreve SDATA "[Ubreve]"--=capital U, breve-->
-<!ENTITY udblac SDATA "[udblac]"--=small u, double acute accent-->
-<!ENTITY Udblac SDATA "[Udblac]"--=capital U, double acute accent-->
-<!ENTITY umacr  SDATA "[umacr ]"--=small u, macron-->
-<!ENTITY Umacr  SDATA "[Umacr ]"--=capital U, macron-->
-<!ENTITY uogon  SDATA "[uogon ]"--=small u, ogonek-->
-<!ENTITY Uogon  SDATA "[Uogon ]"--=capital U, ogonek-->
-<!ENTITY uring  SDATA "[uring ]"--=small u, ring-->
-<!ENTITY Uring  SDATA "[Uring ]"--=capital U, ring-->
-<!ENTITY utilde SDATA "[utilde]"--=small u, tilde-->
-<!ENTITY Utilde SDATA "[Utilde]"--=capital U, tilde-->
-<!ENTITY wcirc  SDATA "[wcirc ]"--=small w, circumflex accent-->
-<!ENTITY Wcirc  SDATA "[Wcirc ]"--=capital W, circumflex accent-->
-<!ENTITY ycirc  SDATA "[ycirc ]"--=small y, circumflex accent-->
-<!ENTITY Ycirc  SDATA "[Ycirc ]"--=capital Y, circumflex accent-->
-<!ENTITY Yuml   SDATA "[Yuml  ]"--=capital Y, dieresis or umlaut mark-->
-<!ENTITY zacute SDATA "[zacute]"--=small z, acute accent-->
-<!ENTITY Zacute SDATA "[Zacute]"--=capital Z, acute accent-->
-<!ENTITY zcaron SDATA "[zcaron]"--=small z, caron-->
-<!ENTITY Zcaron SDATA "[Zcaron]"--=capital Z, caron-->
-<!ENTITY zdot   SDATA "[zdot  ]"--=small z, dot above-->
-<!ENTITY Zdot   SDATA "[Zdot  ]"--=capital Z, dot above-->
--- a/usr/src/cmd/man/src/util/iso-num.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOnum PUBLIC
-       "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN">
-     %ISOnum;
--->
-<!ENTITY half   SDATA "[half  ]"--=fraction one-half-->
-<!ENTITY frac12 SDATA "[frac12]"--=fraction one-half-->
-<!ENTITY frac14 SDATA "[frac14]"--=fraction one-quarter-->
-<!ENTITY frac34 SDATA "[frac34]"--=fraction three-quarters-->
-<!ENTITY frac18 SDATA "[frac18]"--=fraction one-eighth-->
-<!ENTITY frac38 SDATA "[frac38]"--=fraction three-eighths-->
-<!ENTITY frac58 SDATA "[frac58]"--=fraction five-eighths-->
-<!ENTITY frac78 SDATA "[frac78]"--=fraction seven-eighths-->
-
-<!ENTITY sup1   SDATA "[sup1  ]"--=superscript one-->
-<!ENTITY sup2   SDATA "[sup2  ]"--=superscript two-->
-<!ENTITY sup3   SDATA "[sup3  ]"--=superscript three-->
-
-<!ENTITY plus   SDATA "[plus  ]"--=plus sign B:-- >
-<!ENTITY plusmn SDATA "[plusmn]"--/pm B: =plus-or-minus sign-->
-<!ENTITY lt     SDATA "[lt    ]"--=less-than sign R:-->
-<!ENTITY equals SDATA "[equals]"--=equals sign R:-->
-<!ENTITY gt     SDATA "[gt    ]"--=greater-than sign R:-->
-<!ENTITY divide SDATA "[divide]"--/div B: =divide sign-->
-<!ENTITY times  SDATA "[times ]"--/times B: =multiply sign-->
-
-<!ENTITY curren SDATA "[curren]"--=general currency sign-->
-<!ENTITY pound  SDATA "[pound ]"--=pound sign-->
-<!ENTITY dollar SDATA "[dollar]"--=dollar sign-->
-<!ENTITY cent   SDATA "[cent  ]"--=cent sign-->
-<!ENTITY yen    SDATA "[yen   ]"--/yen =yen sign-->
-
-<!ENTITY num    SDATA "[num   ]"--=number sign-->
-<!ENTITY percnt SDATA "[percnt]"--=percent sign-->
-<!ENTITY amp    SDATA "[amp   ]"--=ampersand-->
-<!ENTITY ast    SDATA "[ast   ]"--/ast B: =asterisk-->
-<!ENTITY commat SDATA "[commat]"--=commercial at-->
-<!ENTITY lsqb   SDATA "[lsqb  ]"--/lbrack O: =left square bracket-->
-<!ENTITY bsol   SDATA "[bsol  ]"--/backslash =reverse solidus-->
-<!ENTITY rsqb   SDATA "[rsqb  ]"--/rbrack C: =right square bracket-->
-<!ENTITY lcub   SDATA "[lcub  ]"--/lbrace O: =left curly bracket-->
-<!ENTITY horbar SDATA "[horbar]"--=horizontal bar-->
-<!ENTITY verbar SDATA "[verbar]"--/vert =vertical bar-->
-<!ENTITY rcub   SDATA "[rcub  ]"--/rbrace C: =right curly bracket-->
-<!ENTITY micro  SDATA "[micro ]"--=micro sign-->
-<!ENTITY ohm    SDATA "[ohm   ]"--=ohm sign-->
-<!ENTITY deg    SDATA "[deg   ]"--=degree sign-->
-<!ENTITY ordm   SDATA "[ordm  ]"--=ordinal indicator, masculine-->
-<!ENTITY ordf   SDATA "[ordf  ]"--=ordinal indicator, feminine-->
-<!ENTITY sect   SDATA "[sect  ]"--=section sign-->
-<!ENTITY para   SDATA "[para  ]"--=pilcrow (paragraph sign)-->
-<!ENTITY middot SDATA "[middot]"--/centerdot B: =middle dot-->
-<!ENTITY larr   SDATA "[larr  ]"--/leftarrow /gets A: =leftward arrow-->
-<!ENTITY rarr   SDATA "[rarr  ]"--/rightarrow /to A: =rightward arrow-->
-<!ENTITY uarr   SDATA "[uarr  ]"--/uparrow A: =upward arrow-->
-<!ENTITY darr   SDATA "[darr  ]"--/downarrow A: =downward arrow-->
-<!ENTITY copy   SDATA "[copy  ]"--=copyright sign-->
-<!ENTITY reg    SDATA "[reg   ]"--/circledR =registered sign-->
-<!ENTITY trade  SDATA "[trade ]"--=trade mark sign-->
-<!ENTITY brvbar SDATA "[brvbar]"--=broken (vertical) bar-->
-<!ENTITY not    SDATA "[not   ]"--/neg /lnot =not sign-->
-<!ENTITY sung   SDATA "[sung  ]"--=music note (sung text sign)-->
-
-<!ENTITY excl   SDATA "[excl  ]"--=exclamation mark-->
-<!ENTITY iexcl  SDATA "[iexcl ]"--=inverted exclamation mark-->
-<!ENTITY quot   SDATA "[quot  ]"--=quotation mark-->
-<!ENTITY apos   SDATA "[apos  ]"--=apostrophe-->
-<!ENTITY lpar   SDATA "[lpar  ]"--O: =left parenthesis-->
-<!ENTITY rpar   SDATA "[rpar  ]"--C: =right parenthesis-->
-<!ENTITY comma  SDATA "[comma ]"--P: =comma-->
-<!ENTITY lowbar SDATA "[lowbar]"--=low line-->
-<!ENTITY hyphen SDATA "[hyphen]"--=hyphen-->
-<!ENTITY period SDATA "[period]"--=full stop, period-->
-<!ENTITY sol    SDATA "[sol   ]"--=solidus-->
-<!ENTITY colon  SDATA "[colon ]"--/colon P:-->
-<!ENTITY semi   SDATA "[semi  ]"--=semicolon P:-->
-<!ENTITY quest  SDATA "[quest ]"--=question mark-->
-<!ENTITY iquest SDATA "[iquest]"--=inverted question mark-->
-<!ENTITY laquo  SDATA "[laquo ]"--=angle quotation mark, left-->
-<!ENTITY raquo  SDATA "[raquo ]"--=angle quotation mark, right-->
-<!ENTITY lsquo  SDATA "[lsquo ]"--=single quotation mark, left-->
-<!ENTITY rsquo  SDATA "[rsquo ]"--=single quotation mark, right-->
-<!ENTITY ldquo  SDATA "[ldquo ]"--=double quotation mark, left-->
-<!ENTITY rdquo  SDATA "[rdquo ]"--=double quotation mark, right-->
-<!ENTITY nbsp   SDATA "[nbsp  ]"--=no break (required) space-->
-<!ENTITY shy    SDATA "[shy   ]"--=soft hyphen-->
--- a/usr/src/cmd/man/src/util/iso-pub.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOpub PUBLIC
-       "ISO 8879:1986//ENTITIES Publishing//EN">
-     %ISOpub;
--->
-<!ENTITY emsp   SDATA "[emsp  ]"--=em space-->
-<!ENTITY ensp   SDATA "[ensp  ]"--=en space (1/2-em)-->
-<!ENTITY emsp13 SDATA "[emsp3 ]"--=1/3-em space-->
-<!ENTITY emsp14 SDATA "[emsp4 ]"--=1/4-em space-->
-<!ENTITY numsp  SDATA "[numsp ]"--=digit space (width of a number)-->
-<!ENTITY puncsp SDATA "[puncsp]"--=punctuation space (width of comma)-->
-<!ENTITY thinsp SDATA "[thinsp]"--=thin space (1/6-em)-->
-<!ENTITY hairsp SDATA "[hairsp]"--=hair space-->
-<!ENTITY mdash  SDATA "[mdash ]"--=em dash-->
-<!ENTITY ndash  SDATA "[ndash ]"--=en dash-->
-<!ENTITY dash   SDATA "[dash  ]"--=hyphen (true graphic)-->
-<!ENTITY blank  SDATA "[blank ]"--=significant blank symbol-->
-<!ENTITY hellip SDATA "[hellip]"--=ellipsis (horizontal)-->
-<!ENTITY nldr   SDATA "[nldr  ]"--=double baseline dot (en leader)-->
-<!ENTITY frac13 SDATA "[frac13]"--=fraction one-third-->
-<!ENTITY frac23 SDATA "[frac23]"--=fraction two-thirds-->
-<!ENTITY frac15 SDATA "[frac15]"--=fraction one-fifth-->
-<!ENTITY frac25 SDATA "[frac25]"--=fraction two-fifths-->
-<!ENTITY frac35 SDATA "[frac35]"--=fraction three-fifths-->
-<!ENTITY frac45 SDATA "[frac45]"--=fraction four-fifths-->
-<!ENTITY frac16 SDATA "[frac16]"--=fraction one-sixth-->
-<!ENTITY frac56 SDATA "[frac56]"--=fraction five-sixths-->
-<!ENTITY incare SDATA "[incare]"--=in-care-of symbol-->
-<!ENTITY block  SDATA "[block ]"--=full block-->
-<!ENTITY uhblk  SDATA "[uhblk ]"--=upper half block-->
-<!ENTITY lhblk  SDATA "[lhblk ]"--=lower half block-->
-<!ENTITY blk14  SDATA "[blk14 ]"--=25% shaded block-->
-<!ENTITY blk12  SDATA "[blk12 ]"--=50% shaded block-->
-<!ENTITY blk34  SDATA "[blk34 ]"--=75% shaded block-->
-<!ENTITY marker SDATA "[marker]"--=histogram marker-->
-<!ENTITY cir    SDATA "[cir   ]"--/circ B: =circle, open-->
-<!ENTITY squ    SDATA "[squ   ]"--=square, open-->
-<!ENTITY rect   SDATA "[rect  ]"--=rectangle, open-->
-<!ENTITY utri   SDATA "[utri  ]"--/triangle =up triangle, open-->
-<!ENTITY dtri   SDATA "[dtri  ]"--/triangledown =down triangle, open-->
-<!ENTITY star   SDATA "[star  ]"--=star, open-->
-<!ENTITY bull   SDATA "[bull  ]"--/bullet B: =round bullet, filled-->
-<!ENTITY squf   SDATA "[squf  ]"--/blacksquare =sq bullet, filled-->
-<!ENTITY utrif  SDATA "[utrif ]"--/blacktriangle =up tri, filled-->
-<!ENTITY dtrif  SDATA "[dtrif ]"--/blacktriangledown =dn tri, filled-->
-<!ENTITY ltrif  SDATA "[ltrif ]"--/blacktriangleleft R: =l tri, filled-->
-<!ENTITY rtrif  SDATA "[rtrif ]"--/blacktriangleright R: =r tri, filled-->
-<!ENTITY clubs  SDATA "[clubs ]"--/clubsuit =club suit symbol-->
-<!ENTITY diams  SDATA "[diams ]"--/diamondsuit =diamond suit symbol-->
-<!ENTITY hearts SDATA "[hearts]"--/heartsuit =heart suit symbol-->
-<!ENTITY spades SDATA "[spades]"--/spadesuit =spades suit symbol-->
-<!ENTITY malt   SDATA "[malt  ]"--/maltese =maltese cross-->
-<!ENTITY dagger SDATA "[dagger]"--/dagger B: =dagger-->
-<!ENTITY Dagger SDATA "[Dagger]"--/ddagger B: =double dagger-->
-<!ENTITY check  SDATA "[check ]"--/checkmark =tick, check mark-->
-<!ENTITY cross  SDATA "[ballot]"--=ballot cross-->
-<!ENTITY sharp  SDATA "[sharp ]"--/sharp =musical sharp-->
-<!ENTITY flat   SDATA "[flat  ]"--/flat =musical flat-->
-<!ENTITY male   SDATA "[male  ]"--=male symbol-->
-<!ENTITY female SDATA "[female]"--=female symbol-->
-<!ENTITY phone  SDATA "[phone ]"--=telephone symbol-->
-<!ENTITY telrec SDATA "[telrec]"--=telephone recorder symbol-->
-<!ENTITY copysr SDATA "[copysr]"--=sound recording copyright sign-->
-<!ENTITY caret  SDATA "[caret ]"--=caret (insertion mark)-->
-<!ENTITY lsquor SDATA "[lsquor]"--=rising single quote, left (low)-->
-<!ENTITY ldquor SDATA "[ldquor]"--=rising dbl quote, left (low)-->
-
-<!ENTITY fflig  SDATA "[fflig ]"--small ff ligature-->
-<!ENTITY filig  SDATA "[filig ]"--small fi ligature-->
-<!ENTITY fjlig  SDATA "[fjlig ]"--small fj ligature-->
-<!ENTITY ffilig SDATA "[ffilig]"--small ffi ligature-->
-<!ENTITY ffllig SDATA "[ffllig]"--small ffl ligature-->
-<!ENTITY fllig  SDATA "[fllig ]"--small fl ligature-->
-
-<!ENTITY mldr   SDATA "[mldr  ]"--em leader-->
-<!ENTITY rdquor SDATA "[rdquor]"--rising dbl quote, right (high)-->
-<!ENTITY rsquor SDATA "[rsquor]"--rising single quote, right (high)-->
-<!ENTITY vellip SDATA "[vellip]"--vertical ellipsis-->
-
-<!ENTITY hybull SDATA "[hybull]"--rectangle, filled (hyphen bullet)-->
-<!ENTITY loz    SDATA "[loz   ]"--/lozenge - lozenge or total mark-->
-<!ENTITY lozf   SDATA "[lozf  ]"--/blacklozenge - lozenge, filled-->
-<!ENTITY ltri   SDATA "[ltri  ]"--/triangleleft B: l triangle, open-->
-<!ENTITY rtri   SDATA "[rtri  ]"--/triangleright B: r triangle, open-->
-<!ENTITY starf  SDATA "[starf ]"--/bigstar - star, filled-->
-
-<!ENTITY natur  SDATA "[natur ]"--/natural - music natural-->
-<!ENTITY rx     SDATA "[rx    ]"--pharmaceutical prescription (Rx)-->
-<!ENTITY sext   SDATA "[sext  ]"--sextile (6-pointed star)-->
-
-<!ENTITY target SDATA "[target]"--register mark or target-->
-<!ENTITY dlcrop SDATA "[dlcrop]"--downward left crop mark -->
-<!ENTITY drcrop SDATA "[drcrop]"--downward right crop mark -->
-<!ENTITY ulcrop SDATA "[ulcrop]"--upward left crop mark -->
-<!ENTITY urcrop SDATA "[urcrop]"--upward right crop mark -->
--- a/usr/src/cmd/man/src/util/iso-tech.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % ISOtech PUBLIC
-       "ISO 8879:1986//ENTITIES General Technical//EN">
-     %ISOtech;
--->
-<!ENTITY aleph  SDATA "[aleph ]"--/aleph =aleph, Hebrew-->
-<!ENTITY and    SDATA "[and   ]"--/wedge /land B: =logical and-->
-<!ENTITY ang90  SDATA "[ang90 ]"--=right (90 degree) angle-->
-<!ENTITY angsph SDATA "[angsph]"--/sphericalangle =angle-spherical-->
-<!ENTITY ap     SDATA "[ap    ]"--/approx R: =approximate-->
-<!ENTITY becaus SDATA "[becaus]"--/because R: =because-->
-<!ENTITY bottom SDATA "[bottom]"--/bot B: =perpendicular-->
-<!ENTITY cap    SDATA "[cap   ]"--/cap B: =intersection-->
-<!ENTITY cong   SDATA "[cong  ]"--/cong R: =congruent with-->
-<!ENTITY conint SDATA "[conint]"--/oint L: =contour integral operator-->
-<!ENTITY cup    SDATA "[cup   ]"--/cup B: =union or logical sum-->
-<!ENTITY equiv  SDATA "[equiv ]"--/equiv R: =identical with-->
-<!ENTITY exist  SDATA "[exist ]"--/exists =at least one exists-->
-<!ENTITY forall SDATA "[forall]"--/forall =for all-->
-<!ENTITY fnof   SDATA "[fnof  ]"--=function of (italic small f)-->
-<!ENTITY ge     SDATA "[ge    ]"--/geq /ge R: =greater-than-or-equal-->
-<!ENTITY iff    SDATA "[iff   ]"--/iff =if and only if-->
-<!ENTITY infin  SDATA "[infin ]"--/infty =infinity-->
-<!ENTITY int    SDATA "[int   ]"--/int L: =integral operator-->
-<!ENTITY isin   SDATA "[isin  ]"--/in R: =set membership-->
-<!ENTITY lang   SDATA "[lang  ]"--/langle O: =left angle bracket-->
-<!ENTITY lArr   SDATA "[lArr  ]"--/Leftarrow A: =is implied by-->
-<!ENTITY le     SDATA "[le    ]"--/leq /le R: =less-than-or-equal-->
-<!ENTITY minus  SDATA "[minus ]"--B: =minus sign-->
-<!ENTITY mnplus SDATA "[mnplus]"--/mp B: =minus-or-plus sign-->
-<!ENTITY nabla  SDATA "[nabla ]"--/nabla =del, Hamilton operator-->
-<!ENTITY ne     SDATA "[ne    ]"--/ne /neq R: =not equal-->
-<!ENTITY ni     SDATA "[ni    ]"--/ni /owns R: =contains-->
-<!ENTITY or     SDATA "[or    ]"--/vee /lor B: =logical or-->
-<!ENTITY par    SDATA "[par   ]"--/parallel R: =parallel-->
-<!ENTITY part   SDATA "[part  ]"--/partial =partial differential-->
-<!ENTITY permil SDATA "[permil]"--=per thousand-->
-<!ENTITY perp   SDATA "[perp  ]"--/perp R: =perpendicular-->
-<!ENTITY prime  SDATA "[prime ]"--/prime =prime or minute-->
-<!ENTITY Prime  SDATA "[Prime ]"--=double prime or second-->
-<!ENTITY prop   SDATA "[prop  ]"--/propto R: =is proportional to-->
-<!ENTITY radic  SDATA "[radic ]"--/surd =radical-->
-<!ENTITY rang   SDATA "[rang  ]"--/rangle C: =right angle bracket-->
-<!ENTITY rArr   SDATA "[rArr  ]"--/Rightarrow A: =implies-->
-<!ENTITY sim    SDATA "[sim   ]"--/sim R: =similar-->
-<!ENTITY sime   SDATA "[sime  ]"--/simeq R: =similar, equals-->
-<!ENTITY square SDATA "[square]"--/square B: =square-->
-<!ENTITY sub    SDATA "[sub   ]"--/subset R: =subset or is implied by-->
-<!ENTITY sube   SDATA "[sube  ]"--/subseteq R: =subset, equals-->
-<!ENTITY sup    SDATA "[sup   ]"--/supset R: =superset or implies-->
-<!ENTITY supe   SDATA "[supe  ]"--/supseteq R: =superset, equals-->
-<!ENTITY there4 SDATA "[there4]"--/therefore R: =therefore-->
-<!ENTITY Verbar SDATA "[Verbar]"--/Vert =dbl vertical bar-->
-
-<!ENTITY angst  SDATA "[angst ]"--Angstrom =capital A, ring-->
-<!ENTITY bernou SDATA "[bernou]"--Bernoulli function (script capital B)-->
-<!ENTITY compfn SDATA "[compfn]"--B: composite function (small circle)-->
-<!ENTITY Dot    SDATA "[Dot   ]"--=dieresis or umlaut mark-->
-<!ENTITY DotDot SDATA "[DotDot]"--four dots above-->
-<!ENTITY hamilt SDATA "[hamilt]"--Hamiltonian (script capital H)-->
-<!ENTITY lagran SDATA "[lagran]"--Lagrangian (script capital L)-->
-<!ENTITY lowast SDATA "[lowast]"--low asterisk-->
-<!ENTITY notin  SDATA "[notin ]"--N: negated set membership-->
-<!ENTITY order  SDATA "[order ]"--order of (script small o)-->
-<!ENTITY phmmat SDATA "[phmmat]"--physics M-matrix (script capital M)-->
-<!ENTITY tdot   SDATA "[tdot  ]"--three dots above-->
-<!ENTITY tprime SDATA "[tprime]"--triple prime-->
-<!ENTITY wedgeq SDATA "[wedgeq]"--R: corresponds to (wedge, equals)-->
--- a/usr/src/cmd/man/src/util/nsgmls.src/COPYING	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-Copyright (c) 1994, 1995, 1996 James Clark
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-``Software''), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL JAMES CLARK BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of James Clark shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from James Clark.
--- a/usr/src/cmd/man/src/util/nsgmls.src/COPYING.descrip	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-SGML PARSER
--- a/usr/src/cmd/man/src/util/nsgmls.src/Makefile	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-#
-#
-# Copyright 1994, 1995 James Clark
-#
-
-#ident	"%Z%%M%	%I%	%E% SMI"
-
-include ../../../../Makefile.cmd
-prefix=$(ROOTLIB)
-exec_prefix=$(prefix)
-# Where to install the binaries
-bindir=$(exec_prefix)/sgml
-# Extension for man pages.
-man1ext=1
-# Directory for man pages
-man1dir=$(prefix)/man/man$(man1ext)
-INSTALL=cp
-# You might want to change this to uncomment this on BSD systems
-#INSTALL=install
-
-# If you use gcc, then you must have at least version 2.6.1 and
-# you must use -fno-implicit-templates
-# and -O (or any optimization level >= 1).
-# c++ is a front-end for gcc which takes care of linking with -lstdc++
-#CXX=c++ -fno-implicit-templates -O2
-#CXX=$(CCC) -O
-WARN=-Wall -Wno-reorder -Wwrite-strings -Wpointer-arith -Wnested-externs -Woverloaded-virtual -Wbad-function-cast
-# Executables will be *very* large if you use -g.
-DEBUG=
-# Add -DSP_HAVE_BOOL if you have the bool type.
-# Add -DSP_ANSI_CLASS_INST for ANSI style explicit class template instantiation.
-# Add -DSP_MULTI_BYTE for multi-byte support.
-# Add -DSP_HAVE_LOCALE if you have setlocale().
-# Add -DSP_HAVE_GETTEXT if you gettext() and friends (eg Solaris 2.3).
-# Add -DSP_HAVE_SOCKET if you have sockets and you want support for HTTP
-# Add -DSGML_CATALOG_FILES_DEFAULT=\"/usr/local/lib/sgml/catalog\"
-#   (for example) to change the value used if the SGML_CATALOG_FILES
-#   environment variable is unset.  SP now automatically searches for a file
-#   called "catalog" in the same directory as the document entity.
-XDEFINES=-DSP_MULTI_BYTE -DSP_HAVE_LOCALE -DSP_HAVE_GETTEXT -DSP_HAVE_SOCKET -DSGML_CATALOG_FILES_DEFAULT=\"/usr/share/lib/sgml/locale/C/dtds/catalog\"
-DEFINES=$(XDEFINES) 
-#CXXFLAGS=-ansi $(DEBUG) $(WARN)
-CXXFLAGS=
-# Flag to pass to CXX to make it output list of dependencies as a Makefile.
-LDFLAGS += -norunpath -nolib
-OPT=
-CFLAGS += $(OPT) $(DEBUG) 
-CCFLAGS += -noex
-# Missing library functions
-# Uncomment these if your C++ system doesn't provide them.
-LIBOBJS=#strerror.o memmove.o
-# iostreams are required
-# If you defined SP_HAVE_SOCKET, add any libraries that are needed for sockets
-#-lsocket -lnsl needed on Solaris 2.x
-# -lnsl on SunOS 4.1.3
-XLIBS=-lsocket -lnsl
-# -L/usr/local/lib may be needed on the RS/6000
-LIBS += $(ENVLDLIBS1) $(ENVLDLIBS2) $(XLIBS) $(CCNEEDED) -lc
-# If you're building in another directory, copy or link this Makefile
-# to the build directory, and set srcdir to point to the source directory.
-srcdir=.
-AR=ar
-RANLIB=:
-# Uncomment this for SunOS 4.1.3 or FreeBSD
-# (and probably other BSD flavor systems as well)
-#RANLIB=ranlib
-M4=m4
-# perl is needed if you change or add messages
-PERL=perl
-# Suffix for executables.
-EXE=
-# Uncomment this for OS/2.
-#EXE=.exe
-
-LIBDIRS=lib $(XLIBDIRS)
-PROGDIRS=nsgmls $(XPROGDIRS)
-dodirs=$(LIBDIRS) $(PROGDIRS)
-PURIFYFLAGS=
-PURIFY=purify $(PURIFYFLAGS) -g++=yes -collector=`dirname \`gcc -print-libgcc-file-name\``/ld
-
-MDEFINES='CXX=$(CXX)' 'CC=$(CC)' 'LIBOBJS=$(LIBOBJS)' 'CXXFLAGS=$(CXXFLAGS)' \
- 'CCFLAGS=$(CCFLAGS)' \
- 'CFLAGS=$(CFLAGS)' 'LDFLAGS=$(LDFLAGS)' 'DEFINES=$(DEFINES)' \
- 'srcdir=$(srcdir)' 'AR=$(AR)' 'RANLIB=$(RANLIB)' \
- 'M4=$(M4)' 'PERL=$(PERL)' 'LIBS=$(LIBS)' 'PURIFY=$(PURIFY)' \
- 'PIC_FLAG=$(PIC_FLAG)' 'XPROGDIRS=$(XPROGDIRS)' 'XLIBDIRS=$(XLIBDIRS)' \
- 'libMakefile=$(libMakefile)' 'EXE=$(EXE)' 'bindir=$(bindir)' \
- 'man1dir=$(man1dir)' 'man1ext=$(man1ext)' 'INSTALL=$(INSTALL)'
-
-
-# Automatic template instantiation can cause compilers to generate
-# various extra files; the clean target won't delete these.
-TARGETS=all install depend gen clean clobber
-libMakefile=Makefile.lib
-do=all
-
-$(TARGETS): FORCE
-	@$(MAKE) -f $(srcdir)/Makefile $(MDEFINES) do=$@ $(dodirs)
-
-
-$(LIBDIRS): FORCE
-	@if test $(srcdir) = .; \
-	then srcdir=.; \
-	else srcdir=`cd $(srcdir); pwd`/$@; \
-	fi; \
-	test -d $@ || mkdir $@; \
-	cd $@; \
-	test -f $$srcdir/Makefile.dep || touch $$srcdir/Makefile.dep; \
-	$(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \
-		-f $$srcdir/../Makefile.comm -f $$srcdir/Makefile.sub \
-	        -f $$srcdir/../$(libMakefile) -f $$srcdir/Makefile.dep $(do)
-
-$(PROGDIRS): FORCE
-	@if test $(srcdir) = .; \
-	then srcdir=.; \
-	else srcdir=`cd $(srcdir); pwd`/$@; \
-	fi; \
-	test -d $@ || mkdir $@; \
-	cd $@; \
-	test -f $$srcdir/Makefile.dep || touch $$srcdir/Makefile.dep; \
-	$(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \
-		-f $$srcdir/../Makefile.comm -f $$srcdir/Makefile.sub \
-	        -f $$srcdir/../Makefile.prog -f $$srcdir/Makefile.dep $(do)
-
-$(PROGDIRS): lib
-
-# GNU tar
-TAR=tar
-
-dist: FORCE
-	#cd test; ./CLEAN
-	#version=`cat VERSION`; \
-	#rm -f sp-$$version; \
-	#ln -s `pwd` sp-$$version; \
-	#$(TAR) -c -f sp-$$version.tar.gz -h -z \
-	  #--exclude sp-$$version/test/cap \
-	  #--exclude sp-$$version/test/out \
-	  #--exclude sp-$$version/test/err \
-	  #`sed -e "s|.*|sp-$$version/&|" FILES`; \
-	#rm -f sp-$$version
-
-#check: FORCE
-	#NSGMLS=`pwd`/nsgmls/nsgmls; export NSGMLS; cd $(srcdir); ./dotest
-
-FORCE:
--- a/usr/src/cmd/man/src/util/nsgmls.src/Makefile.comm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-#
-#ident	"%Z%%M%	%I%	%E% SMI"
-#
-# Copyright (c) 1998 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-
-include ../../../../../Makefile.cmd
-
-CXXFLAGS=$(DEBUG) $(OPTIMIZE) $(WARN)
-ALL_CXXFLAGS=$(CXXFLAGS) -I$(srcdir) -I$(srcdir)/../include $(INCLUDE) \
- $(DEFINES)
-ALL_CFLAGS=$(CFLAGS) $(DEBUG) $(OPTIMIZE) $(INCLUDE) $(DEFINES)
-MSGGENFLAGS=
-CXXDEPGENFLAGS=-MM
-AR=ar
-RANLIB=:
-M4=m4
-GENSRCS=
-OBJS=
-COBJS=
-PROG=
-#PERL=perl
-
-.SUFFIXES: .cxx .c .o .m4 .msg
-
-.cxx.o:
-	$(CCC) $(ALL_CXXFLAGS) $(CCFLAGS) $(CPPFLAGS) -c $(OUTPUT_OPTION) $<
-	$(POST_PROCESS_O)
-
-#.c.o:
-#	$(CC) $(ALL_CFLAGS) -c $<
-
-.m4.cxx:
-	$(RM) $@
-	$(M4) $(srcdir)/../lib/instmac.m4 $< >$@
-	$(CHMOD) -w $@
-
-# We don't use perl... just use static .h files
-#.msg.h:
-#	$(PERL) -w $(srcdir)/../msggen.pl $(MSGGENFLAGS) $<
-
-depend_src: depend.temp
-	$(MV) depend.temp Makefile.dep
-
-depend.temp: FORCE
-	$(CXX) $(CXXDEPGENFLAGS) $(ALL_CXXFLAGS) $(OBJS:.o=.cxx) \
-	  | sed -e 's; \([^/ ][^/ ]*\)/; $$(srcdir)/\1/;g' >depend.temp
-
-clean: FORCE
-	-$(RM) $(CLEANFILES)
-
-clobber: FORCE
-	-$(RM) -r SunWS_cache
-	-$(RM) $(CLEANFILES)
-
-FORCE:
-
-%: RCS/%,v
-	test -w $@ || co -u $@
--- a/usr/src/cmd/man/src/util/nsgmls.src/Makefile.lib	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-#
-# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-
-#ident	"%Z%%M%	%I%	%E% SMI"
-
-include ../../../../../Makefile.cmd
-CLEANFILES=lib$(LIB).a $(OBJS) $(COBJS) core
-
-all: lib$(LIB).a
-
-lib$(LIB).a: $(OBJS) $(COBJS) $(DEPLIBS)
-	$(AR) r $@ $?
-	$(RANLIB) $@
-
-install:
-install-man:
-depend: depend_src
-depend.temp: $(GENSRCS)
-gen: $(GENSRCS)
--- a/usr/src/cmd/man/src/util/nsgmls.src/Makefile.prog	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-# Copyright (c) 2001 by Sun Microsystems, Inc.
-# All rights reserved.
-
-include ../../../../../Makefile.cmd
-CLEANFILES=$(PROG)$(EXE) $(OBJS) core
-
-all: $(PROG)$(EXE)
-
-pure: $(PROG).pure
-
-$(PROG)$(EXE): $(OBJS) $(COBJS) $(XLIBS)
-	$(CCC) $(ALL_CXXFLAGS) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(XLIBS) $(LIBS)
-	$(POST_PROCESS)
-	cp $@ ../..
-
-$(PROG).pure: $(OBJS) $(COBJS) $(XLIBS)
-	$(PURIFY) $(CXX) $(ALL_CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(XLIBS) $(LIBS)
-
-install: $(PROG)$(EXE)
-	-test -d $(bindir) || mkdir $(bindir)
-	-rm -f $(bindir)/$(PROG)$(EXE)
-	$(INSTALL) $(PROG)$(EXE) $(bindir)/$(PROG)$(EXE)
-
-depend: depend_src
-depend.temp: $(GENSRCS)
-gen: $(GENSRCS)
--- a/usr/src/cmd/man/src/util/nsgmls.src/VERSION	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-1.3.1
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/Makefile	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-NSGMLS=nsgmls
-DOCS=archform.htm \
-  build.htm \
-  catalog.htm \
-  features.htm \
-  generic.htm \
-  ideas.htm \
-  index.htm \
-  new.htm \
-  nsgmls.htm \
-  sgmldecl.htm \
-  sgmlnorm.htm \
-  sgmlsout.htm \
-  spam.htm \
-  spent.htm \
-  sysdecl.htm \
-  sysid.htm \
-  winntu.htm
-
-validate: $(DOCS)
-	$(NSGMLS) -sB $(DOCS)
-	touch validate
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/archform.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,407 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>Architectural Form Processing</TITLE>
-</HEAD>
-<BODY>
-<H1>Architectural Form Processing</H1>
-<P>
-The Hytime standard (ISO/IEC 10744) introduced the concept of
-architectural forms.  This document assumes you are already familiar
-with this concept. The first Technical Corrigendum to HyTime, which is
-soon to be published, generalizes this, and makes it possible to have
-an <I>architecture engine</I> which can perform architectural form
-processing for arbitrary architectures.  SP now includes such an
-architecture engine.
-<P>
-Non-markup sensitive applications built using SP now support
-architectural form processing using the <SAMP>-A
-<VAR>archname</VAR></SAMP> option.  When this option is specified, the
-document will be validated against all declared base architectures,
-and the output will be for the architectural document for that
-architecture: the element types, notations and attributes will be
-those defined in the meta-DTD.
-<P>
-This option is experimental and has not been subject to much testing.
-Please be sure to report any bugs or problems you encounter.
-<P>
-Although spam does not support the <SAMP>-A</SAMP> option because it
-works with the markup of your document, sgmlnorm does.
-
-<H2>Architectural Support Attributes</H2>
-<P>
-To use the <SAMP>-A</SAMP> option with a document, you must add
-<UL>
-<LI>
-an architecture base declaration for <SAMP><VAR>archname</VAR></SAMP>,
-<LI>
-a notation declaration and associated attribute definition list
-declaration for <SAMP><VAR>archname</VAR></SAMP>;
-this is called the <I>architecture notation declaration</I>.
-</UL>
-<P>
-An architecture base declaration is a processing instruction of the form:
-<PRE>
-&lt;?ArcBase <VAR>archname</VAR>&gt;
-</PRE>
-<P>
-The processing instruction is recognized either in the DTD or in an
-active LPD.
-<P>
-The architecture notation declaration and associated attribute
-definition list declaration serve to declare a number of architectural
-support attributes which control the architecture engine.  The value
-for each architecture support attribute is taken from the default
-value, if any, specified for that attribute in the attribute
-definition list declaration.  It is an error to declare an
-architecture support attribute as <SAMP>#REQUIRED</SAMP>.
-<P>
-The following architectural support attributes are recognized:
-<DL>
-<DT>
-<SAMP>ArcDTD</SAMP>
-<DD>
-The name of an external entity that contains the meta-DTD.
-This attribute is required.
-If the name starts with the PERO delimiter <SAMP>%</SAMP>,
-the entity is a parameter entity,
-otherwise it is a general entity.
-<DT>
-<SAMP>ArcQuant</SAMP>
-<DD>
-A list of tokens that looks like what follows <SAMP>QUANTITY SGMLREF</SAMP>
-in the quantity set section of an SGML declaration.
-The quantities used for parsing the meta-DTD
-and validating the architectural document
-will be the maximum of the quantities in the document's concrete syntax
-and the quantities specified here.
-<DT>
-<SAMP>ArcDocF</SAMP>
-<DD>
-The name of the document element type in the meta-DTD.
-This would be <SAMP>HyDoc</SAMP> for HyTime.
-This defaults to <SAMP><VAR>archname</VAR></SAMP>.
-<DT>
-<SAMP>ArcFormA</SAMP>
-<DD>
-The name of the attribute that elements use to specify the
-corresponding element type, if any, in the meta-DTD.
-Data entities also use this attribute to specify the corresponding
-notation in the meta-DTD.
-This would be <SAMP>HyTime</SAMP> for HyTime.
-This defaults to <SAMP><VAR>archname</VAR></SAMP>.
-<DT>
-<SAMP>ArcNamrA</SAMP>
-<DD>
-The name of the attribute that elements use to specify substitutes for
-the names of attributes in the meta-DTD.  A value of
-<SAMP>#DEFAULT</SAMP> is allowed for a substitute name; this inhibits
-mapping of an attribute to an architectural attribute, but specifies
-that the value of the architectural attribute should be defaulted
-rather than taken from the value of another attribute in the document.
-For HyTime the value of this attribute would be <SAMP>HyNames</SAMP>.
-By default no attribute name substitutition is done.
-<DT>
-<SAMP>ArcSuprA</SAMP>
-<DD>
-The name of an attribute that elements may use to suppress processing
-of their descendants.  This attribute is not recognized for data
-entities.  The value of the attribute must be one of the following
-tokens:
-<DL>
-<DT>
-<SAMP>sArcAll</SAMP>
-<DD>
-Completely suppress all architectural processing of descendants.
-It is not possible to restore architectural processing
-for a descendant.
-<DT>
-<SAMP>sArcForm</SAMP>
-<DD>
-Suppress processing of the <SAMP>ArcFormA</SAMP> attribute of all
-descendants of this element, except for those elements that have a
-non-implied <SAMP>ArcSuprA</SAMP> attribute.
-<DT>
-<SAMP>sArcNone</SAMP>
-<DD>
-Don't suppress architectural processing for the descendants of
-this element.
-</DL>
-<P>
-The value may also be implied, in which case the state of
-architectural processing is inherited.
-<P>
-If an element has an ArcSuprA attribute that was processed, its
-ArcFormA attribute will always be processed.  Otherwise its ArcFormA
-attribute will be processed unless its closest ancestor that has a
-non-implied value for the ArcSuprA attribute suppressed processing of
-the ArcFormA attribute.  An element whose ArcFormA attribute is
-processed will not be treated as architectural if it has an implied
-value for the ArcFormA attribute.
-<DT>
-<SAMP>ArcSuprF</SAMP>
-<DD>
-The name of the element type in the meta-DTD that suppresses
-architectural processing in the same manner as does the
-<SAMP>sHyTime</SAMP> form in HyTime.  By default, no element type
-does.  This behaves like an element with an
-<SAMP>ArcSuprA</SAMP> attribute of <SAMP>sArcForm</SAMP>.  The element
-type should be declared in the meta-DTD.  You should not specify a
-value for this attribute if you specified a value for the
-<SAMP>ArcSuprA</SAMP> attribute.
-<P>
-This is a non-standardized extension.
-<DT>
-<SAMP>ArcIgnDA</SAMP>
-<DD>
-The name of an attribute that elements may use to control whether
-data is ignored.
-The value of the attribute must be one of the following values:
-<DL>
-<DT>
-<SAMP>nArcIgnD</SAMP>
-<DD>
-Data is not ignored.
-It is an error if data occurs where not allowed by the meta-DTD.
-<DT>
-<SAMP>cArcIgnD</SAMP>
-<DD>
-Data is conditionally ignored.
-Data will be ignored only when it occurs where the meta-DTD
-does not allow it.
-<DT>
-<SAMP>ArcIgnD</SAMP>
-<DD>
-Data is always ignored.
-</DL>
-<P>
-The value may also be implied, in which case the state of
-architectural processing is inherited.
-If no the document element has no value specified,
-<SAMP>cArcIgnD</SAMP> will be used.
-<DT>
-<SAMP>ArcBridF</SAMP>
-<DD>
-The name of a default element type declared in a meta-DTD,
-to which elements in the document should be automatically mapped
-if they have an ID and would not otherwise be considered
-architectural.
-This would be <SAMP>HyBrid</SAMP> for HyTime.
-If your meta-DTD declares IDREF attributes, it will
-usually be appropriate to specify a value for
-<SAMP>ArcBridF</SAMP>, and to declare an ID attribute
-for that form in your meta-DTD.
-<DT>
-<SAMP>ArcDataF</SAMP>
-<DD>
-The name of a default notation declared in the meta-DTD,
-to which the external data entities in the document
-should be automatically mapped if they would
-not otherwise be considered architectural.
-If this attribute is defined,
-then general entities will be automatically architectural:
-any external data entity whose notation cannot otherwise be mapped
-into a notation in the meta-DTD will be automatically treated
-as an instance of the <SAMP>ArcDataF</SAMP> notation.
-This would be <SAMP>data</SAMP> for HyTime.
-If your meta-DTD declares entity attributes, it will usually
-be appropriate to specify a value for <SAMP>ArcDataF</SAMP>
-even if your meta-DTD declares no data attributes for the
-notation.
-<DT>
-<SAMP>ArcAuto</SAMP>
-<DD>
-This must have one of the following values:
-<DL>
-<DT>
-<SAMP>ArcAuto</SAMP>
-<DD>
-If an element does not have an <SAMP>ArcFormA</SAMP> attribute and the
-meta-DTD defines an element type with the same name as the element's
-type, the element will be automatically treated as being an instance
-of the meta-type.  This rule does not apply to the
-document element type; this is automatically treated as being an
-instance of the meta-DTD's document element type.
-Note that this automatic mapping is prevented if
-the element has an <SAMP>ArcFormA</SAMP> attribute with an implied
-value.  It is also prevented if processing of the
-<SAMP>ArcFormA</SAMP> attribute is suppressed.  This applies equally
-to the notations of external data entities.
-The default element or notation specified with the
-<SAMP>ArcBridF</SAMP> or <SAMP>ArcDfltN</SAMP> attribute
-is only considered after the mapping specified by <SAMP>ArcAuto</SAMP>.
-<DT>
-<SAMP>nArcAuto</SAMP>
-<DD>
-Automatic mapping is not performed.
-</DL>
-<P>
-The default value is <SAMP>ArcAuto</SAMP>.
-<DT>
-<SAMP>ArcOptSA</SAMP>
-<DD>
-A list of names of architectural support attributes,
-each of which is interpreted as a list of parameter entities
-to be defined with a replacement text of <SAMP>INCLUDE</SAMP>
-when parsing the meta-DTD.
-The default value is <SAMP>ArcOpt</SAMP>.
-</DL>
-<H2>Meta-DTDs</H2>
-<P>
-A meta-DTD is allowed to use the following extensions:
-<UL>
-<LI>
-a single element type or notation is allowed to be an associated
-element type or associated notation name for multiple attribute
-definition lists.
-<LI>
-<SAMP>#ALL</SAMP> can be used as an associated element type
-or associated notation name in an attribute definition list
-to define attributes for all element types or notations
-in the meta-DTD
-</UL>
-<P>
-Before any of these extensions can be used, the meta-DTD must include a
-declaration
-<PRE>
-&lt;!AFDR "ISO/IEC 10744:1992"&gt;
-</PRE>
-<P>
-This declaration should only be included if the extensions are used.
-<P>
-In all other respects a meta-DTD must be a valid SGML DTD.
-<P>
-A declared value of ENTITY for an attribute in a meta-DTD means that
-the value of the attribute must be an entity declared in
-the (non-meta) DTD that is architectural.
-An external data entity is architectural only if its notation can be
-mapped into a notation in the meta-DTD.
-All other kinds of data entities and subdoc entities are automatically
-architectural.
-<P>
-An IDREF attribute in the meta-document must have a corresponding ID
-in the meta-document.  An attribute with a declared value of ID in the
-document will be automatically mapped to an attribute with a declared
-value of ID in the meta-DTD.
-<P>
-A declared value of NOTATION in the meta-DTD means that the value of
-the attribute must have one the values specified in the name group and
-that it must be a notation in the meta-DTD.
-(Perhaps if the attribute also has a declared value of NOTATION
-in the non-meta-DTD, the value should be mapped in a similar
-way to the notation of an external data entity.)
-
-<H2>Differences from HyTime</H2>
-<P>
-There are a number of differences from how architectural processing is
-defined in the pre-Corringendum version of the HyTime standard.
-<UL>
-<LI>
-The <SAMP>ArcNamrA</SAMP> and <SAMP>ArcFormA</SAMP> attributes are not
-part of the meta-DTD.  Rather they are used by the architecture engine
-in deriving the meta-document that is validated against the meta-DTD.
-<LI>
-The <SAMP>use:</SAMP> conventional comment is not recognized.  Instead
-a single element type is allowed to be an associated element type for
-multiple attribute definition lists.
-<LI>
-The notation and data attributes of an external data entity are
-treated just like the element type and attributes of an element.  The
-notation of an external data entity is mapped into a notation in the
-meta-DTD and the data attributes of the entity are mapped onto
-attributes defined for the meta-DTD notation.
-<LI>
-<SAMP>#FIXED</SAMP> has the same meaning in a meta-DTD that it does in
-a regular DTD: the value of the attribute must be the same as the
-default value of the attribute specified in the meta-DTD.
-</UL>
-
-<H2>Specifying architectural processing with an LPD</H2>
-<P>
-Link attributes defined by an implicit link process are treated in the
-same way as non-link attributes.  The only complication is that SGML
-allows link attributes to have the same name as non-link attributes.
-If there is a link attribute and a non-link attribute with the same
-name, the architecture engine will only look at the link attribute,
-even if the value of the link attribute is implied.  The only
-exception is the <SAMP>ArcNamrA</SAMP> attribute: the architecture
-engine will use both the link attribute and the non-link attribute,
-but the substitute names in the value of the non-link attribute cannot
-refer to link attribute names.
-<P>
-The <SAMP>-A <VAR>archname</VAR></SAMP> option automatically activates
-any link type <SAMP><VAR>archname</VAR></SAMP>.
-<P>
-The architecture notation declaration and associated attribute
-definition list declaration are allowed in the LPD.  Although the
-productions of ISO 8879 do not allow a notation declaration in a link
-type declaration subset, it is clearly the intent of the standard that
-they be allowed.  You can use a <SAMP>-wlpd-notation</SAMP> option to
-disallow them.
-
-<H2>Notation set architecture</H2>
-<P>
-An architecture for which <VAR>archname</VAR> is declared
-as a notation with a public identifier of
-<PRE>
-"ISO/IEC 10744//NOTATION AFDR ARCBASE
-Notation Set Architecture Definition Document//EN"
-</PRE>
-<P>
-is special.  The element types in the meta-DTD for this architecture
-are the notations of the document DTD and the attributes defined for
-the element types in the meta-DTD are the data attributes defined for
-the notations in the document DTD.  For each element, the attribute
-with a declared value of NOTATION performs the function that the
-ArcFormA attribute performs for normal architectures.  Only the
-<SAMP>ArcNamrA</SAMP> and <SAMP>ArcSuprA</SAMP> architectural support
-attributes can be used with this architecture.
-<P>
-The notation set architecture can also be declared using
-an architecture base declaration of the form:
-<PRE>
-&lt;?ArcBase #NOTATION&gt;
-</PRE>
-<P>
-In this case, no architecture support attributes can be declared;
-<SAMP>ArcNamrA</SAMP> will be defaulted to <SAMP>notnames</SAMP>,
-and <SAMP>ArcSuprA</SAMP> to <SAMP>notsupr</SAMP>.
-
-<H2>Derived architectures</H2>
-<P>
-A meta-DTD can have one or more base architectures in the same way as
-a normal DTD.  Multiple <SAMP>-A</SAMP> options can be used to exploit
-this.  For example,
-<PRE>
--A <VAR>arch1</VAR> -A <VAR>arch2</VAR>
-</PRE>
-<P>
-will perform architectural processing on the source document to
-produce an architectural document conforming to the architecture
-<SAMP><VAR>arch1</VAR></SAMP> declared in the source document, and
-will then perform architectural processing on this architectural
-document to produce an architectural document conforming to the
-<SAMP><VAR>arch2</VAR></SAMP> architecture declared in
-<SAMP><VAR>arch1</VAR></SAMP>'s meta-DTD.
-<P>
-A document that is validated against a meta-DTD will automatically
-be validated against any base architectures of that meta-DTD.
-
-<H2>Not implemented</H2>
-<P>
-The following features in the current AFDR draft are not implemented:
-<UL>
-<LI>
-<SAMP>ArcIndr</SAMP> architectural support attribute with value
-other than <SAMP>nArcIndr</SAMP>.
-</UL>
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/build.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>Building SP</TITLE>
-</HEAD>
-<BODY>
-<H1>Building SP</H1>
-<P>
-You will need a C++ compiler with good template support to build this.
-Support for exceptions is not required.
-<P>
-In most cases you should be able to port to a new compiler just by
-editing <code>include/config.h</code>.
-
-<H2>Unix</H2>
-<P>
-To build on Unix, edit the Makefile, and do a make.  You can also
-build in a different directory.  This requires GNU make or another
-make that implements VPATH.  Copy or link the top-level Makefile to
-the build directory, change srcdir in the Makefile to point to the
-original directory, and do a make in the build directory.
-<P>
-<SAMP>make check</SAMP> runs some tests.  You shouldn't get any reports
-of differences.
-<P>
-<SAMP>make install</SAMP> installs the programs; `make install-man'
-installs the man pages.
-<P>
-You can use the following compilers:
-<DL>
-<DT>
-gcc
-<DD>
-gcc 2.7.2 works (gcc 2.7.0 won't work at least on the sparc).  You
-will also an iostream library (eg as provided by libg++ 2.7).  This
-distribution builds on Solaris 2.3 and on Linux 1.2.  I expect it will
-build on SunOS 4 as well with little difficulty.
-<P>
-With gcc 2.6.3/SunOS 4, you'll need to compile with
-<CODE>-Dsig_atomic_t=int</CODE>, and, if you want to compile with
--DSP_HAVE_SOCKET, you'll need to make netdb.h and arpa/inet.h C++
-compatible.
-<DT>
-Sun C++
-<DD>
-To compile with Sun C++ 4.0.1, run first sunfix.sh.  Also in the
-top-level Makefile, change set libMakefile to Makefile.lib.sun.
-This makes the library build use the -xar option.
-</DL>
-<P>
-Nelson Beebe has ported SP to a variety of other Unix systems and has
-produced some <A
-HREF="http://www.math.utah.edu/~beebe/sp-notes-1.0.1.html">notes</A>
-about his experiences.
-
-<H2>DOS/Windows</H2>
-<P>
-You must use a compiler that generates 32-bit code.
-
-<H3></H3>
-<P>
-The following compilers have been tested:
-<DL>
-<DT>
-Visual C++ 4.1
-<DD>
-Open SP.mak as a Makefile in the Developer Studio and build whatever
-you want.
-Don't use <SAMP>Batch Build</SAMP> or <SAMP>Rebuild All</SAMP>: these
-rebuild the library repeatedly.
-You can build all the targets in a particular configuration by
-building the all target.
-The <SAMP>sp-generate.mak</SAMP> makefile can be used to make
-all the .cxx and .h files that are automatically generated.
-(These are included in the distribution, so you don't need to do this
-unless you want to modify SP.)
-<P>
-To create a new program, make a new project in the SP project
-workspace using the <SAMP>Build&gt;Subprojects</SAMP> command, and
-include <SAMP>lib</SAMP> and maybe <SAMP>generic</SAMP> as
-subprojects. You may also want to add your project as a subproject to
-<SAMP>all</SAMP>.
-Then, in <SAMP>Build&gt;Settings</SAMP> under the <SAMP>C/C++</SAMP>
-tab in the <SAMP>Preprocessor</SAMP> category, copy the
-<SAMP>Preprocessor definitions</SAMP> and <SAMP>Additional include
-directories</SAMP> entries from the nsgmls subproject.
-In the <SAMP>Code Generation</SAMP> category make sure you've selected
-the same run-time library as that used by the corresponding configuration
-of <SAMP>lib</SAMP>.
-<DT>
-Watcom C++ 10.5a
-<DD>
-Use Makefile.wat.
-<P>
-You must compile on a platform that supports long filenames.
-</DL>
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/catalog	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-CATALOG ../pubtext/html.soc
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/catalog.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>SP - Catalogs</TITLE>
-</HEAD>
-<BODY>
-<H1>Catalogs</H1>
-<P>
-The entity manager generates a system identifier for every external
-entity using catalog entry files in the format defined by <A
-HREF="http://www.sgmlopen.org/sgml/docs/library/9401.htm">SGML Open
-Technical Resolution TR9401:1995</A>.  The entity manager will give an
-error if it is unable to generate a system identifier for an external
-entity.  Normally if the external identifier for an entity includes a
-system identifier then the entity manager will use that as the
-effective system identifier for the entity; this behaviour can be
-changed using <CODE>OVERRIDE</CODE> or <CODE>SYSTEM</CODE> entries in
-a catalog entry file.
-<P>
-A catalog entry file contains a sequence of entries in one of the
-following forms:
-<DL>
-<DT>
-<SAMP>PUBLIC <VAR>pubid</VAR> <VAR>sysid</VAR></SAMP>
-<DD>
-This specifies that <SAMP><VAR>sysid</VAR></SAMP> should be used as
-the effective system identifier if the public identifier is
-<SAMP><VAR>pubid</VAR></SAMP>.  <SAMP><VAR>Sysid</VAR></SAMP> is a
-system identifier as defined in ISO 8879 and
-<SAMP><VAR>pubid</VAR></SAMP> is a public identifier as defined in ISO
-8879.
-<DT>
-<SAMP>ENTITY <VAR>name</VAR> <VAR>sysid</VAR></SAMP>
-<DD>
-This specifies that <VAR>sysid</VAR> should be used as the effective
-system identifier if the entity is a general entity whose name is
-<VAR>name</VAR>.
-<DT>
-<SAMP>ENTITY %<VAR>name</VAR> <VAR>sysid</VAR></SAMP>
-<DD>
-This specifies that <SAMP><VAR>sysid</VAR></SAMP> should be used as
-the effective system identifier if the entity is a parameter entity
-whose name is <VAR>name</VAR>.  Note that there is no space between
-the <SAMP>%</SAMP> and the <SAMP><VAR>name</VAR></SAMP>.
-<DT>
-<SAMP>DOCTYPE  <VAR>name</VAR> <VAR>sysid</VAR></SAMP>
-<DD>
-This specifies that <SAMP><VAR>sysid</VAR></SAMP> should be used as
-the effective system identifier if the entity is an entity declared in
-a document type declaration whose document type name is <VAR>name</VAR>.
-<DT>
-<SAMP>LINKTYPE <VAR>name</VAR> <VAR>sysid</VAR></SAMP>
-<DD>
-This specifies that <SAMP><VAR>sysid</VAR></SAMP> should be used as the
-effective system identifier if the entity is an entity declared in a
-link type declaration whose link type name is <VAR>name</VAR>.
-<DT>
-<SAMP>NOTATION <VAR>name</VAR> <VAR>sysid</VAR></SAMP>
-<DD>
-This specifies that <SAMP><VAR>sysid</VAR></SAMP> should be used as
-the effective system identifier for a notation whose name is
-<SAMP><VAR>name</VAR></SAMP>.  This is an extension to the SGML Open
-format.  This is relevant only with the <SAMP>-n</SAMP> option.
-<DT>
-<SAMP>OVERRIDE <VAR>bool</VAR></SAMP>
-<DD>
-<SAMP><VAR>bool</VAR></SAMP> may be <SAMP>YES</SAMP> or
-<SAMP>NO</SAMP>.  This sets the overriding mode for entries up to the
-next occurrence of OVERRIDE or the end of the catalog entry file.  At
-the beginning of a catalog entry file the overriding mode will be NO.
-A PUBLIC, ENTITY, DOCTYPE, LINKTYPE or NOTATION entry with an
-overriding mode of YES will be used whether or not the external
-identifier has an explicit system identifier; those with an overriding
-mode of NO will be ignored if external identifier has an explicit
-system identifier.  This is an extension to the SGML Open format.
-<DT>
-<SAMP>SYSTEM <VAR>sysid1</VAR> <VAR>sysid2</VAR></SAMP>
-<DD>
-This specifies that <VAR>sysid2</VAR> should be used as the effective
-system identifier if the system identifier specified in the external
-identifier was <SAMP><VAR>sysid1</VAR></SAMP>.  This is an extension
-to the SGML Open format.  <VAR>sysid2</VAR> should always be quoted to
-ensure that it is not misinterpreted when parsed by a system that does
-not support this extension.
-<DT>
-<A NAME="sgmldecl"><SAMP>SGMLDECL <VAR>sysid</VAR></SAMP></A>
-<DD>
-This specifies that if the document does not contain an SGML declaration,
-the SGML declaration in <SAMP><VAR>sysid</VAR></SAMP> should be implied.
-<DT>
-<SAMP>DOCUMENT <VAR>sysid</VAR></SAMP>
-<DD>
-This specifies that the document entity is <SAMP><VAR>sysid</VAR></SAMP>.
-This entry is used only with the <SAMP>-C</SAMP> option.
-<DT>
-<SAMP>CATALOG <VAR>sysid</VAR></SAMP>
-<DD>
-This specifies that <SAMP><VAR>sysid</VAR></SAMP> is the system
-identifier of an additional catalog entry file to be read after this
-one.  Multiple <SAMP>CATALOG</SAMP> entries are allowed and will be
-read in order.  This is an extension to the SGML Open format.
-<DT>
-<SAMP>BASE <VAR>sysid</VAR></SAMP>
-<DD>
-This specifies that relative storage object identifiers in system
-identifiers in the catalog entry file following this entry should be
-resolved using first storage object identifier in
-<SAMP><VAR>sysid</VAR></SAMP> as the base, instead of the storage
-object identifiers of the storage objects comprising the catalog entry
-file.  This is an extension to the SGML Open format.  This extension
-is proposed in <A HREF=
-"ftp://ftp.internic.net/internet-drafts/draft-ietf-mimesgml-exch-02.txt">Using
-SGML Open Catalogs and MIME to Exchange SGML Documents</A>.
-Note that the <CODE><VAR>sysid</VAR></CODE> must exist.
-<DT>
-<SAMP>DELEGATE <VAR>pubid-prefix</VAR> <VAR>sysid</VAR></SAMP>
-<DD>
-This specifies that entities with a public identifier that has
-<SAMP><VAR>pubid-prefix</VAR></SAMP> as a prefix should be resolved
-using a catalog whose system identfier is
-<SAMP><VAR>sysid</VAR></SAMP>.  For more details, see <A
-HREF="http://www.entmp.org/fpi-urn/delegate.html">A Proposal for
-Delegating SGML Open Catalogs</A>.  This is an extension to the SGML
-Open format.
-</DL>
-<P>
-The delimiters can be omitted from the <SAMP><VAR>sysid</VAR></SAMP>
-provided it does not contain any white space.  Comments are allowed
-between parameters delimited by <SAMP>--</SAMP> as in SGML.
-<P>
-The environment variable <SAMP>SGML_CATALOG_FILES</SAMP> contains a
-list of catalog entry files.  The list is separated by colons under
-Unix and by semi-colons under MS-DOS and Windows..  These will be
-searched after any catalog entry files specified using the
-<SAMP>-m</SAMP> option, and after the catalog entry file called
-<SAMP>catalog</SAMP> in the same place as the document entity.  If
-this environment variable is not set, then a system dependent list of
-catalog entry files will be used.  In fact catalog entry files are not
-restricted to being files: the name of a catalog entry file is
-interpreted as a system identifier.
-<P>
-A match in one catalog entry file will take precedence over any match
-in a later catalog entry file.  A more specific matching entry in one
-catalog entry file will take priority over a less specific matching
-entry in the same catalog entry file.  For this purpose, the order of
-specificity is (most specific first):
-<UL>
-<LI>
-<SAMP>SYSTEM</SAMP> entries;
-<LI>
-<SAMP>PUBLIC</SAMP> entries;
-<LI>
-<SAMP>DELEGATE</SAMP> entries ordered by the length of the prefix,
-longest first;
-<LI>
-<SAMP>ENTITY</SAMP>, <SAMP>DOCTYPE</SAMP>, <SAMP>LINKTYPE</SAMP> and
-<SAMP>NOTATION</SAMP> entries.
-</UL>
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/features.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>SP - Features Summary</TITLE>
-<BODY>
-<H1>
-SP
-</H1>
-<H3>
-A free, object-oriented toolkit for SGML parsing and entity management
-</H3>
-<H2>
-Features summary
-</H2>
-<UL>
-<LI>
-Includes nsgmls
-<UL>
-<LI>
-Compatible with sgmls
-<LI>
-Also generates RAST (ISO/IEC 13673)
-</UL>
-<LI>
-Provides access to all information about SGML document
-<UL>
-<LI>
-Access to DTD and SGML declaration as well as document instance
-<LI>
-Access to markup as well as abstract document
-<LI>
-Sufficient to recreate character-for-character identical
-copy of any SGML document
-</UL>
-<LI>
-Supports almost all optional SGML features
-<UL>
-<LI>
-Arbitrary concrete syntaxes
-<LI>
-SHORTTAG, OMITTAG, RANK
-<LI>
-SUBDOC
-<LI>
-LINK (SIMPLE, IMPLICIT and EXPLICIT)
-<LI>
-Only DATATAG and CONCUR not supported
-</UL>
-<LI>
-Sophisticated entity manager
-<UL>
-<LI>
-Supports ISO/IEC 10744 Formal System Identifiers
-<LI>
-Supports SGML Open catalogs
-<LI>
-Supports WWW
-<LI>
-Can be used independently of parser
-</UL>
-<LI>
-Supports multi-byte character sets
-<UL>
-<LI>
-Parser can use 16-bit characters internally
-<LI>
-16-bit characters can be used in tag names and other markup
-<LI>
-Supports ISO/IEC 10646 (Unicode) using both UCS-2 and UTF-8
-<LI>
-Supports Japanese character sets (Shift-JIS, EUC)
-</UL>
-<LI>
-Object-oriented
-<LI>
-Written in C++ from scratch
-<UL>
-<LI>
-Not a modified version of a parser originally written in C
-<LI>
-Reentrant
-<LI>
-Sophisticated architecture
-</UL>
-<LI>
-Fast
-<UL>
-<LI>
-Up to twice as fast as sgmls on large documents
-</UL>
-<LI>
-Portable
-<UL>
-<LI>
-All major Unix variants
-<LI>
-MS-DOS
-<LI>
-Win32: Windows 95/Windows NT
-<LI>
-OS/2
-</UL>
-<LI>
-Production quality
-<UL>
-<LI>
-Version 1.0 recently released, after a year of test releases
-<LI>
-Tested using several SGML test suites
-<LI>
-Already used in several new commercial products
-<LI>
-Written by James Clark, previously responsible for turning arcsgml into sgmls
-</UL>
-<LI>
-Free
-<UL>
-<LI>
-Includes source code
-<LI>
-No restrictions on commercial use
-</UL>
-<LI>
-Disadvantages
-<UL>
-<LI>
-Programmer-level documentation only for generic API
-and not for native API.
-</UL>
-</UL>
-
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/generic.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1084 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<html>
-<head>
-<title>The generic API to SP</title>
-</head>
-<body>
-<h1>The generic API to SP</h1>
-<p>
-SP provides a generic API in addition to its native API.  The generic
-interface is much simpler than the native interface.  It is generic in
-the sense that it could be easily implemented using parsers other than
-SP.  It provides all ESIS information as well as some other
-information about the instance that is commonly needed by
-applications.  However, it doesn't provide access to all information
-available from SP; in particular, it doesn't provide information about
-the DTD.  It is also slightly less efficient than the native
-interface.
-<p>
-The interface uses two related abstract classes.  An
-<code>SGMLApplication</code> is an object that can handle a number of
-different kinds of event which correspond to information in an SGML
-document.  An <code>EventGenerator</code> is an object that can
-generate a sequence of events of the kinds handled by an
-<code>SGMLApplication</code>.  The
-<code>ParserEventGeneratorKit</code> class makes an
-<code>EventGenerator</code> that generates events using SP.
-
-<h2>Types</h2>
-<p>
-<code>SGMLApplication</code> has a number of local types that are used
-in several contexts:
-<dl>
-<dt>
-<code>Char</code>
-<dd>
-This typedef is an unsigned integral type that represents a single bit
-combination (character).  It is <code>unsigned short</code> if
-<code>SP_MULTI_BYTE</code> is defined and <code>unsigned char</code>
-otherwise.
-<dt>
-<code>CharString</code>
-<dd>
-This struct represents a string of <code>Char</code>.
-It has the following members:
-<dl>
-<dt>
-<code>const Char *ptr</code>
-<dd>
-A pointer to the <code>Char</code>s of the string.
-<dt>
-<code>size_t len</code>
-<dd>
-The number of <code>Char</code>s in the string.
-</dl>
-<dt>
-<code>Location</code>
-<dd>
-This struct holds information about a location in the entity structure
-of a document.  It is constucted using an <code>OpenEntityPtr</code>
-and a <code>Position</code>.  The <code>CharString</code>s in it will
-remain valid as long as the <code>OpenEntity</code> that is pointed to
-by the <code>OpenEntityPtr</code> that was used to construct it
-remains valid.
-<p>
-It has the following members:
-<dl>
-<dt>
-<code>unsigned long lineNumber</code>
-<dd>
-The line number.
-<code>(unsigned long)-1</code> if invalid.
-<dt>
-<code>unsigned long columnNumber</code>
-<dd>
-The column number.
-Note that tabs are not treated specially.
-<code>(unsigned long)-1</code> if invalid.
-<dt>
-<code>unsigned long byteOffset</code>
-<dd>
-The number of bytes in the storage object preceding the location.
-<code>(unsigned long)-1</code> if invalid.
-<dt>
-<code>unsigned long entityOffset</code>
-<dd>
-The number of bit combinations in the entity preceding the location.
-<code>(unsigned long)-1</code> if invalid.
-<dt>
-<code>CharString entityName</code>
-<dd>
-The name of the external entity containing the location.
-An empty string if invalid.
-<dt>
-<code>CharString filename</code>
-<dd>
-The name of the file containing the location.
-An empty string if invalid.
-<dt>
-<code>const void *other</code>
-<dd>
-Other implementation-dependent information about the location.  In the
-SP implementation it will be a pointer to a StorageObjectSpec.  0 if
-invalid.
-</dl>
-<p>
-When a location is in an internal entity, the location of the reference
-to the entity will be used instead.
-<dt>
-<code>OpenEntity</code>
-<dd>
-This class represents a currently open entity.  The only use for an
-<code>OpenEntity</code> is, in conjunction with a
-<code>Position</code>, to create a <code>Location</code>.  An
-<code>OpenEntity</code> is accessed using an
-<code>OpenEntityPtr</code>.
-<dt>
-<code>OpenEntityPtr</code>
-<dd>
-This class is a reference-counted pointer to an <code>OpenEntity</code>.
-<dt>
-<code>Position</code>
-<dd>
-This is an integral type that represents a position in an open entity.
-The meaning of a <code>Position</code> is completely determined by the
-<code>OpenEntity</code> object with which it is associated.  The only
-use for an <code>Position</code> is, in conjunction with an
-<code>OpenEntity</code>, to create a <code>Location</code>.
-<dt>
-<code>ExternalId</code>
-<dd>
-This struct represents an external identifier.  It has the following
-members:
-<dl>
-<dt>
-<code>bool haveSystemId</code>
-<dd>
-True iff the external identifier included an explicit system identifier.
-<dt>
-<code>CharString systemId</code>
-<dd>
-The system identifier included in the external identifier.
-Valid only if <code>havePublicId</code> is true.
-<dt>
-<code>bool havePublicId</code>
-<dd>
-True iff the external identifier included an explicit public identifier.
-<dt>
-<code>CharString publicId</code>
-<dd>
-The public identifier included in the external identifier.
-Valid only if <code>havePublicId</code> is true.
-<dt>
-<code>bool haveGeneratedSystemId</code>
-<dd>
-True iff a system identifier was generated for the external identifier.
-<dt>
-<dt>
-<code>CharString generatedSystemId</code>
-<dd>
-The system identifier generated for the external identifier.
-Valid only if <code>haveGeneratedSystemId</code> is true.
-</dl>
-<dt>
-<code>Notation</code>
-<dd>
-This struct represents a notation.
-It has the following members:
-<dl>
-<dt>
-<code>CharString name</code>
-<dd>
-The name of the notation.
-<dt>
-<code>ExternalId externalId</code>
-<dd>
-The external identifier of the notation.
-</dl>
-<dt>
-<code>Entity</code>
-<dd>
-This struct represents an entity.
-It has the following members.
-<dl>
-<dt>
-<code>CharString name</code>
-<dd>
-The name of the entity.
-<dt>
-<code>Entity::DataType dataType</code>
-<dd>
-The type of the data of the entity.
-<p>
-<code>Entity::DataType</code> is a local enum with the following possible
-values:
-<dl>
-<dt>
-<code>Entity::sgml</code>
-<dd>
-<dt>
-<code>Entity::cdata</code>
-<dd>
-<dt>
-<code>Entity::sdata</code>
-<dd>
-<dt>
-<code>Entity::ndata</code>
-<dd>
-<dt>
-<code>Entity::subdoc</code>
-<dd>
-<dt>
-<code>Entity::pi</code>
-<dd>
-</dl>
-<dt>
-<code>Entity::DeclType declType</code>
-<dd>
-The type of the declaration of the entity.
-<p>
-<code>Entity::DeclType</code> is a local enum with the following possible
-values:
-<dl>
-<dt>
-<code>Entity::general</code>
-<dd>
-The entity is a general entity.
-<dt>
-<code>Entity::parameter</code>
-<dd>
-The entity is a parameter entity.
-<dt>
-<code>Entity::doctype</code>
-<dd>
-The entity was declared in a doctype declaration.
-<dt>
-<code>Entity::linktype</code>
-<dd>
-The entity was declared in a linktype declaration.
-</dl>
-<dt>
-<code>bool isInternal</code>
-<dd>
-True iff the entity is internal rather than external.
-<dt>
-<code>CharString text</code>
-<dd>
-The replacement text of the entity.
-Valid only if <code>isInternal</code> is true.
-<dt>
-<code>ExternalId externalId</code>
-<dd>
-The external identifier of the entity.
-Valid only if <code>isInternal</code> is false.
-<dt>
-<code>const Attribute *attributes</code>
-<dd>
-Pointer to the data attributes of the entity.
-Valid only if <code>isInternal</code> is false.
-<dt>
-<code>size_t nAttributes</code>
-<dd>
-The number of data attributes of the entity.
-Valid only if <code>isInternal</code> is false.
-<dt>
-<code>Notation notation</code>
-<dd>
-The entity's notation.
-An empty string if the entity has no notation.
-Valid only if <code>isInternal</code> is false.
-</dl>
-<dt>
-<code>Attribute</code>
-<dd>
-This struct represents an attribute.  More precisely it represents the
-assignment of an attribute value to an attribute name.
-It has the following members:
-<dl>
-<dt>
-<code>CharString name</code>
-<dd>
-The attribute name.
-<dt>
-<code>Attribute::Type type</code>
-<dd>
-An enumeration describing the type of the attribute.
-<p>
-<code>Attribute::Type</code> is a local type with the following possible
-values:
-<dl>
-<dt><code>Attribute::invalid</code>
-<dd>
-The attribute is invalid.
-<dt><code>Attribute::implied</code>
-<dd>
-The attribute is an impliable attribute for which
-no value was specified.
-<dt><code>Attribute::cdata</code>
-<dd>
-The attribute is a CDATA attribute.
-<dt><code>Attribute::tokenized</code>
-<dd>
-The attribute is a tokenized attribute.
-</dl>
-<dt>
-<code>Attribute::Defaulted defaulted</code>
-<dd>
-An enumeration specifying whether the entity was defaulted, and, if
-so, how.
-This is non-ESIS information.
-<p>
-<code>Attribute::Defaulted</code> is a local enum with the following
-possible values:
-<dl>
-<dt>
-<code>Attribute::specified</code>
-<dd>
-The value was explicitly specified.
-<dt>
-<code>Attribute::definition</code>
-<dd>
-The value was defaulted from the attribute definition.
-<dt>
-<code>Attribute::current</code>
-<dd>
-The value was defaulted using the CURRENT value of the attribute.
-</dl>
-<dt>
-<code>size_t nCdataChunks</code>
-<dd>
-The number of <code>Attribute::CdataChunk</code>s comprising the value
-of the attribute.  Valid only if <code>type</code> is
-<code>cdata</code>.
-<dt>
-<code>const Attribute::CdataChunk *cdataChunks</code>
-<dd>
-The <code>Attribute::CdataChunk</code>s comprising the value of this attribute.
-Valid only if <code>type</code> is <code>cdata</code>.
-<p>
-<code>Attribute::CdataChunk</code> is a local struct with the
-following members:
-<dl>
-<dt>
-<code>bool isSdata</code>
-<dd>
-True iff this chunk is the replacement text of an internal SDATA entity.
-<dt>
-<code>CharString data</code>
-<dd>
-The data of this chunk.
-<dt>
-<code>CharString entityName</code>
-<dd>
-The name of the internal SDATA entity that this chunk is the
-replacement text of.  Valid only if <code>isSdata</code> is true.
-This is non-ESIS information.
-</dl>
-<dt>
-<code>CharString tokens</code>
-<dd>
-Valid only if <code>type</code> is <code>Attribute::tokenized</code>.
-<dt>
-<code>bool isId</code>
-<dd>
-True iff the declared value is ID.
-This is non-ESIS information.
-<dt>
-<code>size_t nEntities</code>
-<dd>
-The number of entities associated with this attribute.
-This will be zero unless the declared value is ENTITY or ENTITIES.
-<dt>
-<code>const Entity *entities</code>
-<dd>
-The entities associated with this attribute.
-<dt>
-<code>Notation notation</code>
-<dd>
-The notation associated with this attribute.
-If the declared value of the attribute is not NOTATION,
-then the name member will be an empty string.
-</dl>
-</dl>
-<h2>Events</h2>
-<p>
-For each event <code><var>xyz</var>Event</code> handled by
-<code>SGMLApplication</code>, there is a virtual function of
-<code>SGMLApplication</code> named <code><var>xyz</var></code> to
-handle the event, and a local struct of <code>SGMLApplication</code>
-named <code><var>Xyz</var>Event</code>.
-<p>
-Pointers within an event <code><var>xyz</var>Event</code> are valid
-only during the call to <code><var>xyz</var></code>.  None of the
-structs in events have copy constructors or assignment operators
-defined.  It is up to the event handling function to make a copy of
-any data that it needs to preserve after the function returns.
-<p>
-Except as otherwise stated,
-the information in events is ESIS information.
-All position information is non-ESIS information.
-<p>
-There are the following types of event:
-<dl>
-<dt>
-<code>AppinfoEvent</code>
-<dd>
-Generated for the APPINFO section of the SGML declaration.
-The event has the following members:
-<dl>
-<dt><code>Position pos</code>
-<dd>
-The position of APPINFO parameter of the SGML declaration.
-<dt><code>bool none</code>
-<dd>
-True iff APPINFO NONE was specified.
-<dt><code>CharString string</code>
-<dd>
-The interpreted value of the minimum literal specified
-in the appinfo parameter of the SGML declaration.
-Valid only if <code>none</code> is false.
-</dl>
-<dt>
-<code>PiEvent</code>
-<dd>
-Generated for a processing instruction.
-The event has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the processing instruction.
-<dt>
-<code>CharString data</code>
-<dd>
-The system data of the processing instuction.
-<dt>
-<code>CharString entityName</code>
-<dd>
-If the processing instruction was the result of the
-reference to a PI entity, the name of the entity.
-If not, an empty string.
-This is non-ESIS information.
-</dl>
-<dt>
-<code>StartElementEvent</code>
-<dd>
-Generated for the start of an element.
-The event has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the start of the element.
-<dt>
-<code>CharString gi</code>
-<dd>
-The generic identifier of the element.
-<dt>
-<code>Element::ContentType contentType</code>
-<dd>
-The type of the element's content.
-This is non-ESIS information.
-<p>
-<code>Element::ContentType</code> is an enum with the following
-possible values:
-<dl>
-<dt>
-<code>Element::empty</code>
-<dd>
-The element has empty content, either because it was
-declared as EMPTY or because there was a #CONREF attribute.
-<dt>
-<code>Element::cdata</code>
-<dd>
-The element has CDATA content.
-<dt>
-<code>Element::rcdata</code>
-<dd>
-The element has RCDATA content.
-<dt>
-<code>Element::mixed</code>
-<dd>
-The element has mixed content.
-<dt>
-<code>Element::element</code>
-<dd>
-The element has element content.
-</dl>
-<dt>
-<code>bool included</code>
-<dd>
-True iff the element was an included subelement
-(rather than a proper subelement).
-This is non-ESIS information.
-<dt>
-<code>size_t nAttributes</code>
-<dd>
-The number of attributes of this element.
-<dt>
-<code>const Attribute *attributes</code>
-<dd>
-A pointer to the attributes for this element.
-</dl>
-<dt>
-<code>EndElementEvent</code>
-<dd>
-Generated for the end of an elemenet.
-The event has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the end of the element.
-<dt>
-<code>CharString gi</code>
-<dd>
-The generic identifier of the element.
-</dl>
-<dt>
-<code>DataEvent</code>
-<dd>
-Generated for character data.
-The event has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the first character of the data.
-<dt>
-<code>CharString data</code>
-<dd>
-The data.
-</dl>
-<dt>
-<code>SdataEvent</code>
-<dd>
-Generated for a reference to an internal sdata entity in content.
-The event has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the entity reference.
-<dt>
-<code>CharString text</code>
-<dd>
-The replacement text of the entity.
-<dt>
-<code>CharString entityName</code>
-<dd>
-The entity name.
-This is non-ESIS information.
-</dl>
-<dt>
-<code>ExternalDataEntityRefEvent</code>
-<dd>
-Generated for a reference to an external data entity.
-The event has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the entity reference.
-<dt>
-<code>Entity entity</code>
-<dd>
-The referenced entity.
-</dl>
-<dt>
-<code>SubdocEntityRefEvent</code>
-<dd>
-Generated for a reference to a subdoc entity.
-The event has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the entity reference.
-<dt>
-<code>Entity entity</code>
-<dd>
-The referenced entity.
-</dl>
-<dt>
-<code>StartDtdEvent</code>
-<dd>
-Generated at the start of a document type declaration.
-This is non-ESIS information.
-The event has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the start of the document type declaration.
-<dt>
-<code>CharString name</code>
-<dd>
-The document type name.
-<dt>
-<code>bool haveExternalId</code>
-<dd>
-The external identifier for the entity declared in the document type
-declaration.
-<dt>
-<code>ExternalId externalId</code>
-<dd>
-Valid iff haveExternalId is true.
-</dl>
-<dt>
-<code>EndDtdEvent</code>
-<dd>
-Generated at the end of a document type declaration.
-This is non-ESIS information.
-The event has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the end of the DTD.
-<dt>
-<code>CharString name</code>
-<dd>
-</dl>
-<dt>
-<code>EndPrologEvent</code>
-<dd>
-Generated at the end of the prolog.
-The event has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the start of the instance.
-</dl>
-<dt>
-<code>GeneralEntityEvent</code>
-<dd>
-Generated for each general entity in the name space of the governing
-doctype, but only if the
-<code>ParserEventGeneratorKit::outputGeneralEntities</code> option is
-enabled.  This is non-ESIS information.  The event has the following
-members:
-<dl>
-<dt>
-<code>Entity entity</code>
-<dd>
-The entity.
-</dl>
-<p>
-No event will be generated for the declaration of the
-<code>#default</code> entity; instead an event will be generated when
-an entity reference uses the <code>#default</code> entity if that is
-the first time on which an entity with that name is used.  This means
-that <code>GeneralEntityEvent</code> can occur after the end of the
-prolog.
-<dt>
-<code>CommentDeclEvent</code>
-<dd>
-Generated for each comment declaration in the instance, but only if
-<code>ParserEventGeneratorKit::outputCommentDecls</code> option is
-enabled.  This is non-ESIS information.  The event has the following
-members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the start of the comment declaration.
-<dt>
-<code>size_t nComments</code>
-<dd>
-The number of comments in the comment declaration.
-<dt>
-<code>const CharString *comments</code>
-<dd>
-The content of each comment in the declaration.
-This excludes the com delimiters.
-<dt>
-<code>const CharString *seps</code>
-<dd>
-The separator following each comment in the declaration.
-</dl>
-<dt>
-<code>MarkedSectionStartEvent</code>
-<dd>
-Generated for the start of a marked section in the instance,
-but only if the <code>ParserEventGeneratorKit::outputMarkedSections</code>
-option is enabled.
-This is non-ESIS information.
-The event has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the start of the marked section declaration.
-<dt>
-<code>MarkedSectionStartEvent::Status status</code>
-<dd>
-The effective status of the marked section.
-<p>
-<code>MarkedSectionStartEvent::Status</code> is a local enum with the
-following possible values:
-<ul>
-<li><code>MarkedSectionStartEvent::include</code>
-<li><code>MarkedSectionStartEvent::rcdata</code>
-<li><code>MarkedSectionStartEvent::cdata</code>
-<li><code>MarkedSectionStartEvent::ignore</code>
-</ul>
-<dt>
-<code>size_t nParams</code>
-<dd>
-The number of top-level parameters in the status keyword specification.
-<dt>
-<code>const MarkedSectionStartEvent::Param *params</code>
-<dd>
-The top-level parameters in the status keyword specification.
-<p>
-<code>Param</code> is a local struct with the following members:
-<dl>
-<dt>
-<code>MarkedSectionStartEvent::Param::Type type</code>
-<dd>
-The type of top-level parameter:
-<p>
-<code>MarkedSectionStartEvent::Param::Type</code> is a local enum with the
-following possible values:
-<dl>
-<dt>
-<code>MarkedSectionStartEvent::Param::temp</code>
-<dt>
-<code>MarkedSectionStartEvent::Param::include</code>
-<dt>
-<code>MarkedSectionStartEvent::Param::rcdata</code>
-<dt>
-<code>MarkedSectionStartEvent::Param::cdata</code>
-<dt>
-<code>MarkedSectionStartEvent::Param::ignore</code>
-<dd>
-The parameter is the corresponding keyword.
-<dt>
-<code>MarkedSectionStartEvent::Param::entityRef</code>
-<dd>
-The parameter is an entity reference.
-</dl>
-<dt>
-<code>CharString entityName</code>
-<dd>
-Valid when <code>type</code> is
-<code>MarkedSectionStartEvent::Param::entityRef</code>.
-</dl>
-</dl>
-<dt>
-<code>MarkedSectionEndEvent</code>
-<dd>
-Generated for the end of a marked section in the instance, but only if
-the <code>ParserEventGeneratorKit::outputMarkedSections</code> option is
-enabled.  This is non-ESIS information.  The event has the following
-members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the end of the marked section declaration.
-<dt>
-<code>MarkedSectionEndEvent::Status status</code>
-<dd>
-The effective status of the marked section.
-<p>
-<code>MarkedSectionEndEvent::Status</code> is a local enum with the
-following possible values:
-<ul>
-<li><code>MarkedSectionEndEvent::include</code>
-<li><code>MarkedSectionEndEvent::rcdata</code>
-<li><code>MarkedSectionEndEvent::cdata</code>
-<li><code>MarkedSectionEndEvent::ignore</code>
-</ul>
-</dl>
-<dt>
-<code>IgnoredCharsEvent</code>
-<dd>
-Generated for a sequence of characters in an ignored marked section in
-the instance, but only if the
-<code>ParserEventGeneratorKit::outputMarkedSections</code> option is
-enabled.  This is non-ESIS information.  The event has the following
-members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position of the first of the ignored characters.
-<dt>
-<code>CharString data</code>
-<dd>
-The ignored characters.
-</dl>
-<dt>
-<code>ErrorEvent</code>
-<dd>
-Generated for each error detected by the parser,
-and also for any other cases where the parser produces a message.
-This is non-ESIS information.
-It has the following members:
-<dl>
-<dt>
-<code>Position pos</code>
-<dd>
-The position at which the error was detected.
-<dt>
-<code>ErrorEvent::Type type</code>
-<dd>
-The type of error.
-<p>
-<code>ErrorEvent::Type</code> is a local enum with the following possible
-values:
-<dl>
-<dt>
-<code>ErrorEvent::quantity</code>
-<dd>
-Exceeding a quantity limit.
-<dt>
-<code>ErrorEvent::idref</code>
-<dd>
-An IDREF to a non-existent ID.
-<dt>
-<code>ErrorEvent::capacity</code>
-<dd>
-Exceeding a capacity limit.
-<dt>
-<code>ErrorEvent::otherError</code>
-<dd>
-Any other kind of error.
-<dt>
-<code>ErrorEvent::warning</code>
-<dd>
-A warning.  Not actually an error.
-<dt>
-<code>ErrorEvent::info</code>
-<dd>
-An informational message.  Not actually an error.
-</dl>
-<dt>
-<code>CharString message</code>
-<dd>
-The message produced by the parser.
-If messages are not disabled, this will be the same as the message
-printed to standard error.
-</dl>
-</dl>
-<p>
-<code>SGMLApplication</code> also has a virtual function
-<pre>
-void openEntityChange(const OpenEntityPtr &);
-</pre>
-<p>
-which is similar to an event.  An application that wishes to makes use
-of position information must maintain a variable of type
-<code>OpenEntityPtr</code> representing the current open entity, and
-must provide an implementation of the <code>openEntityChange</code>
-function that updates this variable.  It can then use the value of
-this variable in conjunction with a <code>Position</code> to obtain a
-<code>Location</code>; this can be relatively slow.  Unlike events, an
-<code>OpenEntityPtr</code> has copy constructors and assignment
-operators defined.
-
-<h2>EventGenerator</h2>
-<p>
-The <code>EventGenerator</code> interface provides the following
-functions:
-<dl>
-<dt>
-<code>unsigned run(SGMLApplication &<var>app</var>)</code>
-<dd>
-Generate the sequence of events, calling the corresponding member of
-<code><var>app</var></code> for each event.  Returns the number of
-errors.  This must not be called more than once for any
-<code>EventGenerator</code>object.
-<dt>
-<code>
-EventGenerator *makeSubdocEventGenerator(const SGMLApplication::Char *<var>s</var>, size_t <var>n</var>)
-</code>
-<dd>
-Makes a new <code>EventGenerator</code> for a subdocument of the
-current document.  <var>s</var> and <var>n</var> together specify the
-system identifier of the subdocument entity.  These should usually be
-obtained from the <code>generatedSystemId</code> member of the
-<code>externalId</code> member of the <code>Entity</code> object for
-the subdocument entity.  This function can only be called after
-<code>run</code> has been called; the call to <code>run</code> need
-not have returned, but the <code>SGMLApplication
-</code>
-must have been passed events from the prolog or instance (ie the SGML
-declaration must have been parsed).
-<dt>
-<code>void inhibitMessages(bool <var>b</var>)</code>
-<dd>
-If <var>b</var> is true, disables error and warning messages,
-otherwise enables them.  Initially errors and warnings are enabled.
-This function may be called at any time, including while
-<code>run()</code> is executing.
-<dt>
-<code>void halt()</code>
-<dd>
-Halt the generation of events by <code>run()</code>.
-This can be at any point during the execution of <code>run()</code>.
-It is safe to call this function from a different thread from that which
-called <code>run()</code>.
-</dl>
-<h2>ParserEventGeneratorKit</h2>
-<p>
-The <code>ParserEventGeneratorKit</code> class is used to create an
-<code>EventGenerator</code> that  generate events using SP.  It
-provides the following members:
-<dl>
-<dt>
-<code>EventGenerator *makeEventGenerator(int <var>nFiles</var>, char *const *<var>files</var>)</code>
-<dd>
-This returns a new <code>EventGenerator</code> that will generate events
-for the SGML document whose document entity is contained in the
-<code><var>files</var></code>.
-The returned <code>EventGenerator</code> should be deleted when it
-is no longer needed.
-<code>makeEventGenerator</code> may be called more than once.
-<dt>
-<code>void setOption(ParserEventGeneratorKit::Option <var>opt</var>)</code>
-<dd>
-This can be called any time before <code>makeEventGenerator()</code> is called.
-<p>
-<code>ParserEventGeneratorKit::Option</code> is a local enum with the following possible
-values:
-<dl>
-<dt>
-<code>ParserEventGeneratorKit::showOpenEntities</code>
-<dd>
-This corresponds to the <code>-e</code> option of nsgmls.
-<dt>
-<code>ParserEventGeneratorKit::showOpenElements</code>
-<dd>
-This corresponds to the <code>-g</code> option of nsgmls.
-<dt>
-<code>ParserEventGeneratorKit::outputCommentDecls</code>
-<dd>
-This will cause <code>CommentDeclEvent</code>s to be generated.
-<dt>
-<code>ParserEventGeneratorKit::outputMarkedSections</code>
-<dd>
-This will cause
-<code>MarkedSectionStartEvent</code>s,
-<code>MarkedSectionStartEvent</code>s
-and <code>IgnoredCharsEvent</code>s
-to be generated.
-<dt>
-<code>ParserEventGeneratorKit::outputGeneralEntities</code>
-<dd>
-This will cause <code>GeneralEntityEvent</code>s to be generated.
-</dl>
-<dt>
-<code>
-void setOption(ParserEventGeneratorKit::OptionWithArg <var>opt</var>, const char *<var>arg</var>)
-</code>
-<dd>
-This can be called any time before <code>makeEventGenerator()</code> is called.
-<p>
-<code>ParserEventGeneratorKit::OptionWithArg</code> is a local enum with the following possible
-values:
-<dl>
-<dt>
-<code>ParserEventGeneratorKit::addCatalog</code>
-<dd>
-This corresponds to the <code>-m</code> option of nsgmls.
-<dt>
-<code>ParserEventGeneratorKit::includeParam</code>
-<dd>
-This corresponds to the <code>-i</code> option of nsgmls.
-<dt>
-<code>ParserEventGeneratorKit::enableWarning</code>
-<dd>
-This corresponds to the <code>-w</code> option of nsgmls.
-<dt>
-<code>ParserEventGeneratorKit::addSearchDir</code>
-<dd>
-This corresponds to the <code>-D</code> option of nsgmls.
-</dl>
-</dl>
-
-<h2>Using the interface</h2>
-<p>
-Creating an application with this interface involves the following steps:
-<ul>
-<li>
-Derive a class from <code>SGMLApplication</code>,
-called, say, <code>MyApplication</code>.
-<li>
-For each kind of event <code><var>Foo</var>Event</code> that the application
-needs information from, define a member of <code>MyApplication</code>
-<code>void MyApplication::<var>foo</var>(const <var>Foo</var>Event &)</code>.
-<li>
-Declare an object of type <code>ParserEventGeneratorKit</code>.
-<li>
-Optionally set options for the <code>ParserEventGeneratorKit</code> using
-<code>ParserEventGeneratorKit::setOption</code>.
-<li>
-Create an <code>EventGenerator</code> using
-<code>ParserEventGeneratorKit::makeEventGenerator</code>.
-<li>
-Create an instance of <code>MyApplication</code>
-(usually on the stack).
-<li>
-Call <code>EventGenerator::run</code> passing it a reference to
-the instance of <code>MyApplication</code>.
-<li>
-Delete the <code>EventGenerator</code>.
-</ul>
-<p>
-The application must include the <code>ParserEventGeneratorKit.h</code>
-file (which in turn includes <code>EventGenerator.h</code> and
-<code>SGMLApplication.h</code>), which is in the <code>generic</code>
-directory.  If your compiler does not support the standard C++
-<code>bool</code> type, you must ensure that <code>bool</code> is
-defined as a typedef for <code>int</code>, before including this.  One
-way to do this is to include <code>config.h</code> and then
-<code>Boolean.h</code> from the <code>lib</code> subdirectory of the SP
-distribution.
-<p>
-On Unix, the application must be linked with the
-<code>lib/libsp.a</code> library.
-
-<h2>Example</h2>
-<p>
-Here's a simple example of an application that uses this interface.
-The application prints an outline of the element structure of a
-document, using indentation to represent nesting.
-<pre>
-// The next two lines are only to ensure bool gets defined appropriately.
-#include "config.h"
-#include "Boolean.h"
-
-#include "ParserEventGeneratorKit.h"
-#include &lt;iostream.h>
-
-ostream &amp;operator<<<!>(ostream &amp;os, SGMLApplication::CharString s)
-{
-  for (size_t i = 0; i < s.len; i++)
-    os << char(s.ptr[i]);
-  return os;
-}
-
-class OutlineApplication : public SGMLApplication {
-public:
-  OutlineApplication() : depth_(0) { }
-  void startElement(const StartElementEvent &amp;event) {
-    for (unsigned i = 0; i < depth_; i++)
-      cout << "    ";
-    cout << event.gi << '\n';
-    depth_++;
-  }
-  void endElement(const EndElementEvent &amp;) { depth_--; }
-private:
-  unsigned depth_;
-};
-
-int main(int argc, char **argv)
-{
-  ParserEventGeneratorKit parserKit;
-  // Use all the arguments after argv[0] as filenames.
-  EventGenerator *egp = parserKit.makeEventGenerator(argc - 1, argv + 1);
-  OutlineApplication app;
-  unsigned nErrors = egp->run(app);
-  delete egp;
-  return nErrors > 0;
-}
-</pre>
-<p>
-There's a bigger example in the <code>sgmlnorm</code> directory in the SP
-distribution.
-This uses the <code>SGMLApplication</code> interface, but it doesn't
-use the <code>ParserEventGeneratorKit</code> interface.
-<p>
-<address>
-James Clark<BR>
[email protected]
-</address>
-</body>
-</html>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/ideas.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,491 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>Ideas for improving SP</TITLE>
-</HEAD>
-<BODY>
-<H1>Ideas for improving SP</H1>
-<H2>
-Parser
-</H2>
-<P>
-Have option (fixedDocCharset) in which document charcater set cannot
-be changed by SGML declaration; declared document character set used
-for character references, and to determine which characters are
-non-SGML.  Would need separate event for non-SGML character.
-In Text would need separate TextItem for non-SGML data.
-Disallow non-SGML charcters in internal entities.
-<P>
-Supporting caching across multiple runs of parser in single
-process.
-<P>
-Make Dtd copiable.
-<P>
-?Subdoc parser needs character set for system id (should be system
-character set).
-<P>
-Recover better from non-existent documents or subdocuments.
-<P>
-Think about entity declarations/references in inactive LPDs.
-<P>
-Don't allow name groups in parameter entity references in document
-type specifications in start-/end-tags.
-<P>
-With link, don't do a pass 2 unless we replace a referenced entity
-(what about default entity?).
-<P>
-Options to warn about things that HTML disallows: marked sections in
-instance, explicit subsets.
-<P>
-Option to warn about MDCs in comments in comment declarations.
-<P>
-Option to warn about omitted REFC.
-<P>
-Check that names of added functions are valid names in concrete syntax
-(both characters and lengths).  Also need to do upper-case
-substitution on them?
-<P>
-Recover from nested doctype declaration intelligently.
-<P>
-Recover from missing doctype declaration intelligently. 
-<P>
-Could optimize parsing of attribute literals using technique similar
-to extendData().
-<P>
-attributeValueLength error should give actual length of value.
-<P>
-Recover better from entity reference with name group in literal.
-<P>
-At start of pass 2 clear everything in pass1LPDs except entity sets.
-<P>
-Give an error if EXPLICIT > 1 and LPDs don't chain as required by
-436:5-7 and 436:18-20.
-<P>
-Handle quantity errors by reporting at the end of the prolog and the
-end of the instance any quantities that need to be increased.
-<P>
-Make noSuchReservedName error more helpful.
-<P>
-Function characters should perform their function even when markup
-recognition is suppressed. (I think I've handled this.)
-<P>
-Give a warning for notation attribute that is #CONREF.
-<P>
-Try to separate out Parser::compileModes().
-<P>
-In CompiledModelGroup have vector that gives an index for each element type
-that occurs in the model group.  Then in each leaf content token have a
-vector that maps this index to a LeafContentToken *, if there
-is a simple transition (no and groups involved) to that element type.
-<P>
-MatchState::minAndDepth and MatchState::AndInfo should be separated
-off info object pointed to from MatchState; pointer would be null for
-elements with no AND groups.
-<P>
-What to do if we encounter USELINK or USEMAP declaration after DTD in
-prolog?  Should stop prolog and start DTD.  If we have SCOPE INSTANCE
-then if we get an unknown declaration type in prolog, don't give
-error, but unget token and start instance.
-<P>
-?Have separate version of reportNonSgml() for case where datachar is allowed.
-<P>
-Implement CONCUR.
-<P>
-AttributeDefinition constructors should have Owner&lt;DeclaredValue> &,
-arguments to avoid storage leaks when exceptions are thrown.
-<P>
-Create a list like IList but which keeps track of length.  Then
-combine tagLevel into openElement stack, and inputLevel into
-inputStack.
-<P>
-AttributeDefinition::makeValue should return
-ConstResourcePointer&lt;AttributeValue>.
-<P>
-Syntax member functions should use reference for result.
-<P>
-Have a LocationKey data structure that can be used to determine the
-relative order of locations in possibly different concurrent
-instances.  Contains: offset in document instance; is it a replacement
-of named character reference; for each entity and numeric character
-reference: location in entity and index of dtd in which instance is
-declared.
-<P>
-On systems with fixed stacks, avoid unlimited stack growth: hard
-limits on number of SUBDOCS and GRPLVL.
-<P>
-With extendData and extendS don't extend more than some fixed amount
-(eg 1024), otherwise could overrun InputSource buffer on 16-bit
-system.
-<P>
-Have a location in ElementType saying where the first mention of the
-element name was.  Useful for giving warnings about undefined
-elements.
-<P>
-How to detect 310:8-10?
-<P>
-AttributeSemantics should return const pointers rather than ResourcePointer's
-<P>
-Rename Parser -> ParserImpl SgmlParser -> Parser
-Syntax::isB -> Syntax::isBlank
-<P>
-What mode should be used for parsing other prolog after document element?
-<P>
-Flag out of context data.
-<P>
-Provide mechanism to allow character names to be mapped onto universal
-character numbers.
-<P>
-Provide mechanism to allow specification of wbat characters are
-control characters (for the purposes of SHUNCHAR controls).
-<P>
-With SCOPE INSTANCE, which syntax should be used for delimiters in
-bracketed text entities?
-<P>
-Better error messages for ambiguous delimiters.
-<P>
-Do we need both EndLpd and ComplexLink/SimpleLink events?
-<P>
-What to do about 457:19-21?
-<P>
-Rename lpd_ to activeLpd_; allLpd_ to lpd_.
-<P>
-Test for validity of character numbers in syn ref charset (perhaps
-unnecessary, because bad numbers won't be translateable into doc
-charset).
-<P>
-Option to read bootstrap character set from entity.
-<P>
-In AttributeDefinitionList have a flag that is true if any checking of
-unspecified values in attribute list is needed (ie CURRENT, REQUIRED,
-non-implied ENTITY, non-implied NOTATION).  In this case can avoid
-running over attributes in AttributeList::finish, by computing value
-only when user calls Attribute::value().
-<P>
-Construct link attributes from definition if no applicable link rule.
-(RAST maybe doesn't want this.  Make it a separate method in LinkProcess and
-use in SgmlsEventHandler. Very useful with ArcEngine.)
-<P>
-Shouldn't have OpenElementInfo in Message.  Instead use RTTI.
-<P>
-noSuchAttribute: include gi in message; if element is undefined, don't
-give error at all
-<P>
-noSuchAttributeToken: say what element or entity
-<P>
-nonExistentEntityRef should say document/link type
-<P>
-Distinguish errors that are totally recoverable.
-<P>
-Find better way to unpack entity information in entity attribute.
-
-<H2>
-Entity Manager
-</H2>
-<P>
-Avoid requiring that BASE sysid exist.
-<P>
-When FSI has only a single storage manager and that is a literal,
-return an InternalInputSource.
-<P>
-Allow user of InputSource to specify what bit combinations they
-want to see for RS and RE.
-<P>
-Have environment variable SP_INPUT_BCTF that overrides SP_BCTF for
-input.
-<P>
-Avoid using numeric character references for all characters in storage
-object identifier of literal storage manager in effective system
-identifier.
-<P>
-Instead of registering coding system pass CodingSystemKit that can create
-that can create coding systems.
-<P>
-Need BCTF entry in catalog that specifies default BCTF.
-<P>
-Have catalog entry that describes internet charset as BCTF plus PUBLIC
-identifier of SGML character set; then have charset= storage attribute
-that does the translation.
-<P>
-An SOEntityCatalog should consist of a Vector&lt;ConstPtr&lt;EntityCatalog>
-> which can be shared between several catalogs.  This would facilitate
-> caching.
-<P>
-Maybe need to be able to specify two types of catalog entry file: one
-used for all documents; one used for this document alone.
-<P>
-Allow end-tags in FSIs.  Support alternative SOSs.
-<P>
-Character sets in the catalog need rethinking.  Also character set of
-ParsedSystemId::Map::publicId.
-<P>
-Allow for HTTP proxy.
-<P>
-Cache catalogs.
-<P>
-Use Microsoft ActiveX (formerly Sweeper) DLL on Win95 or NT.
-<P>
-Implement DTDDECL catalog entry.
-<P>
-Support FILE URLs.
-<P>
-Perhaps don't want to do searching for catalog files (and perhaps
-command line files).
-<P>
-Provide mechanism for specifying when (if at all) base dir is searched
-relative to other dirs.
-<P>
-Provide extension to catalog format to distinguish entities declared
-in non-base DTDs. Perhaps precede entity name by document type name
-surrounded by GRPO/GRPC delimiters.
-<P>
-URLStorageManager should use a DescriptorManager shared with
-PosixStorageManager.
-<P>
-URLStorageManager::resolveRelative should delete "xxx/../" and "./"
-components.  Might also be a good idea to resolve host names.
-<P>
-Implement JIS encoding system (what should be done with half-width yen
-and overbar in JIS-Roman? translate to Unicode).
-<P>
-ExternalInfoImpl::convertOffset: when the position is the character
-past the last character and the last character was a newline, line
-number should be number of lines + 1.
-<P>
-Try harder to rewind in StdioStorageObject.
-<P>
-charset= storage attribute that infers BCTF from MIME charset assuming
-10646 document character set.
-
-<H2>
-Generic
-</H2>
-<P>
-Provide mechanism to access data entities using generated system id.
-<P>
-Support IMPLICIT/SIMPLE LINK.
-<P>
-Character set information.
-<P>
-Need to know space character that separates token.  Alternatively
-provide broken down view of tokens.
-<P>
-Need to know IDREF (and other declared values)?
-
-<H2>
-nsgmls
-</H2>
-<P>
-Problem with "\#n;" escape sequence is that it might get used other
-than in data.  Probably should get rid of this feature, and give
-a warning when there's an unencodable character.
-
-<H2>
-Internal
-</H2>
-<P>
-Make all macros that occur in headers begin with SP.
-<P>
-Make sure all files use #pragma i/i.
-<P>
-Get rid of assumption that Vector&lt;T>::size_type, String&lt;T>::size_type
-is size_t.
-<P>
-Maybe align Owner with auto_ptr.
-<P>
-Get rid of uses of string as identifier.
-<P>
-?Maybe support non-const copy constructors for NCVector/Owner.
-<P>
-Get rid of asEntityOrigin (as far as possible).  Make
-InputSourceOrigin::defLocation virtual on origin.  Avoid excessive use
-of asInputSourceOrigin.
-<P>
-Hash should define Hash(String&lt;unsigned char>),
-Hash(String&lt;unsigned short>) etc.
-<P>
-Invert sense of SP_HAVE_BOOL define.
-<P>
-Get rid of OutputCharStream::open.  Instead have
-OutputCharStream::setEncoding.  (Perhaps make a friend so we can use
-ostream if we're not interested in encodings.)  Allow use of ostream
-instead of OutputCharStream.  Change ParserToolkit::errorStream_'s coding
-system when we change the coding system.
-<P>
-Support 32-bit Char. Need to fix XcharMap and SubstTable.
-Detemplatize SubstTable.  Then support UTF-16.
-<P>
-Have a common version of Ptr for things that have a virtual
-destructor.
-<P>
-Have a common version of Owner for all things that have a virtual
-destructor.
-<P>
-Inheritance in AttributeSemantics unnecesary.
-<P>
-Rename ISet -> RangeSet.
-<P>
-ISet and RangeMap should use binary search.
-<P>
-Better hash function for wide characters.
-<P>
-OutputCharStream should canonically use RS/RE and translate to system
-newline char with raw option that prevents this.
-<P>
-Avoid having Entity.h depend on ParserState, perhaps by double
-dispatching.
-<P>
-Add uses of explicit keyword.
-<P>
-When generating message.h file; if we don't have .cxx file and
-namespaces are supported, use anonymous namespace.
-
-<H2>
-Application framework
-</H2>
-<P>
-Only use static programName for outOfMemory message.
-<P>
-Need to use AppChar *const * not AppChar ** in CmdLineApp.
-<P>
-When reporting message with MessageEventHandler need to be able to
-update error count.
-<P>
-Option argument names need to be internationalized.
-<P>
-Support response files for DOS.
-<P>
-Sort options in usage message.
-<P>
-StringMessageArg should be associated with a character set (in
-particular, need to distinguish parser character sets from
-StorageManager character sets).
-<P>
-Should translate StringMessageArg from document character set to
-system character set.  Have MessageReporter::setDocumentCharacter
-function.
-<P>
-In MessageReporter, maybe distinguish messages coming from the parser.
-<P>
-Don't ever give a non-existent file as a location in a error message.
-<P>
-Text of messages should be able to specify that an open quote or close
-quote should be inserted at a particular point.
-<P>
-When outputting a StringMessageArg translate \r to \n.
-<P>
-Make sure wild cards work in VC++ and MS-DOS.
-
-<H2>
-Win32
-</H2>
-<P>
-Compilers can typically eliminate unused templates.  Reengineer Vector
-to reduce code size with such compilers.
-<P>
-Store messages in resources; requires numeric tags for messages.
-<P>
-Should automatically register all available code pages.
-<P>
-Make use of IsTextUnicode() API.
-<P>
-Have StorageManager that uses Win32 API directly.  Would avoid limits
-on number of open files. Also use flag that says file is being
-accessed sequentially.
-<P>
-Allow DTDs to be compiled into binary by having storage manager that
-uses resource ids.
-
-<H2>
-Architecture engine
-</H2>
-<P>
-Should give an error with -A if the specified arch does not exist.
-<P>
-Interpret APPINFO parameter, and automatically enable architectural
-processing based on this.
-<P>
-Handle derived architecture support attributes.
-<P>
-When doing architectural processing in link type, not possible to have
-notation declaration, so need some other way to specify public
-identifier for architecture.
-<P>
-Allow DOCTYPE to be declared inline (as with CONCUR or EXPLICIT LINK).
-<P>
-Grok conventional comments.
-<P>
-Make work automatically with EventHandlers that process subdoc.  Make
-references to subdocs architectural.
-<P>
-Support different SGML declaration for meta-DTD.
-<P>
-Maybe should map internal sdata/cdata entities to copies in meta-DTD.
-<P>
-Perhaps when getting open element info should indicate that gis are
-architectural.
-<P>
-Think about references to SDATA entities in default values in meta-DTD.
-<P>
-Add default entity from real DTD to meta-DTD.
-<P>
-Tokenize ArcForm attribute appropriately.
-<P>
-Make special case for parsing DTD when entity can't be accessed.
-<P>
-Try to provide extension that would allow architecture elements be
-asynchronous with actual elements?  This would provide CONCUR
-functionality.
-
-<H2>
-sgmlnorm
-</H2>
-<P>
-Avoid bogus newline from invalid empty document.
-<P>
-Avoid always escaping >.
-<P>
-Option to say whether to use character references for 8-bit characters.
-<P>
-Option to output implied attributes.
-<P>
-Option to output all non-implied attributes.
-<P>
-Option to omit attribute name with name tokens.
-<P>
-Protect against recognition of short references.
-<P>
-Option to preserve CDATA entity references.
-<P>
-Option to output general entity declarations in DTD subset
-(but what about data attributes)?
-
-<H2>
-spam
-</H2>
-<P>
-Option to normalize names.
-<P>
-Add comments round expanded entities to prevent false delimiter
-recognition.
-<P>
-Add newline at the end if last thing was omitted tag.
-<P>
-Option to warn about changes in internal entities when not expanding.
-
-<H2>
-Documentation
-</H2>
-<P>
-Error message format.
-<P>
-&lt;catalog&gt; FSI tag.
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/index.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>SP</TITLE>
-</HEAD>
-<BODY>
-<H1>SP</H1>
-<H3>
-An SGML System Conforming to International Standard ISO 8879 --
-Standard Generalized Markup Language
-</H3>
-<P>
-The following documents are available:
-<P>
-<UL>
-<LI>
-<A HREF="features.htm">Summary of SP's features</A>
-<LI>
-<A HREF="http://www.jclark.com/sp/howtoget.htm">How to get SP</A>
-<LI>
-<A HREF="build.htm">How to build and install SP from source</A>
-<LI>
-Using SP
-<UL>
-<LI>
-<A HREF="new.htm">What's new in SP?</A>
-<LI>
-<A HREF="nsgmls.htm">nsgmls</A>, a replacement for sgmls
-<LI>
-<A HREF="sgmlsout.htm">nsgmls output format</A>,
-an extension to the output format of sgmls
-<LI>
-<A HREF="spam.htm">spam</A>, a sophisticated normalizer,
-perhaps better thought of as a markup stream editor
-<LI>
-<A HREF="sgmlnorm.htm">sgmlnorm</A>, a simpler normalizer
-that focuses on producing the same ESIS rather than
-preserving details of the markup
-<LI>
-<A HREF="spent.htm">spent</A>, a program providing access
-to SP's entity manager
-<LI>
-<A HREF="sysdecl.htm">System declaration</A>
-<LI>
-<A HREF="sgmldecl.htm">Handling of SGML declarations</A>
-<LI>
-<A HREF="sysid.htm">System identifiers</A>
-<LI>
-<A HREF="catalog.htm">Using SGML Open catalogs to generate
-system identifiers</A>
-<LI>
-<A HREF="archform.htm">Architectural form support</A>
-<LI>
-<A HREF="winntu.htm">Notes on SP Unicode support under Windows NT</A>
-</UL>
-<LI>
-Programming with SP
-<UL>
-<LI>
-<A HREF="generic.htm">Generic API to SP</A>
-<LI>
-<A HREF="ideas.htm">Ideas for improving SP</A>
-</UL>
-</UL>
-<P>
-There is a mailing list for programmer-level discussions of SP.  Mail
-subscription requests <A
-HREF="mailto:[email protected]">[email protected]</A>.
-Messages for the list should go to <A
-HREF="mailto:[email protected]">[email protected]</A>.
-<P>
-For information about SGML, see
-<UL>
-<LI>
-<A
-HREF="http://www.sil.org/sgml/sgml.html">The SGML Web Page</A>.
-<LI>
-<A HREF="http://www.iso.ch/cate/d16387.html">ISO 8879:1986</A>
-<LI>
-The SGML Handbook, Charles F. Goldfarb
-</UL>
-<P>
-I would like to hear about any bugs you find in SP.  When reporting a
-bug, please always include a complete self-contained file that will
-enable me to reproduce the bug.  I am also interested in receiving
-suggestions for improvements to SP no matter how small.
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/new.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>What's new in SP?</TITLE>
-</HEAD>
-<BODY>
-<H1>What's new?</H1>
-<P>
-This document describes recent user-visible changes in SP.  Bug fixes
-are not described.
-
-<H2>Version 1.1</H2>
-<P>
-There is now generalized support for <A
-HREF="archform.htm">architectural form processing</A>.
-<P>
-Documentation is now in HTML format.
-<P>
-A BASE catalog entry can be used to specify a base system identifier
-for resolving relative storage object identifiers occurring in the
-catalog.
-<P>
-A LITERAL storage manager is now provided.
-<P>
-Programs have a -E option that sets the maximum number of errors.
-<P>
-A DELEGATE catalog entry allows distributed resolution of public
-identifiers.
-<P>
-nsgmls has a -B (batch mode) option that allows you to parse multiple
-documents with a single invocation of nsgmls.
-<P>
-In nsgmls the -c option now specifies a catalog as it does in spam and
-sgmlnorm, in addition to the -m option that previously did this.
-<P>
-The <SAMP>-n</SAMP> option has been replaced by a
-<SAMP>-onotation-sysid</SAMP> which applies to nsgmls only, and a
-<SAMP>-wnotation-sysid</SAMP> which applies generally.
-<P>
-SP can be built as a DLL under Win32.
-
-<H2>Version 1.0</H2>
-<P>
-The syntax of system identifiers has completely changed.  The new
-syntax is based on the syntax of formal system identifiers defined in
-ISO/IEC 10744 (HyTime) Technical Corrigendum 1, Annex D.
-<P>
-The NSGMLS_CODE environment variable has been renamed to SP_BCTF.
-nsgmls has a -b option to specify the bit combination transformation
-format to be used for output.
-<P>
-A list of directories in which files specified in system identifiers
-should be searched for can be specified using the environment variable
-SGML_SEARCH_PATH or the option -D.
-<P>
-Individual SYSTEM identifiers in external identifiers can be
-overridden using SYSTEM entries in the catalog.
-<P>
-The OVERRIDE catalog entry now takes a YES/NO argument.  (This change
-was required for conformance to the SGML Open TR.)  It applies to each
-entry individually rather than to the entire catalog.
-<P>
-The -w options of nsgmls and spam have been enhanced.  In spam, the -w
-option takes an argument as with nsgmls.  There are new warnings for
-minimized start and end tags (-wunclosed, -wempty, -wnet and
--wmin-tag); for unused short reference maps (-wunused-maps); for
-unused parameter entities (-wunused-param).  -wall now doesn't include
-those warnings that are about conditions that, in the opinion of the
-author, there is no reason to avoid.  A warning can be turned off by
-using its name prefixed by no-; thus -wmin-tag -wno-net is equivalent
-to -wunclosed -wempty.  The -w option is also used to turn off errors:
--wno-idref replaces the -x option; -wno-significant replaces the -X
-option.
-<P>
-In the output of nsgmls, characters that cannot be represented in the
-encoding translation specified by the NSGMLS_BCTF environment variable
-are represented using an escape sequence of the form \#N; when N is a
-decimal integer.
-<P>
-In the multi-byte versions of nsgmls there are new BCTFs is8859-N
-for N = 1,...,9.
-<P>
-There is a -o option to nsgmls which makes it output additional
-information: -oentity outputs information about all entities; -oid
-distinguish attributes with a declared value of id; -oincluded
-distinguishes included subelements.
-<P>
-nsgmls now automatically searches for a catalog entry file called
-"catalog" in the same place as the document entity.  Note that when
-the document entity is specified with a URL, this matches the
-behaviour of Panorama.
-<P>
-A catalog entry file can contain CATALOG entries specifying additional
-catalog entry files.  This matches the behaviour of Panorama.
-<P>
-The parser can now make available to an application complete
-information about the markup of prologs and SGML declarations.  It
-would now be possible, for example, to use SP to write a DTD editor.
-spam exploits this to a limited extent: if the -p option is specified
-twice, then parameter entity references between declarations will be
-expanded; the -mreserved option puts all reserved names in upper-case;
-with the -mshortref option short reference use declarations and short
-reference mapping declarations will be removed; attribute
-specification lists in data attribute specifications in entity
-declarations can be normalized like attribute specification lists in
-start-tags; with -mms it resolves IGNORE/INCLUDE marked sections.
-<P>
-nsgmls has a -C option which causes the command line filenames to be
-treated as a catalog whose DOCUMENT entry specifies the document
-entity.
-<P>
-nsgmls has a -n option which causes it to generate system identifiers
-for notations in the same way as it does for entities.
-<P>
-spam now has a -f option like nsgmls.
-<P>
-The interface between the parser and entity manager has been
-redesigned so that the entity manager can be used independently of the
-parser.  This is exploited by a new program called spent that prints
-an entity with a specified system identifier on the standard output.
-<P>
-In most cases, a Control-Z occurring as the last byte in a file will
-be stripped.  This is controlled by the zapeof attribute in formal
-system identifiers.
-
-<H2>Version 0.4</H2>
-<P>
-External concrete syntaxes, character sets and capacity sets are
-supported using PUBLIC entries in catalog files.  The multicode code
-core and reference syntaxes are no longer built-in.  Only a few
-character sets are now built-in.
-<P>
-Within external concrete syntaxes, various useful extensions are
-permitted.  In particular, an ellipsis syntax is allowed for the
-specification of name characters and single character short
-references.  It is now practical to specify tens of thousands of
-additional name characters.
-<P>
-The default SGML declaration is more permissive.
-<P>
-nsgmls has a -x option that inhibits checking of idrefs.
-<P>
-nsgmls has a -w option that can enable additional warnings.  In
-particular, -wmixed will warn about mixed content models that do not
-allow #pcdata everywhere.
-<P>
-The meaning of the f command in the output of nsgmls has changed
-slightly.  It now gives the effective system identifier of the entity.
-<P>
-The functionality of the rast program has been merged into the nsgmls
-program and the rast program has been removed.  The -t option makes
-nsgmls generate a RAST result.
-<P>
-spam has a -l option that uses lower-case for added names that were
-subject to upper-case substitution.
-<P>
-spam has a -mcurrent option that adds omitted attribute specifications
-for current attributes.
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/nsgmls.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,450 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>NSGMLS</TITLE>
-</HEAD>
-<BODY>
-<H1>NSGMLS</H1>
-<H4>
-An SGML System Conforming to
-International Standard ISO 8879 --<BR>
-Standard Generalized Markup Language
-</H4>
-<H2>
-SYNOPSIS
-</H2>
-<P>
-<SAMP>nsgmls</SAMP>
-[
-<SAMP>-BCdeglprsuv</SAMP>
-]
-[
-<SAMP>-a<VAR>linktype</VAR></SAMP>
-]
-[
-<SAMP>-b<VAR>bctf</VAR></SAMP>
-]
-[
-<SAMP>-c<VAR>sysid</VAR></SAMP>
-]
-[
-<SAMP>-D<VAR>directory</VAR></SAMP>
-]
-[
-<SAMP>-E<VAR>max_errors</VAR></SAMP>
-]
-[
-<SAMP>-f<VAR>file</VAR></SAMP>
-]
-[
-<SAMP>-i<VAR>name</VAR></SAMP>
-]
-[
-<SAMP>-o<VAR>output_option</VAR></SAMP>
-]
-[
-<SAMP>-t<VAR>file</VAR></SAMP>
-]
-[
-<SAMP>-w<VAR>warning_type</VAR></SAMP>
-]
-[
-<SAMP><VAR>sysid</VAR>...</SAMP>
-]
-<H2>DESCRIPTION</H2>
-<P>
-Nsgmls parses and validates
-the SGML document whose document entity is specified by the
-<A HREF="sysid.htm">system identifiers</A>
-<SAMP><VAR>sysid</VAR>...</SAMP>
-and prints on the standard output a simple text representation of its
-Element Structure Information Set.
-(This is the information set which a structure-controlled
-conforming SGML application should act upon.)
-If more than one system identifier is specified,
-then the corresponding entities will be concatenated to form
-the document entity.
-Thus the document entity may be spread amongst several files;
-for example, the SGML declaration, prolog and document
-instance set could each be in a separate file.
-If no system identifiers are specified, then
-nsgmls
-will read the document entity from the standard input.
-A command line system identifier of
-<SAMP>-</SAMP>
-can be used to refer to the standard input.
-(Normally in a system identifier,
-<SAMP>&lt;osfd>0</SAMP>
-is used to refer to standard input.)
-<H2>OPTIONS</H2>
-<P>
-The following options are available:
-<DL>
-<DT>
-<SAMP>-a<VAR>linktype</VAR></SAMP>
-<DD>
-Make link type
-<SAMP><VAR>linktype</VAR></SAMP>
-active.
-Not all ESIS information is output in this case:
-the active LPDs are not explicitly reported,
-although each link attribute is qualified with
-its link type name;
-there is no information about result elements;
-when there are multiple link rules applicable to the
-current element,
-nsgmls
-always chooses the first.
-<DT>
-<SAMP>-b<VAR>bctf</VAR></SAMP>
-<DD>
-Use the <A HREF="sysid.htm#bctf">BCTF</A> named
-<SAMP><VAR>bctf</VAR></SAMP>
-for output.
-<DT>
-<SAMP>-B</SAMP>
-<DD>
-Batch mode.
-Parse each <SAMP><VAR>sysid...</VAR></SAMP> specified on the command
-line separately, rather than concatenating them.
-This is useful mainly with <SAMP>-s</SAMP>.
-<P>
-If <SAMP>-t<VAR>filename</VAR></SAMP> is also specified, then
-the specified <SAMP><VAR>filename</VAR></SAMP> will be prefixed
-to the <SAMP><VAR>sysid</VAR></SAMP> to make the filename
-for the RAST result for each <SAMP><VAR>sysid</VAR></SAMP>.
-<DT>
-<SAMP>-c<VAR>sysid</VAR></SAMP>
-<DD>
-Map public identifiers and entity names to system identifiers
-using the catalog entry file whose system identifier is
-<SAMP><VAR>sysid</VAR></SAMP>.
-Multiple
-<SAMP>-c</SAMP>
-options are allowed.
-If there is a catalog entry file called
-<SAMP>catalog</SAMP>
-in the same place as the document entity,
-it will be searched for immediately after those specified by
-<SAMP>-c</SAMP>.
-<DT>
-<A NAME="optC"><SAMP>-C</SAMP></A>
-<DD>
-The
-<SAMP><VAR>filename</VAR>...</SAMP>
-arguments specify catalog files rather than the document entity.
-The document entity is specified by the first
-<SAMP>DOCUMENT</SAMP>
-entry in the catalog files.
-<DT>
-<A NAME="optD"><SAMP>-D<VAR>directory</VAR></SAMP></A>
-<DD>
-Search
-<SAMP><VAR>directory</VAR></SAMP>
-for files specified in system identifiers.
-Multiple
-<SAMP>-D</SAMP> options
-are allowed.
-See the description of the
-<SAMP>osfile</SAMP>
-storage manager for more information about file searching.
-<DT>
-<SAMP>-e</SAMP>
-<DD>
-Describe open entities in error messages.
-Error messages always include the position of the most recently
-opened external entity.
-<DT>
-<SAMP>-E<VAR>max_errors</VAR></SAMP>
-<DD>
-Nsgmls
-will exit after
-<SAMP><VAR>max_errors</VAR></SAMP>
-errors.
-If
-<SAMP><VAR>max_errors</VAR></SAMP>
-is 0, there is no limit on the number of errors.
-The default is 200.
-<DT>
-<SAMP>-f<VAR>file</VAR></SAMP>
-<DD>
-Redirect errors to
-<SAMP><VAR>file</VAR></SAMP>.
-This is useful mainly with shells that do not support redirection
-of stderr.
-<DT>
-<SAMP>-g</SAMP>
-<DD>
-Show the generic identifiers of open elements in error messages.
-<DT>
-<A NAME="opti"><SAMP>-i<VAR>name</VAR></SAMP></A>
-<DD>
-Pretend that
-<PRE>
-&lt;!ENTITY % <VAR>name</VAR> "INCLUDE">
-</PRE>
-<P>
-occurs at the start of the document type declaration subset
-in the SGML document entity.
-Since repeated definitions of an entity are ignored,
-this definition will take precedence over any other definitions
-of this entity in the document type declaration.
-Multiple
-<SAMP>-i</SAMP>
-options are allowed.
-If the SGML declaration replaces the reserved name
-<SAMP>INCLUDE</SAMP>
-then the new reserved name will be the replacement text of the entity.
-Typically the document type declaration will contain
-<PRE>
-&lt;!ENTITY % <VAR>name</VAR> "IGNORE">
-</PRE>
-<P>
-and will use
-<SAMP>%<VAR>name</VAR>;</SAMP>
-in the status keyword specification of a marked section declaration.
-In this case the effect of the option will be to cause the marked
-section not to be ignored.
-<DT>
-<SAMP>-o<VAR>output_option</VAR></SAMP>
-<DD>
-Output additional information accordig to
-<SAMP><VAR>output_option</VAR></SAMP>:
-<DL>
-<DT>
-<SAMP>entity</SAMP>
-<DD>
-Output definitions of all general entities
-not just for data or subdoc entities that are referenced or named in an
-ENTITY or ENTITIES attribute.
-<DT>
-<SAMP>id</SAMP>
-<DD>
-Distinguish attributes whose declared value is ID.
-<DT>
-<SAMP>line</SAMP>
-<DD>
-Output
-<SAMP>L</SAMP>
-commands giving the current line number and filename.
-<DT>
-<SAMP>included</SAMP>
-<DD>
-Output an
-<SAMP>i</SAMP>
-command for included subelements.
-<DT>
-<SAMP>notation-sysid</SAMP>
-<DD>
-Output an <SAMP>f</SAMP> command before an <SAMP>N</SAMP> command,
-if a system identifier could be generated for that notation.
-</DL>
-<P>
-Multiple
-<SAMP>-o</SAMP>
-options are allowed.
-<DT>
-<SAMP>-p</SAMP>
-<DD>
-Parse only the prolog.
-Nsgmls
-will exit after parsing the document type declaration.
-Implies
-<SAMP>-s</SAMP>.
-<DT>
-<SAMP>-s</SAMP>
-<DD>
-Suppress output.
-Error messages will still be printed.
-<DT>
-<SAMP>-t<VAR>file</VAR></SAMP>
-<DD>
-Output to
-<SAMP><VAR>file</VAR></SAMP>
-the RAST result as defined by
-ISO/IEC 13673:1995 (actually this isn't quite an IS yet;
-this implements the Intermediate Editor's Draft of 1994/08/29,
-with changes to implement ISO/IEC JTC1/SC18/WG8 N1777).
-The normal output is not produced.
-<DT>
-<SAMP>-v</SAMP>
-<DD>
-Print the version number.
-<DT>
-<A NAME="optw"><SAMP>-w<VAR>type</VAR></SAMP></A>
-<DD>
-Control warnings and errors.
-Multiple
-<SAMP>-w</SAMP>
-options are allowed.
-The following values of
-<SAMP><VAR>type</VAR></SAMP>
-enable warnings:
-<DL>
-<DT>
-<SAMP>mixed</SAMP>
-<DD>
-Warn about mixed content models that do not allow #pcdata anywhere.
-<DT>
-<SAMP>sgmldecl</SAMP>
-<DD>
-Warn about various dubious constructions in the SGML declaration.
-<DT>
-<SAMP>should</SAMP>
-<DD>
-Warn about various recommendations made in ISO 8879 that the document
-does not comply with.
-(Recommendations are expressed with ``should'', as distinct from
-requirements which are usually expressed with ``shall''.)
-<DT>
-<SAMP>default</SAMP>
-<DD>
-Warn about defaulted references.
-<DT>
-<SAMP>duplicate</SAMP>
-<DD>
-Warn about duplicate entity declarations.
-<DT>
-<SAMP>undefined</SAMP>
-<DD>
-Warn about undefined elements: elements used in the DTD but not defined.
-<DT>
-<SAMP>unclosed</SAMP>
-<DD>
-Warn about unclosed start and end-tags.
-<DT>
-<SAMP>empty</SAMP>
-<DD>
-Warn about empty start and end-tags.
-<DT>
-<SAMP>net</SAMP>
-<DD>
-Warn about net-enabling start-tags and null end-tags.
-<DT>
-<SAMP>min-tag</SAMP>
-<DD>
-Warn about minimized start and end-tags.
-Equivalent to combination of
-<SAMP>unclosed</SAMP>,
-<SAMP>empty</SAMP>
-and
-<SAMP>net</SAMP>
-warnings.
-<DT>
-<SAMP>unused-map</SAMP>
-<DD>
-Warn about unused short reference maps: maps that are declared with a
-short reference mapping declaration but never used in a short
-reference use declaration in the DTD.
-<DT>
-<SAMP>unused-param</SAMP>
-<DD>
-Warn about parameter entities that are defined but not used in a DTD.
-Unused internal parameter entities whose text is
-<SAMP>INCLUDE</SAMP>
-or
-<SAMP>IGNORE</SAMP>
-won't get the warning.
-<DT>
-<SAMP>notation-sysid</SAMP>
-<DD>
-Warn about notations for which no system identifier could be generated.
-<DT>
-<SAMP>all</SAMP>
-<DD>
-Warn about conditions that should usually be avoided
-(in the opinion of the author).
-Equivalent to:
-<SAMP>mixed</SAMP>,
-<SAMP>should</SAMP>,
-<SAMP>default</SAMP>,
-<SAMP>undefined</SAMP>,
-<SAMP>sgmldecl</SAMP>,
-<SAMP>unused-map</SAMP>,
-<SAMP>unused-param</SAMP>,
-<SAMP>empty</SAMP>
-and
-<SAMP>unclosed</SAMP>.
-</DL>
-<P>
-A warning can be disabled by using its name prefixed with
-<SAMP>no-</SAMP>.
-Thus
-<SAMP>-wall -wno-duplicate</SAMP>
-will enable all warnings except those about duplicate entity
-declarations.
-<P>
-The following values for
-<SAMP><VAR>warning_type</VAR></SAMP>
-disable errors:
-<DL>
-<DT>
-<SAMP>no-idref</SAMP>
-<DD>
-Do not give an error for an ID reference value
-which no element has as its ID.
-The effect will be as if each attribute declared as
-an ID reference value had been declared as a name.
-<DT>
-<SAMP>no-significant</SAMP>
-<DD>
-Do not give an error when a character that is not a significant
-character in the reference concrete syntax occurs in a literal in the
-SGML declaration.  This may be useful in conjunction with certain
-buggy test suites.
-</DL>
-</DL>
-<P>
-The following options are also supported for backwards compatibility
-with sgmls:
-<DL>
-<DT>
-<SAMP>-d</SAMP>
-<DD>
-Same as
-<SAMP>-wduplicate</SAMP>.
-<DT>
-<SAMP>-l</SAMP>
-<DD>
-Same as
-<SAMP>-oline</SAMP>.
-<DT>
-<SAMP>-m<VAR>sysid</VAR></SAMP>
-<DD>
-Same as <SAMP>-c</SAMP>.
-<DT>
-<SAMP>-r</SAMP>
-<DD>
-Same as
-<SAMP>-wdefault</SAMP>.
-<DT>
-<SAMP>-u</SAMP>
-<DD>
-Same as
-<SAMP>-wundef</SAMP>.
-</DL>
-<H2>ENVIRONMENT</H2>
-<DL>
-<DT>
-<SAMP>SP_BCTF</SAMP>
-<DD>
-If this is set to one of
-<SAMP>identity</SAMP>,
-<SAMP>utf-8</SAMP>,
-<SAMP>euc-jp</SAMP> and <SAMP>sjis</SAMP>, then that BCTF will be used as the
-default BCTF for everything (including file input, file output,
-message output, filenames, environment variable names, environment
-variable values and command line arguments).  Note that setting
-<SAMP>SP_BCTF</SAMP> to <SAMP>unicode</SAMP>
-will not work.
-</DL>
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/sgmldecl.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,275 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>SP - SGML declaration</TITLE>
-</HEAD>
-<BODY>
-<H1>Handling of the SGML declaration in SP</H1>
-<H2>Default SGML declaration</H2>
-<P>
-If the SGML declaration is omitted
-and there is no applicable
-<A HREF="catalog.htm#sgmldecl"><SAMP>SGMLDECL</SAMP></A>
-entry in a catalog,
-the following declaration will be implied:
-<PRE>
-		    &lt;!SGML "ISO 8879:1986"
-			    CHARSET
-BASESET  "ISO 646-1983//CHARSET
-	  International Reference Version (IRV)//ESC 2/5 4/0"
-DESCSET    0  9 UNUSED
-	   9  2  9
-	  11  2 UNUSED
-	  13  1 13
-	  14 18 UNUSED
-	  32 95 32
-	 127  1 UNUSED
-CAPACITY PUBLIC    "ISO 8879:1986//CAPACITY Reference//EN"
-SCOPE    DOCUMENT
-SYNTAX
-SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
-	 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127 255
-BASESET  "ISO 646-1983//CHARSET International Reference Version
-	  (IRV)//ESC 2/5 4/0"
-DESCSET  0 128 0
-FUNCTION RE                    13
-	 RS                    10
-	 SPACE                 32
-	 TAB       SEPCHAR     9
-NAMING   LCNMSTRT  ""
-	 UCNMSTRT  ""
-	 LCNMCHAR  "-."
-	 UCNMCHAR  "-."
-	 NAMECASE  GENERAL     YES
-		   ENTITY      NO
-DELIM    GENERAL   SGMLREF
-	 SHORTREF  SGMLREF
-NAMES    SGMLREF
-QUANTITY SGMLREF
-	 ATTCNT    99999999
-	 ATTSPLEN  99999999
-	 DTEMPLEN  24000
-	 ENTLVL    99999999
-	 GRPCNT    99999999
-	 GRPGTCNT  99999999
-	 GRPLVL    99999999
-	 LITLEN    24000
-	 NAMELEN   99999999
-	 PILEN     24000
-	 TAGLEN    99999999
-	 TAGLVL    99999999
-			   FEATURES
-MINIMIZE DATATAG   NO
-	 OMITTAG   YES
-	 RANK      YES
-	 SHORTTAG  YES
-LINK     SIMPLE    YES 1000
-	 IMPLICIT  YES
-	 EXPLICIT  YES 1
-OTHER    CONCUR    NO
-	 SUBDOC    YES 99999999
-	 FORMAL    YES
-			  APPINFO NONE>
-</PRE>
-<P>
-with the exception that all characters that are neither significant
-nor shunned will be assigned to DATACHAR.
-<H2>Character sets</H2>
-<P>
-A character in a base character set is described either by giving its
-number in a universal character set, or by specifying a minimum
-literal.  The constraints on the choice of universal character set are
-that characters that are significant in the SGML reference concrete
-syntax must be in the universal character set and must have the same
-number in the universal character set as in ISO 646 and that each
-character in the character set must be represented by exactly one
-number; that character numbers in the range 0 to 31 and 127 to 159 are
-control characters (for the purpose of enforcing SHUNCHAR CONTROLS).
-It is recommended that ISO 10646 (Unicode) be used as the universal
-character set, except in environments where the normal document
-character sets are large character set which cannot be compactly
-described in terms of ISO 10646.
-The public identifier of a base character set can be associated
-with an entity that describes it by using a
-<SAMP>PUBLIC</SAMP>
-entry in the catalog entry file.
-The entity must be a fragment
-of an SGML declaration
-consisting of the
-portion of a character set description,
-following the DESCSET keyword,
-that is, it must be a sequence of character descriptions,
-where each character description specifies a described character
-number, the number of characters and
-either a character number in the universal character set, a minimum literal
-or the keyword
-<SAMP>UNUSED</SAMP>.
-Character numbers in the universal character set can be as big as
-99999999.
-<P>
-In addition SP has built in knowledge of a few character sets.
-These are identified using the designating sequence in the
-public identifier.  The following designating sequences are
-recognized:
-<DL>
-<DT>
-<SAMP>ESC 2/5 4/0</SAMP>
-<DD>
-The full set of ISO 646 IRV.
-This is not a registered character set,
-but is recommended by ISO 8879 (clause 10.2.2.4).
-<DT>
-<SAMP>ESC 2/8 4/0</SAMP>
-<DD>
-G0 set of ISO 646 IRV,
-ISO Registration Number 2.
-<DT>
-<SAMP>ESC 2/8 4/2</SAMP>
-<DD>
-G0 set of ASCII,
-ISO Registration Number 6.
-<DT>
-<SAMP>ESC 2/1 4/0</SAMP>
-<DD>
-C0 set of ISO 646,
-ISO Registration Number 1.
-</DL>
-<P>
-All the above character sets will be treated as mapping character numbers
-0 to 127 inclusive as in ISO 646.
-<P>
-It is not necessary for every character set used in the SGML
-declaration to be known to SP
-provided that characters in the document character set that are
-significant both in the reference concrete syntax and in the described
-concrete syntax are described using known base character sets and that
-characters that are significant in the described concrete syntax are
-described using the same base character sets or the same minimum
-literals in both the document character set description and the syntax
-reference character set description.
-
-<H2>Concrete syntaxes</H2>
-<P>
-The public identifier for a public concrete syntax can be associated
-with an entity that describes using a
-<SAMP>PUBLIC</SAMP>
-entry in the catalog entry file.
-The entity must be a fragment of an SGML declaration
-consisting of a concrete syntax description
-starting with the
-<SAMP>SHUNCHAR</SAMP>
-keyword
-as in an SGML declaration.
-The entity can also make use of the following extensions:
-<UL>
-<LI>
-An
-<I>added function</I>
-can be expressed as a parameter literal
-instead of a name.
-<LI>
-The replacement for a reference reserved name
-can be expressed as a parameter literal instead of a name.
-<LI>
-The
-<SAMP>LCNMSTRT</SAMP>,
-<SAMP>UCNMSTRT</SAMP>,
-<SAMP>LCNMCHAR</SAMP>
-and
-<SAMP>UCNMCHAR</SAMP>
-keywords may each be followed by more than one parameter literal.  A
-sequence of parameter literals has the same meaning as a single
-parameter literal whose content is the concatenation of the content of
-each of the literals in the sequence.  This extension is useful
-because of the restriction on the length of a parameter literal in the
-SGML declaration to 240 characters.
-<LI>
-The total number of characters specified for
-<SAMP>UCNMCHAR</SAMP>
-or
-<SAMP>UCNMSTRT</SAMP>
-may exceed the total number of characters specified for
-<SAMP>LCNMCHAR</SAMP>
-or
-<SAMP>LCNMSTRT</SAMP>
-respectively.
-Each character in
-<SAMP>UCNMCHAR</SAMP>
-or
-<SAMP>UCNMSTRT</SAMP>
-which does not have a corresponding character in the same position in
-<SAMP>LCNMCHAR</SAMP>
-or
-<SAMP>LCNMSTRT</SAMP>
-is simply assigned to <SAMP>UCNMCHAR</SAMP> or <SAMP>UCNMSTRT</SAMP>
-without making it the upper-case form of any character.
-<LI>
-A parameter following any of
-<SAMP>LCNMSTRT</SAMP>,
-<SAMP>UCNMSTRT</SAMP>,
-<SAMP>LCNMCHAR</SAMP>
-and
-<SAMP>UCNMCHAR</SAMP>
-keywords may be followed by
-the name token <SAMP>...</SAMP>
-(three periods) and another parameter literal.
-This has the same meaning as the two parameter literals
-with a parameter literal in between
-containing in order each character whose number
-is greater than the number of the last character in
-the first parameter literal and less than the
-number of the first character in the second
-parameter literal.
-A parameter literal must contain at least one character for each
-<SAMP>...</SAMP>
-to which it is adjacent.
-<LI>
-A number may be used as a parameter following the
-<SAMP>LCNMSTRT</SAMP>,
-<SAMP>UCNMSTRT</SAMP>,
-<SAMP>LCNMCHAR</SAMP>
-and
-<SAMP>UCNMCHAR</SAMP>
-keywords or as a delimiter in the
-<SAMP>DELIM</SAMP>
-section with the same meaning as a parameter literal
-containing just a numeric character reference with that number.
-<LI>
-The parameters following the
-<SAMP>LCNMSTRT</SAMP>,
-<SAMP>UCNMSTRT</SAMP>,
-<SAMP>LCNMCHAR</SAMP>
-and
-<SAMP>UCNMCHAR</SAMP>
-keywords may be omitted.
-This has the same meaning as specifying
-an empty parameter literal.
-<LI>
-Within the specification of the short reference delimiters,
-a parameter literal containing exactly one character
-may be followed by the name token  <SAMP>...</SAMP>
-and another parameter literal containing exactly one character.
-This has the same meaning as a sequence of parameter literals
-one for each character number that is greater than or equal
-to the number of the character in the first parameter literal
-and less than or equal to the number of the character in the
-second parameter literal.
-</UL>
-<H2>Capacity sets</H2>
-<P>
-The public identifier for a public capacity set can be associated
-with an entity that describes using a
-<SAMP>PUBLIC</SAMP>
-entry in the catalog entry file.
-The entity must be a fragment of an SGML declaration
-consisting of a sequence of capacity names and numbers.
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/sgmlnorm.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>SGMLNORM</TITLE>
-</HEAD>
-<BODY>
-<H1>SGMLNORM</H1>
-<H4>
-An SGML System Conforming to
-International Standard ISO 8879 --<BR>
-Standard Generalized Markup Language
-</H4>
-<H2>SYNOPSIS</H2>
-<P>
-<SAMP>sgmlnorm</SAMP>
-[
-<SAMP>-Cdemnv</SAMP>
-]
-[
-<SAMP>-b<VAR>bctf</VAR></SAMP>
-]
-[
-<SAMP>-c<VAR>catalog</VAR></SAMP>
-]
-[
-<SAMP>-D<VAR>dir</VAR></SAMP>
-]
-[
-<SAMP>-i<VAR>name</VAR></SAMP>
-]
-[
-<SAMP>-w<VAR>warning</VAR></SAMP>
-]
-<SAMP><VAR>sysid...</VAR></SAMP>
-
-<H2>DESCRIPTION</H2>
-<P>
-Sgmlnorm prints on the standard output a <I>normalized</I> document instance
-for the SGML document contained in the concatenation of the entities
-with <A HREF="sysid.htm">system identifiers</A>
-<SAMP><VAR>sysid...</VAR></SAMP>.
-<P>
-When the normalized instance is prefixed with the original SGML declaration
-and prolog, it will have the same ESIS as the original SGML document,
-with the following exceptions:
-<UL>
-<LI>
-The output of sgmlnorm does not protect against the recognition of
-short reference delimiters, so any <SAMP>USEMAP</SAMP> declarations
-must be removed from the DTD.
-<LI>
-The normalized instance will use the reference delimiters, even if the
-original instance did not.
-<LI>
-If marked sections are included in the output using the
-<SAMP>-m</SAMP> option, the reference reserved names will be used for
-the status keywords even if the original instance did not.
-<LI>
-Any ESIS information relating to the SGML LINK feature will be lost.
-</UL>
-<P>
-The normalized instance will not use any markup minimization features
-except that:
-<UL>
-<LI>
-Any attributes that were not specified in the original instance
-will not be included in the normalized instance.
-(Current attributes will be included.)
-<LI>
-If the declared value of an attribute was a name token group,
-and a value was specified that was the same as the name of
-the attribute, then the attribute name and value indicator will be
-omitted.
-For example, with HTML sgmlnorm would output <CODE>&lt;DL COMPACT&gt;</CODE>
-rather than <CODE>&lt;DL COMPACT="COMPACT"&gt;</CODE>
-</UL>
-<P>
-The following options are available:
-<DL>
-<DT>
-<SAMP>-b<VAR>bctf</VAR></SAMP>
-<DD>
-Use the <A HREF="sysid.htm#bctf">BCTF</A> with name
-<SAMP><VAR>bctf</VAR></SAMP>
-for output.
-<DT>
-<SAMP>-c<VAR>file</VAR></SAMP>
-<DD>
-Use the catalog entry file
-<SAMP><VAR>file</VAR></SAMP>.
-<DT>
-<SAMP>-C</SAMP>
-<DD>
-This has the same effect as in <A HREF="nsgmls#optC">nsgmls</A>.
-<DT>
-<SAMP>-d</SAMP>
-<DD>
-Output a document type declaration with the same external
-identifier as the input document, and with no
-internal declaration subset.
-No check is performed that the document instance is valid
-with respect to this DTD.
-<DT>
-<SAMP>-D<VAR>directory</VAR></SAMP>
-<DD>
-Search
-<SAMP><VAR>directory</VAR></SAMP>
-for files specified in system identifiers.
-This has the same effect as in <A HREF="nsgmls.htm#optD">nsgmls</A>.
-<DT>
-<SAMP>-e</SAMP>
-<DD>
-Describe open entities in error messages.
-<DT>
-<SAMP>-i<VAR>name</VAR></SAMP>
-<DD>
-This has the same effect as in <A HREF="nsgmls.htm#opti">nsgmls</A>.
-<DT>
-<SAMP>-m</SAMP>
-<DD>
-Output any marked sections that were in the input document instance.
-<DT>
-<SAMP>-n</SAMP>
-<DD>
-Output any comments that were in the input document instance.
-<DT>
-<SAMP>-r</SAMP>
-<DD>
-Raw output.
-Don't perform any conversion on RSs and REs when printing the entity.
-The entity would typically have the storage manager attribute
-<SAMP>records=asis</SAMP>.
-<DT>
-<SAMP>-v</SAMP>
-<DD>
-Print the version number.
-<DT>
-<SAMP>-w<VAR>type</VAR></SAMP>
-<DD>
-Control warnings and errors according to
-<SAMP><VAR>type</VAR></SAMP>.
-This has the same effect as in <A HREF="nsgmls.htm#optw">nsgmls</A>.
-</DL>
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/sgmlsout.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,420 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>Nsgmls Output Format</TITLE>
-</HEAD>
-<BODY>
-<H1>Nsgmls Output Format</H1>
-<P>
-The output is a series of lines.
-Lines can be arbitrarily long.
-Each line consists of an initial command character
-and one or more arguments.
-Arguments are separated by a single space,
-but when a command takes a fixed number of arguments
-the last argument can contain spaces.
-There is no space between the command character and the first argument.
-Arguments can contain the following escape sequences:
-<DL>
-<DT>
-<CODE>\\</CODE>
-<DD>
-A
-<CODE>\</CODE>.
-<DT>
-<CODE>\n</CODE>
-<DD>
-A record end character.
-<DT>
-<CODE>\|</CODE>
-<DD>
-Internal SDATA entities are bracketed by these.
-<DT>
-<CODE>\<VAR>nnn</VAR></CODE>
-<DD>
-The character whose code is
-<CODE><VAR>nnn</VAR></CODE>
-octal.
-<P>
-A record start character will be represented by
-<CODE>\012</CODE>.
-Most applications will need to ignore
-<CODE>\012</CODE>
-and translate
-<CODE>\n</CODE>
-into newline.
-<DT>
-<CODE>\#<VAR>n</VAR>;</CODE>
-<DD>
-The character whose number is
-<CODE><VAR>n</VAR></CODE>
-in decimal.
-<CODE><VAR>n</VAR></CODE>
-can have any number of digits.
-This is used for characters that are not representable by the
-encoding translation used for output
-(as specified by the
-<CODE>SP_BCTF</CODE>
-environment variable).
-This will only occur with the multibyte version of nsgmls.
-</DL>
-<P>
-The possible command characters and arguments are as follows:
-<DL>
-<DT>
-<CODE>(<VAR>gi</VAR></CODE>
-<DD>
-The start of an element whose generic identifier is
-<CODE><VAR>gi</VAR></CODE>.
-Any attributes for this element
-will have been specified with
-<CODE>A</CODE>
-commands.
-<DT>
-<CODE>)<VAR>gi</VAR></CODE>
-<DD>
-The end of an element whose generic identifier is
-<CODE><VAR>gi</VAR></CODE>.
-<DT>
-<CODE>-<VAR>data</VAR></CODE>
-<DD>
-Data.
-<DT>
-<CODE>&amp;<VAR>name</VAR></CODE>
-<DD>
-A reference to an external data entity
-<CODE><VAR>name</VAR></CODE>;
-<CODE><VAR>name</VAR></CODE>
-will have been defined using an
-<CODE>E</CODE>
-command.
-<DT>
-<CODE>?<VAR>pi</VAR></CODE>
-<DD>
-A processing instruction with data
-<CODE><VAR>pi</VAR></CODE>.
-<DT>
-<CODE>A<VAR>name</VAR> <VAR>val</VAR></CODE>
-<DD>
-The next element to start has an attribute
-<CODE><VAR>name</VAR></CODE>
-with value
-<CODE><VAR>val</VAR></CODE>
-which takes one of the following forms:
-<DL>
-<DT>
-<CODE>IMPLIED</CODE>
-<DD>
-The value of the attribute is implied.
-<DT>
-<CODE>CDATA <VAR>data</VAR></CODE>
-<DD>
-The attribute is character data.
-This is used for attributes whose declared value is
-<CODE>CDATA</CODE>.
-<DT>
-<CODE>NOTATION <VAR>nname</VAR></CODE>
-<DD>
-The attribute is a notation name;
-<CODE><VAR>nname</VAR></CODE>
-will have been defined using a
-<CODE>N</CODE>
-command.
-This is used for attributes whose declared value is
-<CODE>NOTATION</CODE>.
-<DT>
-<CODE>ENTITY <VAR>name...</VAR></CODE>
-<DD>
-The attribute is a list of general entity names.
-Each entity name will have been defined using an
-<CODE>I</CODE>,
-<CODE>E</CODE>
-or
-<CODE>S</CODE>
-command.
-This is used for attributes whose declared value is
-<CODE>ENTITY</CODE>
-or
-<CODE>ENTITIES</CODE>.
-<DT>
-<CODE>TOKEN <VAR>token...</VAR></CODE>
-<DD>
-The attribute is a list of tokens.
-This is used for attributes whose declared value is anything else.
-<DT>
-<CODE>ID <VAR>token</VAR></CODE>
-<DD>
-The attribute is an ID value.
-This will be output only if the
-<CODE>-oid</CODE>
-option is specified.
-Otherwise
-<CODE>TOKEN</CODE>
-will be used for ID values.
-</DL>
-<DT>
-<CODE>D<VAR>ename</VAR> <VAR>name</VAR> <VAR>val</VAR></CODE>
-<DD>
-This is the same as the
-<CODE>A</CODE>
-command, except that it specifies a data attribute for an
-external entity named
-<CODE><VAR>ename</VAR></CODE>.
-Any
-<CODE>D</CODE>
-commands will come after the
-<CODE>E</CODE>
-command that defines the entity to which they apply, but
-before any
-<CODE>&amp;</CODE>
-or
-<CODE>A</CODE>
-commands that reference the entity.
-<DT>
-<CODE>a<VAR>type</VAR> <VAR>name</VAR> <VAR>val</VAR></CODE>
-<DD>
-The next element to start has a link attribute with link type
-<CODE><VAR>type</VAR></CODE>,
-name
-<CODE><VAR>name</VAR></CODE>,
-and value
-<CODE><VAR>val</VAR></CODE>,
-which takes the same form as with the
-<CODE>A</CODE>
-command.
-<DT>
-<CODE>N<VAR>nname</VAR></CODE>
-<DD>
-Define a notation <CODE><VAR>nname</VAR></CODE>.
-This command will be preceded by a
-<CODE>p</CODE>
-command if the notation was declared with a public identifier,
-and by a
-<CODE>s</CODE>
-command if the notation was declared with a system identifier.
-If the
-<CODE>-onotation-sysid</CODE>
-option was specified,
-this command will also be preceded by an
-<CODE>f</CODE>
-command giving the system identifier generated by the entity manager
-(unless it was unable to generate one).
-A notation will only be defined if it is to be referenced
-in an
-<CODE>E</CODE>
-command or in an
-<CODE>A</CODE>
-command for an attribute with a declared value of
-<CODE>NOTATION</CODE>.
-<DT>
-<CODE>E<VAR>ename</VAR> <VAR>typ</VAR> <VAR>nname</VAR></CODE>
-<DD>
-Define an external data entity named
-<CODE><VAR>ename</VAR></CODE>
-with type
-<CODE><VAR>typ</VAR></CODE>
-(<CODE>CDATA</CODE>, <CODE>NDATA</CODE> or <CODE>SDATA</CODE>)
-and notation <CODE><VAR>not</VAR></CODE>.
-Thiscommand will be preceded by an
-<CODE>f</CODE>
-command giving the system identifier generated by the entity manager
-(unless it was unable to generate one),
-by a
-<CODE>p</CODE>
-command if a public identifier was declared for the entity,
-and by a
-<CODE>s</CODE>
-command if a system identifier was declared for the entity.
-<CODE><VAR>not</VAR></CODE>
-will have been defined using a
-<CODE>N</CODE>
-command.
-Data attributes may be specified for the entity using
-<CODE>D</CODE>
-commands.
-If the
-<CODE>-oentity</CODE>
-option is not specified,
-an external data entity will only be defined if it is to be referenced in a
-<CODE>&amp;</CODE>
-command or in an
-<CODE>A</CODE>
-command for an attribute whose declared value is
-<CODE>ENTITY</CODE>
-or
-<CODE>ENTITIES</CODE>.
-<DT>
-<CODE>I<VAR>ename</VAR> <VAR>typ</VAR> <VAR>text</VAR></CODE>
-<DD>
-Define an internal data entity named
-<CODE><VAR>ename</VAR></CODE>
-with type
-<CODE><VAR>typ</VAR></CODE>
-and entity text
-<CODE><VAR>text</VAR></CODE>.
-The
-<CODE><VAR>typ</VAR></CODE>
-will be
-<CODE>CDATA</CODE>
-or
-<CODE>SDATA</CODE>
-unless the
-<CODE>-oentity</CODE>
-option was specified,
-in which case it can also be
-<CODE>PI</CODE>
-or
-<CODE>TEXT</CODE>
-(for an SGML text entity).
-If the
-<CODE>-oentity</CODE>
-option is not specified,
-an internal data entity will only be defined if it is referenced in an
-<CODE>A</CODE>
-command for an attribute whose declared value is
-<CODE>ENTITY</CODE>
-or
-<CODE>ENTITIES</CODE>.
-<DT>
-<CODE>S<VAR>ename</VAR></CODE>
-<DD>
-Define a subdocument entity named
-<CODE><VAR>ename</VAR></CODE>.
-This command will be preceded by an
-<CODE>f</CODE>
-command giving the system identifier generated by the entity manager
-(unless it was unable to generate one),
-by a
-<CODE>p</CODE>
-command if a public identifier was declared for the entity,
-and by a
-<CODE>s</CODE>
-command if a system identifier was declared for the entity.
-If the
-<CODE>-oentity</CODE>
-option is not specified,
-a subdocument entity will only be defined if it is referenced
-in a
-<CODE>{</CODE>
-command
-or in an
-<CODE>A</CODE>
-command for an attribute whose declared value is
-<CODE>ENTITY</CODE>
-or
-<CODE>ENTITIES</CODE>.
-<DT>
-<CODE>T<VAR>ename</VAR></CODE>
-<DD>
-Define an external SGML text entity named
-<CODE><VAR>ename</VAR></CODE>.
-This command will be preceded by an
-<CODE>f</CODE>
-command giving the system identifier generated by the entity manager
-(unless it was unable to generate one),
-by a
-<CODE>p</CODE>
-command if a public identifier was declared for the entity,
-and by a
-<CODE>s</CODE>
-command if a system identifier was declared for the entity.
-This command will be output only if the
-<CODE>-oentity</CODE>
-option is specified.
-<DT>
-<CODE>s<VAR>sysid</VAR></CODE>
-<DD>
-This command applies to the next
-<CODE>E</CODE>,
-<CODE>S</CODE>,
-<CODE>T</CODE>
-or
-<CODE>N</CODE>
-command and specifies the associated system identifier.
-<DT>
-<CODE>p<VAR>pubid</VAR></CODE>
-<DD>
-This command applies to the next
-<CODE>E</CODE>,
-<CODE>S</CODE>,
-<CODE>T</CODE>
-or
-<CODE>N</CODE>
-command and specifies the associated public identifier.
-<DT>
-<CODE>f<VAR>sysid</VAR></CODE>
-<DD>
-This command applies to the next
-<CODE>E</CODE>,
-<CODE>S</CODE>,
-<CODE>T</CODE>
-or, if the
-<CODE>-onotation-sysid</CODE>
-option was specified,
-<CODE>N</CODE>
-command and specifies the system identifier
-generated by the entity manager from the specified external identifier
-and other information about the entity or notation.
-<DT>
-<CODE>{<VAR>ename</VAR></CODE>
-<DD>
-The start of the SGML subdocument entity
-<CODE><VAR>ename</VAR></CODE>;
-<CODE><VAR>ename</VAR></CODE>
-will have been defined using a
-<CODE>S</CODE>
-command.
-<DT>
-<CODE>}<VAR>ename</VAR></CODE>
-<DD>
-The end of the SGML subdocument entity
-<CODE><VAR>ename</VAR></CODE>.
-<DT>
-<CODE>L<VAR>lineno</VAR> <VAR>file</VAR></CODE>
-<DT>
-<CODE>L<VAR>lineno</VAR></CODE>
-<DD>
-Set the current line number and filename.
-The
-<CODE><VAR>file</VAR></CODE>
-argument will be omitted if only the line number has changed.
-This will be output only if the
-<CODE>-l</CODE>
-option has been given.
-<DT>
-<CODE>#<VAR>text</VAR></CODE>
-<DD>
-An APPINFO parameter of
-<CODE><VAR>text</VAR></CODE>
-was specified in the SGML declaration.
-This is not strictly part of the ESIS, but a structure-controlled
-application is permitted to act on it.
-No
-<CODE>#</CODE>
-command will be output if
-<CODE>APPINFO NONE</CODE>
-was specified.
-A
-<CODE>#</CODE>
-command will occur at most once,
-and may be preceded only by a single
-<CODE>L</CODE>
-command.
-<DT>
-<CODE>C</CODE>
-<DD>
-This command indicates that the document was a conforming SGML document.
-If this command is output, it will be the last command.
-An SGML document is not conforming if it references a subdocument entity
-that is not conforming.
-</DL>
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/spam.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>SPAM</TITLE>
-</HEAD>
-<BODY>
-<H1>SPAM</H1>
-<H4>
-An SGML System Conforming to
-International Standard ISO 8879 --<BR>
-Standard Generalized Markup Language
-</H4>
-<H2>
-SYNOPSIS
-</H2>
-<P>
-<CODE>spam</CODE>
-[
-<CODE>-Cehilprvx</CODE>
-]
-[
-<CODE>-c<VAR>catalog_file</VAR></CODE>
-]
-[
-<CODE>-D<VAR>directory</VAR></CODE>
-]
-[
-<CODE>-f<VAR>file</VAR></CODE>
-]
-[
-<CODE>-m<VAR>markup_option</VAR></CODE>
-]
-[
-<CODE>-o<VAR>entity_name</VAR></CODE>
-]
-[
-<CODE>-w<VAR>warning_type</VAR></CODE>
-]
-<CODE><VAR>sysid...</VAR></CODE>
-<H2>DESCRIPTION</H2>
-<P>
-Spam (SP Add Markup)
-is an SGML markup stream editor implemented using the SP parser.
-Spam parses the SGML document contained in
-<CODE><VAR>sysid...</VAR></CODE>
-and copies to the standard output
-the portion of the document entity containing the document
-instance, adding or changing markup as specified by the
-<CODE>-m</CODE> options.
-The <CODE>-p</CODE>
-option can be used to include the SGML declaration and prolog
-in the output.
-The <CODE>-o</CODE>
-option can be used to output other entities.
-The
-<CODE>-x</CODE>
-option can be used to expand entity references.
-<P>
-The following options are available:
-<DL>
-<DT>
-<CODE>-c<VAR>file</VAR></CODE>
-<DD>
-Use the catalog entry file
-<CODE><VAR>file</VAR></CODE>.
-<DT>
-<CODE>-C</CODE>
-<DD>
-This has the same effect as in <A HREF="nsgmls#optC">nsgmls</A>.
-<DT>
-<CODE>-D<VAR>directory</VAR></CODE>
-<DD>
-Search
-<CODE><VAR>directory</VAR></CODE>
-for files specified in system identifiers.
-This has the same effect as in <A HREF="nsgmls.htm#optD">nsgmls</A>.
-<DT>
-<CODE>-e</CODE>
-<DD>
-Describe open entities in error messages.
-<DT>
-<CODE>-f<VAR>file</VAR></CODE>
-<DD>
-Redirect errors to
-<CODE><VAR>file</VAR></CODE>.
-This is useful mainly with shells that do not support redirection
-of stderr.
-<DT>
-<CODE>-h</CODE>
-<DD>
-Hoist omitted tags out from the start of internal entities.
-If the text at the beginning of an internal entity causes
-a tag to be implied,
-the tag will usually be treated as being in that internal entity;
-this option will instead cause it to be treated as being in the entity
-that referenced the internal entity.
-This option makes a difference in conjunction with
-<CODE>-momittag</CODE>
-or
-<CODE>-x -x</CODE>.
-<DT>
-<CODE>-i<VAR>name</VAR></CODE>
-<DD>
-This has the same effect as in <A HREF="nsgmls.htm#opti">nsgmls</A>.
-<DT>
-<CODE>-l</CODE>
-<DD>
-Prefer lower-case.
-Added names that were subject to upper-case substitution
-will be converted to lower-case.
-<DT>
-<CODE>-m<VAR>markup_option</VAR></CODE>
-<DD>
-Change the markup in the output according to the value
-of
-<CODE><VAR>markup_option</VAR></CODE>
-as follows:
-<DL>
-<DT>
-<CODE>omittag</CODE>
-<DD>
-Add tags that were omitted using omitted tag minimization.
-End tags that were omitted because the element has
-a declared content of <SAMP>EMPTY</SAMP>
-or an explicit content reference
-will not be added.
-<DT>
-<CODE>shortref</CODE>
-<DD>
-Replace short references by named entity references.
-<DT>
-<CODE>net</CODE>
-<DD>
-Change null end-tags
-into unminimized end-tags,
-and change net-enabling start-tags
-into unminimized start-tags.
-<DT>
-<CODE>emptytag</CODE>
-<DD>
-Change empty tags into unminimized tags.
-<DT>
-<CODE>unclosed</CODE>
-<DD>
-Change unclosed tags into unminimized tags.
-<DT>
-<CODE>attname</CODE>
-<DD>
-Add omitted attribute names and
-<CODE>vi</CODE>s.
-<DT>
-<CODE>attvalue</CODE>
-<DD>
-Add literal delimiters omitted from attribute values.
-<DT>
-<CODE>attspec</CODE>
-<DD>
-Add omitted attribute specifications.
-<DT>
-<CODE>current</CODE>
-<DD>
-Add omitted attribute specifications for current attributes.
-This option is implied by the
-<CODE>attspec</CODE>
-option.
-<DT>
-<CODE>shorttag</CODE>
-<DD>
-Equivalent to combination of
-<CODE>net</CODE>,
-<CODE>emptytag</CODE>,
-<CODE>unclosed</CODE>,
-<CODE>attname</CODE>,
-<CODE>attvalue</CODE>
-and
-<CODE>attspec</CODE>
-options.
-<DT>
-<CODE>rank</CODE>
-<DD>
-Add omitted rank suffixes.
-<DT>
-<CODE>reserved</CODE>
-<DD>
-Put reserved names in upper-case.
-<DT>
-<CODE>ms</CODE>
-<DD>
-Remove marked section declarations whose effective status
-is IGNORE, and replace each marked section declaration
-whose effective status is INCLUDE by its marked section.
-In the document instance, empty comments will be added
-before or after the marked section declaration to ensure
-that ignored record ends remain ignored.
-</DL>
-<P>
-Multiple
-<CODE>-m</CODE>
-options are allowed.
-<DT>
-<CODE>-o<VAR>name</VAR></CODE>
-<DD>
-Output the general entity
-<CODE><VAR>name</VAR></CODE>
-instead of the document entity.
-The output will correspond to the first time
-that the entity is referenced in content.
-<DT>
-<CODE>-p</CODE>
-<DD>
-Output the part of the document entity containing the SGML declaration
-(if it was explicitly present in the document entity)
-and the prolog before anything else.
-If this option is specified two or more times,
-then all entity references occurring between declarations
-in the prolog will be expanded;
-this includes the implicit reference to the entity
-containing the external subset of the DTD, if there is one.
-Note that the SGML declaration will not be included if it was
-specified by an SGMLDECL entry in a catalog.
-<DT>
-<CODE>-r</CODE>
-<DD>
-Don't perform any conversion on RSs and REs when outputting the entity.
-The entity would typically have the storage manager attribute
-<CODE>records=asis</CODE>.
-<DT>
-<CODE>-v</CODE>
-<DD>
-Print the version number.
-<DT>
-<CODE>-w<VAR>type</VAR></CODE>
-<DD>
-Control warnings and errors according to
-<CODE><VAR>type</VAR></CODE>.
-This has the same effect as in <A HREF="nsgmls.htm#optw">nsgmls</A>.
-<DT>
-<CODE>-x</CODE>
-<DD>
-Expand references to entities that are changed.
-If this option is specified two or more times,
-then all references to entities that contain tags
-will be expanded.
-</DL>
-
-<H2>BUGS</H2>
-<P>
-Omitted tags are added at the point where they are
-implied by the SGML parser (except as modified
-by the
-<CODE>-h</CODE>
-option); this is often not quite where they are wanted.
-<P>
-The case of general delimiters is not preserved.
-<P>
-Incorrect results may be produced if a variant concrete syntax is used
-which is such that there are delimiters in markup to be added that have a
-prefix that is a proper suffix of some other delimiter.
-<P>
-If an entity reference in a default value uses the default entity and
-an entity with that name is subsequently defined and that default
-value is added to the document instance, then the resulting document
-may not be equivalent to the original document.
-Spam will give a warning when the first two conditions are met.
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/spent.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>SPENT</TITLE>
-</HEAD>
-<BODY>
-<H1>SPENT</H1>
-<H2>SYNOPSIS</H2>
-<P>
-<CODE>spent</CODE>
-[
-<CODE>-Crv</CODE>
-]
-[
-<CODE>-b<VAR>bctf</VAR></CODE>
-]
-[
-<CODE>-D<VAR>directory</VAR></CODE>
-]
-<CODE><VAR>sysid...</VAR></CODE>
-
-<H2>DESCRIPTION</H2>
-<P>
-Spent (SGML print entity)
-prints the concatenation of the entities with
-<A HREF="sysid">system identifiers</A>
-<CODE><VAR>sysid...</VAR></CODE>
-on the standard output.
-<P>
-The following options are available:
-<DL>
-<DT>
-<CODE>-b<VAR>bctf</VAR></CODE>
-<DD>
-Use the <A HREF="sysid.htm#bctf">BCTF</A> with name
-<CODE><VAR>bctf</VAR></CODE>
-for output.
-<DT>
-<CODE>-C</CODE>
-<DD>
-This has the same effect as in <A HREF="nsgmls#optC">nsgmls</A>.
-<DT>
-<CODE>-D<VAR>directory</VAR></CODE>
-<DD>
-Search
-<CODE><VAR>directory</VAR></CODE>
-for files specified in system identifiers.
-This has the same effect as in <A HREF="nsgmls.htm#optD">nsgmls</A>.
-<DT>
-<CODE>-r</CODE>
-<DD>
-Raw output.
-Don't perform any conversion on RSs and REs when printing the entity.
-The entity would typically have the storage manager attribute
-<CODE>records=asis</CODE>.
-<DT>
-<CODE>-v</CODE>
-<DD>
-Print the version number.
-</DL>
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/sysdecl.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>SP - System declaration</TITLE>
-</HEAD>
-<BODY>
-<H1>SP System Declaration</H1>
-<P>
-The system declaration for SP is as follows:
-<PRE>
-			&lt;!SYSTEM "ISO 8879:1986"
-				CHARSET
-BASESET  "ISO 646-1983//CHARSET
-	  International Reference Version (IRV)//ESC 2/5 4/0"
-DESCSET  0 128 0
-CAPACITY PUBLIC  "ISO 8879:1986//CAPACITY Reference//EN"
-			       FEATURES
-MINIMIZE DATATAG NO        OMITTAG  YES     RANK     YES   SHORTTAG YES
-LINK     SIMPLE  YES 65535 IMPLICIT YES     EXPLICIT YES 1
-OTHER    CONCUR  NO        SUBDOC   YES 100 FORMAL   YES
-SCOPE    DOCUMENT
-SYNTAX   PUBLIC  "ISO 8879:1986//SYNTAX Reference//EN"
-SYNTAX   PUBLIC  "ISO 8879:1986//SYNTAX Core//EN"
-			       VALIDATE
-	 GENERAL YES       MODEL    YES     EXCLUDE  YES   CAPACITY NO
-	 NONSGML YES       SGML     YES     FORMAL   YES
-				 SDIF
-	 PACK    NO        UNPACK   NO&gt;
-</PRE>
-<P>
-The limit for the SUBDOC parameter is memory dependent.
-<P>
-Any legal concrete syntax may be used.
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/sysid.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,307 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>SP - System identifiers</TITLE>
-</HEAD>
-<BODY>
-<H1>System identifiers</H1>
-<P>
-There are two kinds of system identifier: formal system identifiers
-and simple system identifiers.  A system identifier that does not
-start with <SAMP>&lt;</SAMP> will always be interpreted as a simple
-system identifier.  A simple system identifier will always be
-interpreted either as a filename or as a URL.
-
-<H2>Formal system identifiers</H2>
-<P>
-Formal system identifiers are based on the
-System Identifier facility defined in ISO/IEC 10744 (HyTime) Technical
-Corrigendum 1, Annex D.
-A system identifier that is a formal system
-identifier consists of a sequence of one or more storage object
-specifications.  The objects specified by the storage object
-specifications are concatenated to form the entity.  A storage object
-specification consists of an SGML start-tag in the reference concrete
-syntax followed by character data content.  The generic identifier of
-the start-tag is the name of a storage manager.  The content is a
-storage object identifier which identifies the storage object in a
-manner dependent on the storage manager.  The start-tag can also
-specify attributes giving additional information about the storage
-object.  Numeric character references are recognized in storage object
-identifiers and attribute value literals in the start-tag.  Record
-ends are ignored in the storage object identifier as with SGML.  A
-system identifier will be interpreted as a formal system identifier if
-it starts with a <SAMP>&lt;</SAMP> followed by a storage manager name,
-followed by either <SAMP>></SAMP> or white-space; otherwise it will be
-interpreted as a simple system identifier.  A storage object
-identifier extends until the end of the system identifier or until the
-first occurrence of <SAMP>&lt;</SAMP> followed by a storage manager
-name, followed by either <SAMP>></SAMP> or white-space.
-<P>
-The following storage managers are available:
-<DL>
-<DT>
-<A NAME="osfile"><SAMP>osfile</SAMP></A>
-<DD>
-The storage object identifier is a filename.  If the filename is
-relative it is resolved using a base filename.  Normally the base
-filename is the name of the file in which the storage object
-identifier was specified, but this can be changed using the
-<SAMP>base</SAMP> attribute.  The filename will be searched for first
-in the directory of the base filename.  If it is not found there, then
-it will be searched for in directories specified with the
-<SAMP>-D</SAMP> option in the order in which they were specified on
-the command line, and then in the list of directories specified by the
-environment variable <SAMP>SGML_SEARCH_PATH</SAMP>.  The list
-is separated by colons under Unix and by semi-colons under MSDOS.
-<DT>
-<SAMP>osfd</SAMP>
-<DD>
-The storage object identifier is an integer specifying a file
-descriptor. Thus a system identifier of <SAMP>&lt;osfd>0</SAMP> will
-refer to the standard input.
-<DT>
-<SAMP>url</SAMP>
-<DD>
-The storage object identifier is a URL.  Only the <SAMP>http</SAMP>
-scheme is currently supported and not on all systems.
-<DT>
-<SAMP>neutral</SAMP>
-<DD>
-The storage manager is the storage manager of storage object in which
-the system identifier was specified (the <I>underlying storage
-manager</I>).  However if the underlying storage manager does not
-support named storage objects (ie it is <SAMP>osfd</SAMP>), then the
-storage manager will be <SAMP>osfile</SAMP>.  The storage object
-identifier is treated as a relative, hierarchical name separated by
-slashes (<SAMP>/</SAMP>) and will be transformed as appropriate for
-the underlying storage manager.
-<DT>
-<SAMP>literal</SAMP>
-<DD>
-The bit combinations of the storage object identifier are
-the contents of the storage object.
-</DL>
-<P>
-The following attributes are supported:
-<DL>
-<DT>
-<SAMP>records</SAMP>
-<DD>
-This describes how records are delimited in the storage object:
-<DL>
-<DT><SAMP>cr</SAMP>
-<DD>
-Records are terminated by a carriage return.
-<DT>
-<SAMP>lf</SAMP>
-<DD>
-Records are terminated by a line feed.
-<DT>
-<SAMP>crlf</SAMP>
-<DD>
-Records are terminated by a carriage return followed by a line feed.
-<DT>
-<SAMP>find</SAMP>
-<DD>
-Records are terminated by whichever of
-<SAMP>cr</SAMP>,
-<SAMP>lf</SAMP>
-or
-<SAMP>crlf</SAMP>
-is first encountered in the storage object.
-<DT>
-<SAMP>asis</SAMP>
-<DD>
-No recognition of records is performed.
-</DL>
-<P>
-The default is <SAMP>find</SAMP> except for NDATA entities for which
-the default is <SAMP>asis</SAMP>.  This attribute is not applicable to
-the <SAMP>literal</SAMP> storage manager.
-<P>
-When records are recognized in a storage object, a record start is
-inserted at the beginning of each record, and a record end at the end
-of each record.  If there is a partial record (a record that doesn't
-end with the record terminator) at the end of the entity, then a
-record start will be inserted before it but no record end will be
-inserted after it.
-<P>
-The attribute name and <SAMP>=</SAMP> can be omitted for this attribute.
-<DT>
-<SAMP>zapeof</SAMP>
-<DD>
-This specifies whether a Control-Z character that occurs as the final byte
-in the storage object should be stripped.
-The following values are allowed:
-<DL>
-<DT><SAMP>zapeof</SAMP>
-<DD>
-A final Control-Z should be stripped.
-<DT><SAMP>nozapeof</SAMP>
-<DD>
-A final Control-Z should not be stripped.
-</DL>
-<P>
-The default is <SAMP>zapeof</SAMP> except for NDATA entities, entities
-declared in storage objects with <SAMP>zapeof=nozapeof</SAMP> and
-storage objects with <SAMP>records=asis</SAMP>.  This attribute is not
-applicable to the <SAMP>literal</SAMP> storage manager.
-<P>
-The attribute name and <SAMP>=</SAMP> can be omitted for this
-attribute.
-<DT>
-<A NAME="bctf"><SAMP>bctf</SAMP></A>
-<DD>
-The bctf (bit combination transformation format) attribute describes
-how the bit combinations of the storage object are transformed into
-the sequence of bytes that are contained in the object identified by
-the storage object identifier.  This inverse of this transformation is
-performed when the entity manager reads the storage object.  It has
-one of the following values:
-<DL>
-<DT>
-<SAMP>identity</SAMP>
-<DD>
-Each bit combination is represented by a single byte.
-<DT>
-<SAMP>fixed-2</SAMP>
-<DD>
-Each bit combination is represented by exactly 2
-bytes, with the more significant byte first.
-<DT>
-<SAMP>utf-8</SAMP>
-<DD>
-Each bit combination is represented by a variable number of bytes
-according to UCS Transformation Format 8 defined in Annex P to be
-added by the first proposed drafted amendment (PDAM 1) to ISO/IEC
-10646-1:1993.
-<DT>
-<SAMP>euc-jp</SAMP>
-<DD>
-Each bit combination is treated as a pair of bytes, most significant
-byte first, encoding a character using the
-Extended_UNIX_Code_Fixed_Width_for_Japanese Internet charset, and is
-transformed into the variable length sequence of octets that would
-encode that character using the
-Extended_UNIX_Code_Packed_Format_for_Japanese Internet charset.
-<DT>
-<SAMP>sjis</SAMP>
-<DD>
-Each bit combination is treated as a pair of bytes, most significant
-byte first, encoding a character using the
-Extended_UNIX_Code_Fixed_Width_for_Japanese Internet charset, and is
-transformed into the variable length sequence of bytes that would
-encode that character using the Shift_JIS Internet charset.
-<DT>
-<SAMP>unicode</SAMP>
-<DD>
-Each bit combination is represented by 2 bytes.  The bytes
-representing the entire storage object may be preceded by a pair of
-bytes representing the byte order mark character (0xFEFF).  The bytes
-representing each bit combination are in the system byte order, unless
-the byte order mark character is present, in which case the order of
-its bytes determines the byte order.  When the storage object is read,
-any byte order mark character is discarded.
-<DT>
-<SAMP>is8859-<VAR>n</VAR></SAMP>
-<DD>
-<SAMP><VAR>n</VAR></SAMP> can be any single digit other than 0.  Each
-bit combination is interpreted as the number of a character in ISO/IEC
-10646 and is represented by the single byte that would encode that
-character in ISO 8859-<VAR>n</VAR>.  These values are not supported
-with the <SAMP>-b</SAMP> option.
-</DL>
-<P>
-Values other than <SAMP>identity</SAMP> are supported only with the
-multi-byte version of nsgmls.  This attribute is not applicable to the
-<SAMP>literal</SAMP> storage manager.
-<DT>
-<SAMP>tracking</SAMP>
-<DD>
-This specifies whether line boundaries should be tracked for this
-object: a value of <SAMP>track</SAMP> specifies that they should; a
-value of <SAMP>notrack</SAMP> specifies that they should not.  The
-default value is <SAMP>track</SAMP>.  Keeping track of where line
-boundaries occur in a storage object requires approximately one byte
-of storage per line and it may be desirable to disable this for very
-large storage objects.
-<P>
-The attribute name and
-<SAMP>=</SAMP>
-can be omitted for this attribute.
-<DT>
-<SAMP>base</SAMP>
-<DD>
-When the storage object identifier specified in the content of the
-storage object specification is relative, this specifies the base
-storage object identifier relative to which that storage object
-identifier should be resolved.
-When not specified a storage object identifier is interpreted
-relative to the storage object in which it is specified,
-provided that this has the same storage manager.
-This applies both to system identifiers specified in SGML
-documents and to system identifiers specified in the catalog entry
-files.
-<DT>
-<SAMP>smcrd</SAMP>
-<DD>
-The value is a single character that will be recognized in storage
-object identifiers (both in the content of storage object
-specifications and in the value of <SAMP>base</SAMP> attributes) as a
-storage manager character reference delimiter when followed by a
-digit.  A storage manager character reference is like an SGML numeric
-character reference except that the number is interpreted as a
-character number in the inherent character set of the storage manager
-rather than the document character set.  The default is for no
-character to be recognized as a storage manager character reference
-delimiter.  Numeric character references cannot be used to prevent
-recognition of storage manager character reference delimiters.
-<DT>
-<SAMP>fold</SAMP>
-<DD>
-This applies only to the <SAMP>neutral</SAMP> storage manager.  It
-specifies whether the storage object identifier should be folded to
-the customary case of the underlying storage manager if storage object
-identifiers for the underlying storage manager are case sensitive.
-The following values are allowed:
-<DL>
-<DT><SAMP>fold</SAMP>
-<DD>
-The storage object identifier will be folded.
-<DT>
-<SAMP>nofold</SAMP>
-<DD>
-The storage object identifier will not be folded.
-</DL>
-<P>
-The default value is <SAMP>fold</SAMP>.  The attribute name and
-<SAMP>=</SAMP> can be omitted for this attribute.
-<P>
-For example, on Unix filenames are case-sensitive and the customary
-case is lower-case.  So if the underlying storage manager were
-<SAMP>osfile</SAMP> and the system was a Unix system, then
-<SAMP>&lt;neutral>FOO.SGM</SAMP> would be equivalent to
-<SAMP>&lt;osfile>foo.sgm</SAMP>.
-</DL>
-<H2>Simple system identfiers</H2>
-<P>
-A simple system identifier is interpreted as a storage object
-identifier with a storage manager that depends on where the system
-identifier was specified: if it was specified in a storage object
-whose storage manager was <SAMP>url</SAMP> or if the system identifier
-looks like an absolute URL in a supported scheme, the storage manager
-will be <SAMP>url</SAMP>; otherwise the storage manager will be
-<SAMP>osfile</SAMP>.  The storage manager attributes are defaulted as
-for a formal system identifier.  Numeric character references are not
-recognized in simple system identifiers.
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/doc/winntu.htm	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
-<HTML>
-<HEAD>
-<TITLE>SP Unicode support under Windows NT</TITLE>
-</HEAD>
-<BODY>
-<H1>Notes on SP Unicode support under Windows NT</H1>
-<P>
-When compiled with the appropriate preprocessor definition
-(<CODE>UNICODE</CODE>), SP now uses Unicode interfaces to NT.  This
-means that the <SAMP>SP_BCTF</SAMP> environment variable applies only
-to file input and output, and so <CODE>unicode</CODE> is allowed as
-the value of <SAMP>SP_BCTF</SAMP>.
-<P>
-In order for non-ASCII characters to be correctly displayed on your
-console you must select a TrueType font, such as Lucida Console, as your
-console font.
-<P>
-If you define your own public character sets, you should use Unicode
-(or a superset of Unicode) as your universal character set.
-<P>
-The following additional BCTFs are supported:
-<DL>
-<DT>
-<SAMP>windows</SAMP>
-<DD>
-Specify this BCTF when a storage object is encoded using your
-system's default Windows character set, and your document character
-set is declared as Unicode.  This uses the so-called ANSI code page.
-<DT>
-<SAMP>wunicode</SAMP>
-<DD>
-This uses the <SAMP>unicode</SAMP> BCTF if the storage object starts
-with a byte order mark and otherwise the <SAMP>windows</SAMP> BCTF.
-If you are working with Unicode, this is probably the best value
-for <SAMP>SP_BCTF</SAMP>.
-<DT>
-<SAMP>ms-dos</SAMP>
-<DD>
-Specify this BCTF when a storage object (file) uses the OEM code page,
-and your document character set is declared as Unicode.
-The OEM code-page for a particular
-machine is the code-page used by FAT file-systems on that machine and
-is the default code-page for MS-DOS consoles.
-</DL>
-<P>
-<ADDRESS>
-James Clark<BR>
[email protected]
-</ADDRESS>
-</BODY>
-</HTML>
--- a/usr/src/cmd/man/src/util/nsgmls.src/generic/EventGenerator.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#ifndef EventGenerator_INCLUDED
-#define EventGenerator_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "SGMLApplication.h"
-
-class SP_API EventGenerator {
-public:
-  virtual ~EventGenerator();
-  // Can be called at most once for any object.
-  // Returns number of errors.
-  virtual unsigned run(SGMLApplication &) = 0;
-  // may be called at any time
-  virtual void inhibitMessages(bool);
-  // may be called at any time, even from another thread
-  virtual void halt() = 0;
-  // called after run
-  virtual EventGenerator *
-    makeSubdocEventGenerator(const SGMLApplication::Char *systemId,
-			     size_t systemIdLength);
-};
-
-#endif /* not EventGenerator_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/generic/ParserEventGeneratorKit.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ParserEventGeneratorKit_INCLUDED
-#define ParserEventGeneratorKit_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "EventGenerator.h"
-
-class ParserEventGeneratorKitImpl;
-
-class SP_API ParserEventGeneratorKit {
-public:
-  ParserEventGeneratorKit();
-  ~ParserEventGeneratorKit();
-  enum Option {
-    showOpenEntities,
-    showOpenElements,
-    outputCommentDecls,
-    outputMarkedSections,
-    outputGeneralEntities,
-    mapCatalogDocument
-  };
-  enum OptionWithArg {
-    addCatalog,
-    includeParam,
-    enableWarning,
-    addSearchDir,
-    activateLink,
-    architecture		// not implemented
-    };
-  void setOption(Option);
-#ifdef SP_WIDE_SYSTEM
-  void setProgramName(const wchar_t *);
-  void setOption(OptionWithArg, const wchar_t *);
-  EventGenerator *makeEventGenerator(int nFiles, wchar_t *const *files);
-#else
-  void setProgramName(const char *);
-  void setOption(OptionWithArg, const char *);
-  EventGenerator *makeEventGenerator(int nFiles, char *const *files);
-#endif
-private:
-  ParserEventGeneratorKit(const ParserEventGeneratorKit &); // undefined
-  void operator=(const ParserEventGeneratorKit &);   // undefined
-
-  ParserEventGeneratorKitImpl *impl_;
-};
-
-#endif /* not ParserEventGeneratorKit_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/generic/SGMLApplication.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,313 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef SGMLApplication_INCLUDED
-#define SGMLApplication_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <stddef.h>
-
-#ifndef SP_API
-#define SP_API /* as nothing */
-#endif
-
-class SP_API SGMLApplication {
-public:
-#ifdef SP_MULTI_BYTE
-#ifdef SP_WCHAR_T_USHORT
-  typedef wchar_t Char;
-#else
-  typedef unsigned short Char;
-#endif
-#else
-  typedef unsigned char Char;
-#endif
-  // A Position represents a position in an OpenEntity.
-  // The meaning of a Position depends on the
-  // particular implementation of OpenEntity.
-  // It might be a line number or it might be
-  // an offset in the entity.  The only thing
-  // that can be done with Position is to use
-  // it with an OpenEntityPtr to get a Location.
-  typedef unsigned long Position;
-  struct CharString {
-    const Char *ptr;
-    size_t len;
-  };
-  struct ExternalId {
-    bool haveSystemId;
-    bool havePublicId;
-    bool haveGeneratedSystemId;
-    CharString systemId;	// valid only if haveSystemId is true
-    CharString publicId;	// valid only if havePublicId is true
-    CharString generatedSystemId; // valid if haveGeneratedSystemId is true
-  };
-  struct Notation {
-    CharString name;
-    ExternalId externalId;
-  };
-  struct Attribute;
-  struct Entity {
-    CharString name;
-    enum DataType { sgml, cdata, sdata, ndata, subdoc, pi };
-    enum DeclType { general, parameter, doctype, linktype };
-    DataType dataType;
-    DeclType declType;
-    bool isInternal;
-    // Following valid if isInternal is true
-    CharString text;
-    // Following valid if isInternal is false
-    ExternalId externalId;
-    size_t nAttributes;
-    const Attribute *attributes;
-    Notation notation;
-  };
-  struct Attribute {
-    CharString name;
-    enum Type {
-      invalid,
-      implied,
-      cdata,
-      tokenized
-      };
-    Type type;
-    enum Defaulted {
-      specified,		// not defaulted
-      definition,		// defaulted from definition
-      current			// defaulted from current value
-      };
-    Defaulted defaulted;	// non-ESIS; valid only if type != implied
-    struct CdataChunk {
-      bool isSdata;
-      // This rather awkward representation of non-SGML characters was chosen
-      // for backwards compatibility.
-      bool isNonSgml;		// valid only if !isSdata
-      Char nonSgmlChar;		// valid only if isNonSgml
-      CharString data;		// always valid; empty if isNonSgml
-      CharString entityName;	// non-ESIS; optional for SDATA chunks
-    };
-    // Following valid if type == cdata
-    size_t nCdataChunks;
-    const CdataChunk *cdataChunks; // valid if type == cdata
-    // Following valid if type == tokenized
-    CharString tokens; // separated by spaces
-    bool isId;	       // non-ESIS (probably)
-    bool isGroup;      // non-ESIS
-    size_t nEntities;
-    const Entity *entities;
-    // length of notation.name will be 0 if no notation
-    Notation notation;
-  };
-  struct PiEvent {
-    Position pos;
-    CharString data;
-    CharString entityName;	// non-ESIS; optional for PI entities
-  };
-  struct StartElementEvent {
-    Position pos;
-    enum ContentType {
-      empty,			// declared EMPTY or with CONREF attribute
-      cdata,
-      rcdata,
-      mixed,
-      element
-      };
-    CharString gi;
-    ContentType contentType;	// non-ESIS
-    bool included;		// non-ESIS
-    size_t nAttributes;
-    const Attribute *attributes;
-  };
-      
-  struct EndElementEvent {
-    Position pos;
-    CharString gi;
-  };
-  struct DataEvent {
-    Position pos;
-    CharString data;
-  };
-  struct SdataEvent {
-    Position pos;
-    CharString text;
-    CharString entityName;	// non-ESIS; optional
-  };
-  struct ExternalDataEntityRefEvent {
-    Position pos;
-    Entity entity;
-  };
-  struct SubdocEntityRefEvent {
-    Position pos;
-    Entity entity;
-  };
-  struct NonSgmlCharEvent {
-    Position pos;
-    Char c;
-  };
-  struct ErrorEvent {
-    Position pos;
-    enum Type {
-      info,			// not an error
-      warning,			// not an error
-      quantity,
-      idref,
-      capacity,
-      otherError
-      };
-    Type type;
-    CharString message;
-  };
-  struct AppinfoEvent {
-    Position pos;
-    bool none;
-    CharString string;
-  };
-  struct StartDtdEvent {
-    Position pos;
-    CharString name;
-    bool haveExternalId;
-    ExternalId externalId;
-  };
-  struct EndDtdEvent {
-    Position pos;
-    CharString name;
-  };
-  struct EndPrologEvent {
-    Position pos;
-  };
-  // non-ESIS
-  struct GeneralEntityEvent {
-    // no position
-    Entity entity;
-  };
-  // non-ESIS
-  struct CommentDeclEvent {
-    Position pos;
-    size_t nComments;
-    const CharString *comments;
-    const CharString *seps;
-  };
-  // non-ESIS
-  struct MarkedSectionStartEvent {
-    Position pos;
-    enum Status {
-      include,
-      rcdata,
-      cdata,
-      ignore
-    };
-    Status status;
-    struct Param {
-      enum Type {
-	temp,
-	include,
-	rcdata,
-	cdata,
-	ignore,
-	entityRef
-	};
-      Type type;
-      CharString entityName;
-    };
-    size_t nParams;
-    const Param *params;
-  };
-  // non-ESIS
-  struct MarkedSectionEndEvent {
-    Position pos;
-    enum Status {
-      include,
-      rcdata,
-      cdata,
-      ignore
-    };
-    Status status;
-  };
-  struct IgnoredCharsEvent {
-    Position pos;
-    CharString data;
-  };
-  class OpenEntityPtr;
-  struct SP_API Location {
-    Location();
-    Location(const OpenEntityPtr &, Position);
-    void init();
-
-    unsigned long lineNumber;
-    unsigned long columnNumber;
-    unsigned long byteOffset;
-    unsigned long entityOffset;
-    CharString entityName;
-    CharString filename;
-    const void *other;
-  };
-  class OpenEntity;
-  class SP_API OpenEntityPtr {
-  public:
-    OpenEntityPtr();
-    OpenEntityPtr(const OpenEntityPtr &);
-    void operator=(const OpenEntityPtr &);
-    void operator=(OpenEntity *);
-    ~OpenEntityPtr();
-    const OpenEntity *operator->() const;
-    operator int() const;
-  private:
-    OpenEntity *ptr_;
-  };
-  class SP_API OpenEntity {
-  public:
-    OpenEntity();
-    virtual ~OpenEntity();
-    virtual Location location(Position) const = 0;
-  private:
-    OpenEntity(const OpenEntity &); // undefined
-    void operator=(const OpenEntity &);	// undefined
-    unsigned count_;
-    friend class OpenEntityPtr;
-  };
-  virtual ~SGMLApplication();
-  virtual void appinfo(const AppinfoEvent &);
-  virtual void startDtd(const StartDtdEvent &);
-  virtual void endDtd(const EndDtdEvent &);
-  virtual void endProlog(const EndPrologEvent &);
-  virtual void startElement(const StartElementEvent &);
-  virtual void endElement(const EndElementEvent &);
-  virtual void data(const DataEvent &);
-  virtual void sdata(const SdataEvent &);
-  virtual void pi(const PiEvent &);
-  virtual void externalDataEntityRef(const ExternalDataEntityRefEvent &);
-  virtual void subdocEntityRef(const SubdocEntityRefEvent &);
-  virtual void nonSgmlChar(const NonSgmlCharEvent &);
-  virtual void commentDecl(const CommentDeclEvent &);
-  virtual void markedSectionStart(const MarkedSectionStartEvent &);
-  virtual void markedSectionEnd(const MarkedSectionEndEvent &);
-  virtual void ignoredChars(const IgnoredCharsEvent &);
-  virtual void generalEntity(const GeneralEntityEvent &);
-  virtual void error(const ErrorEvent &);
-  virtual void openEntityChange(const OpenEntityPtr &);
-};
-
-inline
-const SGMLApplication::OpenEntity *
-SGMLApplication::OpenEntityPtr::operator->() const
-{
-  return ptr_;
-}
-
-inline
-void SGMLApplication::OpenEntityPtr::operator=(const OpenEntityPtr &ptr)
-{
-  *this = ptr.ptr_;
-}
-
-inline
-SGMLApplication::OpenEntityPtr::operator int() const
-{
-  return ptr_ != 0;
-}
-
-#endif /* not SGMLApplication_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Allocator.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Allocator_INCLUDED
-#define Allocator_INCLUDED 1
-
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API Allocator {
-public:
-  Allocator(size_t maxSize, unsigned blocksPerSegment);
-  ~Allocator();
-  void *alloc(size_t);
-  static void *allocSimple(size_t);
-  static void free(void *);
-
-  // It would be nice to make these private, but some compilers have problems.
-  union ForceAlign {
-    unsigned long n;
-    struct SP_API {
-      char c;
-    } s;
-    char *cp;
-    long *lp;
-  };
-  struct SegmentHeader;
-  union BlockHeader;
-  friend union BlockHeader;
-  union BlockHeader {
-    SegmentHeader *seg;
-    ForceAlign align;
-  };
-  struct Block;
-  friend struct Block;
-  struct SP_API Block {
-    BlockHeader header;
-    Block *next;
-  };
-  friend struct SegmentHeader;
-  struct SP_API SegmentHeader {
-    union {
-      Block **freeList;
-      ForceAlign align;
-    };
-    unsigned liveCount;
-    SegmentHeader *next;
-  };
-private:
-  Allocator(const Allocator &);	// undefined
-  Allocator &operator=(const Allocator &); // undefined
-  Block *freeList_;
-  size_t objectSize_;
-  unsigned blocksPerSegment_;
-  SegmentHeader *segments_;
-  void *alloc1();
-  void tooBig(size_t);
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Allocator_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ArcEngine.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ArcEngine_INCLUDED
-#define ArcEngine_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Event.h"
-#include "Vector.h"
-#include "SgmlParser.h"
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API ArcDirector {
-public:
-  virtual EventHandler *arcEventHandler(const Notation *,
-					const Vector<StringC> &,
-					const SubstTable<Char> *) = 0;
-};
-
-class SP_API SelectOneArcDirector : public ArcDirector, public Messenger {
-public:
-  SelectOneArcDirector(const Vector<StringC> &select, EventHandler &eh)
-    : select_(select), eh_(&eh) { }
-  EventHandler *arcEventHandler(const Notation *,
-				const Vector<StringC> &,
-				const SubstTable<Char> *);
-  void dispatchMessage(const Message &);
-  void dispatchMessage(Message &);
-private:
-  Vector<StringC> select_;
-  EventHandler *eh_;
-};
-
-class SP_API ArcEngine {
-public:
-  static void parseAll(SgmlParser &,
-		       Messenger &,
-		       ArcDirector &,
-		       const volatile sig_atomic_t *cancelPtr = 0);
-private:
-  ArcEngine();
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ArcEngine_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Attribute.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,945 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1994 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef _ATTRIBUTE_H
-#define	_ATTRIBUTE_H
-
-#ifndef Attribute_INCLUDED
-#define	Attribute_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <stddef.h>
-#include "Resource.h"
-#include "Owner.h"
-#include "StringC.h"
-#include "Vector.h"
-#include "CopyOwner.h"
-#include "Boolean.h"
-#include "Text.h"
-#include "Ptr.h"
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Entity;
-class Notation;
-class DeclaredValue;
-class AttributeValue;
-class TokenizedAttributeValue;
-class AttributeSemantics;
-class AttributeContext;
-class Syntax;
-
-class SP_API AttributeValue : public Resource {
-public:
-	enum Type {
-		implied,
-		cdata,
-		tokenized
-	};
-	AttributeValue();
-	virtual ~AttributeValue();
-	virtual AttributeSemantics *makeSemantics(const DeclaredValue *,
-					    AttributeContext &,
-					    const StringC &,
-					    unsigned &,
-					    unsigned &) const;
-	virtual Type info(const Text *&, const StringC *&) const = 0;
-	virtual const Text *text() const;
-	virtual Boolean recoverUnquoted(const StringC &, const Location &,
-		AttributeContext &, const StringC &);
-	static Boolean handleAsUnterminated(const Text &, AttributeContext &);
-};
-
-class SP_API AttributeDefinitionDesc {
-public:
-	AttributeDefinitionDesc() { }
-	enum DeclaredValue {
-		cdata,
-		name,
-		number,
-		nmtoken,
-		nutoken,
-		entity,
-		idref,
-		names,
-		numbers,
-		nmtokens,
-		nutokens,
-		entities,
-		idrefs,
-		id,
-		notation,
-		nameTokenGroup
-	};
-	DeclaredValue declaredValue;
-	enum DefaultValueType {
-		required,
-		current,
-		implied,
-		conref,
-		defaulted,
-		fixed
-	};
-	DefaultValueType defaultValueType;
-	ConstPtr < AttributeValue > defaultValue;
-	Vector < StringC > allowedValues;
-	// Attribute definitions whose default value type is current and
-	// which have the same currentIndex share current values.
-	size_t currentIndex;
-private:
-	AttributeDefinitionDesc(const AttributeDefinitionDesc &); // undefined
-	void operator=(const AttributeDefinitionDesc &);	    // undefined
-};
-
-class DeclaredValue {
-public:
-	DeclaredValue();
-	virtual ~DeclaredValue();
-	// This performs syntactic checking on the value.
-	virtual AttributeValue *makeValue(Text &, AttributeContext &,
-				    const StringC &name,
-				    unsigned &specLength) const = 0;
-	// This is used to avoid unnecessary syntactic checking in the
-	// case where the attribute name and vi have been omitted.
-	virtual AttributeValue *makeValueFromToken(Text &,
-		AttributeContext &,
-		const StringC &name,
-		unsigned &specLength) const;
-	// This performs semantic checking on the value.
-	virtual AttributeSemantics *makeSemantics(
-		const TokenizedAttributeValue &,
-		AttributeContext &,
-		const StringC &,
-		unsigned &nIdrefs,
-		unsigned &nEntityNames) const;
-	virtual Boolean containsToken(const StringC &) const;
-	virtual Boolean tokenized() const = 0;
-	virtual Boolean isNotation() const;
-	virtual Boolean isEntity() const;
-	virtual Boolean isId() const;
-	virtual Boolean isIdref() const;
-	virtual const Vector < StringC > *getTokens() const;
-	virtual void buildDesc(AttributeDefinitionDesc &) const = 0;
-	virtual DeclaredValue *copy() const = 0;
-};
-
-class CdataDeclaredValue : public DeclaredValue {
-public:
-	CdataDeclaredValue();
-	Boolean tokenized() const;
-	AttributeValue *makeValue(Text &, AttributeContext &, const StringC &,
-			    unsigned &) const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	DeclaredValue *copy() const;
-};
-
-class TokenizedDeclaredValue : public DeclaredValue {
-public:
-	// must be in same order as AttributeDefinitionDesc
-		enum TokenType {
-		name,
-		number,
-		nameToken,
-		numberToken,
-		entityName
-	};
-	TokenizedDeclaredValue(TokenType type, Boolean isList);
-	AttributeValue *makeValue(Text &, AttributeContext &, const StringC &,
-			    unsigned &) const;
-	TokenizedAttributeValue *makeTokenizedValue(Text &, AttributeContext &,
-		const StringC &, unsigned &) const;
-	Boolean tokenized() const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	DeclaredValue *copy() const;
-private:
-	TokenType type_;
-	Boolean isList_;
-	unsigned initialCategories_;
-	unsigned subsequentCategories_;
-};
-
-class GroupDeclaredValue : public TokenizedDeclaredValue {
-public:
-	GroupDeclaredValue(TokenType, Vector < StringC > &);
-	Boolean containsToken(const StringC &) const;
-	AttributeValue *makeValue(Text &, AttributeContext &, const StringC &,
-		unsigned &) const;
-	AttributeValue *makeValueFromToken(Text &,
-		AttributeContext &,
-		const StringC &name,
-		unsigned &) const;
-	const Vector < StringC > *getTokens() const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	DeclaredValue *copy() const;
-private:
-	Vector < StringC > allowedValues_;
-};
-
-class NameTokenGroupDeclaredValue : public GroupDeclaredValue {
-public:
-	NameTokenGroupDeclaredValue(Vector < StringC > &);
-	void buildDesc(AttributeDefinitionDesc &) const;
-	DeclaredValue *copy() const;
-};
-
-class NotationDeclaredValue : public GroupDeclaredValue {
-public:
-	NotationDeclaredValue(Vector < StringC > &);
-	AttributeSemantics *makeSemantics(const TokenizedAttributeValue &,
-				    AttributeContext &,
-				    const StringC &,
-				    unsigned &nIdrefs,
-				    unsigned &nEntityNames) const;
-	Boolean isNotation() const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	DeclaredValue *copy() const;
-};
-
-class EntityDeclaredValue : public TokenizedDeclaredValue {
-public:
-	EntityDeclaredValue(Boolean isList);
-	AttributeSemantics *makeSemantics(const TokenizedAttributeValue &,
-				    AttributeContext &,
-				    const StringC &,
-				    unsigned &nIdrefs,
-				    unsigned &nEntityNames) const;
-	Boolean isEntity() const;
-	DeclaredValue *copy() const;
-};
-
-class IdDeclaredValue : public TokenizedDeclaredValue {
-public:
-	IdDeclaredValue();
-	AttributeSemantics *makeSemantics(const TokenizedAttributeValue &,
-				    AttributeContext &,
-				    const StringC &,
-				    unsigned &nIdrefs,
-				    unsigned &nEntityNames) const;
-	Boolean isId() const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	DeclaredValue *copy() const;
-};
-
-class IdrefDeclaredValue : public TokenizedDeclaredValue {
-public:
-	IdrefDeclaredValue(Boolean isList);
-	AttributeSemantics *makeSemantics(const TokenizedAttributeValue &,
-				    AttributeContext &,
-				    const StringC &,
-				    unsigned &nIdrefs,
-				    unsigned &nEntityNames) const;
-	Boolean isIdref() const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	DeclaredValue *copy() const;
-};
-
-class SP_API AttributeDefinition {
-public:
-	AttributeDefinition(const StringC &, DeclaredValue *);
-	virtual ~AttributeDefinition();
-	virtual ConstPtr < AttributeValue >
-		makeMissingValue(AttributeContext &) const = 0;
-	virtual Boolean missingValueWouldMatch(const Text &,
-		const AttributeContext &) const;
-	virtual const AttributeValue *
-		defaultValue(const AttributeValue *impliedValue) const;
-	AttributeValue *makeValue(Text &, AttributeContext &, unsigned &) const;
-	AttributeValue *makeValueFromToken(Text &,
-		AttributeContext &,
-		unsigned &) const;
-
-	virtual Boolean isConref() const;
-	virtual Boolean isCurrent() const;
-	virtual Boolean isFixed() const;
-	AttributeSemantics *makeSemantics(const AttributeValue *,
-		AttributeContext &,
-		unsigned &nIdrefs,
-		unsigned &nEntityNames) const;
-	Boolean tokenized() const;
-	const StringC &name() const;
-	Boolean containsToken(const StringC &) const;
-	Boolean isNotation() const;
-	Boolean isEntity() const;
-	Boolean isId() const;
-	Boolean isIdref() const;
-	void getDesc(AttributeDefinitionDesc &) const;
-	const Vector < StringC > *getTokens() const;
-	virtual AttributeDefinition *copy() const = 0;
-	void setDeclaredValue(DeclaredValue *);
-private:
-	virtual void buildDesc(AttributeDefinitionDesc &) const = 0;
-	virtual AttributeValue *checkValue(AttributeValue *,
-		AttributeContext &) const;
-	StringC name_;
-	CopyOwner < DeclaredValue > declaredValue_;
-};
-
-class RequiredAttributeDefinition : public AttributeDefinition {
-public:
-	RequiredAttributeDefinition(const StringC &, DeclaredValue *);
-	ConstPtr < AttributeValue > makeMissingValue(AttributeContext &) const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	AttributeDefinition *copy() const;
-};
-
-class CurrentAttributeDefinition : public AttributeDefinition {
-public:
-	CurrentAttributeDefinition(const StringC &, DeclaredValue *,
-		size_t index);
-	ConstPtr < AttributeValue > makeMissingValue(AttributeContext &) const;
-	Boolean missingValueWouldMatch(const Text &,
-		const AttributeContext &) const;
-	AttributeValue *checkValue(AttributeValue *, AttributeContext &) const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	Boolean isCurrent() const;
-	AttributeDefinition *copy() const;
-private:
-	size_t currentIndex_;
-};
-
-class ImpliedAttributeDefinition : public AttributeDefinition {
-public:
-	ImpliedAttributeDefinition(const StringC &, DeclaredValue *);
-	ConstPtr < AttributeValue > makeMissingValue(AttributeContext &) const;
-	const AttributeValue *defaultValue(const AttributeValue *) const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	AttributeDefinition *copy() const;
-};
-
-class ConrefAttributeDefinition : public ImpliedAttributeDefinition {
-public:
-	ConrefAttributeDefinition(const StringC &, DeclaredValue *);
-	Boolean isConref() const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	AttributeDefinition *copy() const;
-};
-
-class DefaultAttributeDefinition : public AttributeDefinition {
-public:
-	DefaultAttributeDefinition(const StringC &, DeclaredValue *,
-		AttributeValue *);
-	ConstPtr < AttributeValue > makeMissingValue(AttributeContext &) const;
-	Boolean missingValueWouldMatch(const Text &,
-		const AttributeContext &) const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	AttributeDefinition *copy() const;
-	const AttributeValue *defaultValue(const AttributeValue *) const;
-private:
-	ConstPtr < AttributeValue > value_;
-};
-
-class FixedAttributeDefinition : public DefaultAttributeDefinition {
-public:
-	FixedAttributeDefinition(const StringC &, DeclaredValue *,
-		AttributeValue *);
-	// check that it's equal to the default
-	AttributeValue *checkValue(AttributeValue *, AttributeContext &) const;
-	void buildDesc(AttributeDefinitionDesc &) const;
-	Boolean isFixed() const;
-	AttributeDefinition *copy() const;
-};
-
-class SP_API AttributeDefinitionList : public Resource {
-public:
-	AttributeDefinitionList(Vector < CopyOwner < AttributeDefinition > > &,
-		size_t listIndex,
-		Boolean anyCurrent = 0,
-		size_t idIndex = size_t(-1),
-		size_t notationIndex = size_t(-1));
-	AttributeDefinitionList(const ConstPtr < AttributeDefinitionList > &);
-	size_t size() const;
-	AttributeDefinition *def(size_t);
-	const AttributeDefinition *def(size_t)const;
-	Boolean tokenIndex(const StringC &, unsigned &) const;
-	Boolean tokenIndexUnique(const StringC &, unsigned) const;
-	Boolean attributeIndex(const StringC &, unsigned &) const;
-	size_t index() const;
-	size_t idIndex() const;
-	size_t notationIndex() const;
-	Boolean anyCurrent() const;
-	void setIndex(size_t);
-	void append(AttributeDefinition *);
-private:
-	Vector < CopyOwner < AttributeDefinition > > defs_;
-	size_t index_;
-	size_t idIndex_;		// -1 if no ID attribute
-	size_t notationIndex_;	// -1 if no notation attribute
-	Boolean anyCurrent_;
-	ConstPtr < AttributeDefinitionList > prev_;
-};
-
-class AttributeSemantics {
-public:
-	AttributeSemantics();
-	virtual ~AttributeSemantics();
-	virtual size_t nEntities() const;
-	virtual ConstPtr < Entity > entity(size_t)const;
-	virtual ConstPtr < Notation > notation() const;
-	virtual AttributeSemantics *copy() const = 0;
-};
-
-class EntityAttributeSemantics  : public AttributeSemantics {
-public:
-	EntityAttributeSemantics(Vector < ConstPtr < Entity > > &);
-	size_t nEntities() const;
-	ConstPtr < Entity > entity(size_t)const;
-	AttributeSemantics *copy() const;
-private:
-	Vector < ConstPtr < Entity > > entity_;
-};
-
-class NotationAttributeSemantics : public AttributeSemantics {
-public:
-	NotationAttributeSemantics(const ConstPtr < Notation > &);
-	ConstPtr < Notation > notation() const;
-	AttributeSemantics *copy() const;
-private:
-	ConstPtr < Notation > notation_;
-};
-
-class SP_API ImpliedAttributeValue : public AttributeValue {
-public:
-	ImpliedAttributeValue();
-	Type info(const Text *&, const StringC *&) const;
-};
-
-class CdataAttributeValue : public AttributeValue {
-public:
-	CdataAttributeValue(Text &);
-	Type info(const Text *&, const StringC *&) const;
-	const Text *text() const;
-	Boolean recoverUnquoted(const StringC &, const Location &,
-		AttributeContext &, const StringC &);
-private:
-	Text text_;
-};
-
-class TokenizedAttributeValue : public AttributeValue {
-public:
-	TokenizedAttributeValue(Text &, const Vector < size_t > &);
-	size_t nTokens() const;
-	AttributeSemantics *makeSemantics(const DeclaredValue *,
-		AttributeContext &,
-		const StringC &,
-		unsigned &,
-		unsigned &) const;
-	Type info(const Text *&, const StringC *&) const;
-	const Text *text() const;
-	const StringC &string() const;
-	StringC token(size_t)const;
-	void token(size_t, const Char *&, size_t &) const;
-	Location tokenLocation(size_t)const;
-	Boolean tokenLocation(size_t,
-		const ConstPtr < Origin > *&, Index &) const;
-	Boolean recoverUnquoted(const StringC &, const Location &,
-		AttributeContext &, const StringC &);
-private:
-	TokenizedAttributeValue(const TokenizedAttributeValue &); // undefined
-	void operator=(const TokenizedAttributeValue &);	    // undefined
-	Text text_;
-	// index into value of each space
-	// length is number of tokens - 1
-	Vector < size_t > spaceIndex_;
-};
-
-class SP_API Attribute {
-public:
-	Attribute();
-	Boolean specified() const;
-	size_t specIndex() const;
-	const AttributeValue *value() const;
-	const ConstPtr < AttributeValue > &valuePointer() const;
-	const AttributeSemantics *semantics() const;
-	void setSpec(size_t);
-	void setValue(const ConstPtr < AttributeValue > &);
-	void setSemantics(AttributeSemantics *);
-	void clear();
-private:
-	size_t specIndexPlus_;
-	ConstPtr < AttributeValue > value_;
-	CopyOwner < AttributeSemantics > semantics_;
-};
-
-class SP_API AttributeList  {
-public:
-	AttributeList();
-	AttributeList(const ConstPtr < AttributeDefinitionList > &);
-	void init(const ConstPtr < AttributeDefinitionList > &);
-	// was a conref attribute specified?
-	Boolean conref()const;
-	size_t size()const;
-	const StringC &name(unsigned)const;
-	const AttributeValue *value(unsigned)const;
-	size_t specIndex(size_t)const;
-	const ConstPtr < AttributeValue > &valuePointer(unsigned)const;
-	const AttributeSemantics *semantics(unsigned)const;
-	Boolean tokenized(unsigned index) const;
-	Boolean tokenIndex(const StringC &, unsigned &) const;
-	Boolean tokenIndexUnique(const StringC &, unsigned) const;
-	Boolean attributeIndex(const StringC &, unsigned &) const;
-	void finish(AttributeContext &);
-	Boolean setValue(unsigned index, Text &, AttributeContext &,
-		unsigned &specLength);
-	void setValueToken(unsigned index, Text &, AttributeContext &,
-		unsigned &specLength);
-	void setSpec(unsigned index, AttributeContext &);
-	Boolean recoverUnquoted(const StringC &, const Location &,
-		AttributeContext &);
-	Boolean handleAsUnterminated(AttributeContext &context);
-	void swap(AttributeList &);
-	size_t nSpec() const;
-	size_t defIndex() const;
-	// is the attribute #current
-	Boolean current(unsigned)const;
-	Boolean anyCurrent()const;
-	Boolean specified(unsigned)const;
-	Boolean id(unsigned)const;
-	Boolean idref(unsigned)const;
-	const Vector < StringC > *getAllowedTokens(unsigned)const;
-	const StringC *getId() const;	// null if none
-	Boolean idIndex(unsigned &) const;
-	void noteInvalidSpec();
-	void changeDef(const ConstPtr < AttributeDefinitionList > &);
-	const ConstPtr < AttributeDefinitionList > &def() const;
-private:
-	const AttributeDefinition *def(size_t)const;
-	PackedBoolean conref_;
-	unsigned nIdrefs_;
-	unsigned nEntityNames_;
-	size_t nSpec_;
-	Vector < Attribute > vec_;
-	ConstPtr < AttributeDefinitionList > def_;
-};
-
-class SP_API AttributeContext : public Messenger {
-public:
-	AttributeContext();
-	virtual ~AttributeContext();
-	virtual Boolean defineId(const StringC &, const Location &, Location &);
-	virtual void noteIdref(const StringC &, const Location &);
-	virtual void noteCurrentAttribute(size_t, AttributeValue *);
-	virtual ConstPtr < AttributeValue > getCurrentAttribute(size_t)const;
-	virtual ConstPtr < Entity > getAttributeEntity(const StringC &,
-		const Location &);
-	virtual ConstPtr < Notation > getAttributeNotation(const StringC &,
-		const Location &);
-	virtual const Syntax &attributeSyntax() const = 0;
-
-	ConstPtr < AttributeValue > makeImpliedAttributeValue();
-	Boolean mayDefaultAttribute() const;
-	Boolean validate() const;
-protected:
-	Boolean mayDefaultAttribute_;
-	Boolean validate_;
-private:
-	ConstPtr < AttributeValue > impliedAttributeValue_;
-};
-
-inline
-Boolean AttributeDefinition::tokenized() const
-{
-	return (declaredValue_->tokenized());
-}
-
-inline
-Boolean AttributeDefinition::isNotation() const
-{
-	return (declaredValue_->isNotation());
-}
-
-inline
-Boolean AttributeDefinition::isEntity() const
-{
-	return (declaredValue_->isEntity());
-}
-
-inline
-Boolean AttributeDefinition::isId() const
-{
-	return (declaredValue_->isId());
-}
-
-inline
-Boolean AttributeDefinition::isIdref() const
-{
-	return (declaredValue_->isIdref());
-}
-
-inline
-const Vector < StringC > *AttributeDefinition::getTokens() const
-{
-	return (declaredValue_->getTokens());
-}
-
-inline
-AttributeSemantics *
-AttributeDefinition::makeSemantics(const AttributeValue *value,
-	AttributeContext &context, unsigned &nIdrefs,
-	unsigned &nEntityNames) const
-{
-	return (value->makeSemantics(declaredValue_.pointer(),
-		context, name_, nIdrefs, nEntityNames));
-}
-
-inline
-AttributeValue *AttributeDefinition::makeValue(Text &text,
-	AttributeContext &context, unsigned &specLength) const
-{
-	return (checkValue(declaredValue_->makeValue(text,
-		context, name_, specLength), context));
-}
-
-inline
-AttributeValue *
-AttributeDefinition::makeValueFromToken(Text &text,
-					AttributeContext &context,
-					unsigned &specLength) const
-{
-	return (checkValue(declaredValue_->makeValueFromToken(text,
-		context, name_, specLength), context));
-}
-
-inline
-Boolean AttributeDefinition::containsToken(const StringC &token) const
-{
-	return (declaredValue_->containsToken(token));
-}
-
-inline
-const StringC &AttributeDefinition::name() const
-{
-	return (name_);
-}
-
-inline
-void AttributeDefinition::setDeclaredValue(DeclaredValue *declaredValue)
-{
-	declaredValue_ = declaredValue;
-}
-
-inline
-size_t AttributeDefinitionList::size() const
-{
-	return (defs_.size());
-}
-
-inline
-size_t AttributeDefinitionList::index() const
-{
-	return (index_);
-}
-
-inline
-void AttributeDefinitionList::setIndex(size_t index)
-{
-	index_ = index;
-}
-
-inline
-size_t AttributeDefinitionList::idIndex() const
-{
-	return (idIndex_);
-}
-
-inline
-size_t AttributeDefinitionList::notationIndex() const
-{
-	return (notationIndex_);
-}
-
-inline
-Boolean AttributeDefinitionList::anyCurrent() const
-{
-	return (anyCurrent_);
-}
-
-inline
-AttributeDefinition *AttributeDefinitionList::def(size_t i)
-{
-	return (defs_[i].pointer());
-}
-
-inline
-const AttributeDefinition *AttributeDefinitionList::def(size_t i) const
-{
-	return (defs_[i].pointer());
-}
-
-inline
-size_t TokenizedAttributeValue::nTokens() const
-{
-	return (spaceIndex_.size() + 1);
-}
-
-inline
-const StringC &TokenizedAttributeValue::string() const
-{
-	return (text_.string());
-}
-
-inline
-void TokenizedAttributeValue::token(size_t i,
-				    const Char *&ptr, size_t &len) const
-{
-	size_t startIndex = i == 0 ? 0 :
-		spaceIndex_[i - 1] + 1;
-	ptr = text_.string().data() + startIndex;
-	len = (i == spaceIndex_.size() ? text_.size() :
-		spaceIndex_[i]) - startIndex;
-}
-
-inline
-StringC TokenizedAttributeValue::token(size_t i) const
-{
-	const Char *ptr;
-	size_t len;
-	token(i, ptr, len);
-	return (StringC(ptr, len));
-}
-
-
-inline
-Location TokenizedAttributeValue::tokenLocation(size_t i) const
-{
-	return (text_.charLocation(i == 0 ? 0 :
-		spaceIndex_[i - 1] + 1));
-}
-
-inline
-Boolean TokenizedAttributeValue::tokenLocation(size_t i,
-	const ConstPtr < Origin > *&origin, Index &index) const
-{
-	return (text_.charLocation(i == 0 ? 0 :
-		spaceIndex_[i - 1] + 1, origin, index));
-}
-
-inline
-size_t Attribute::specIndex() const
-{
-	return (specIndexPlus_ - 1);
-}
-
-inline
-Boolean Attribute::specified() const
-{
-	return (specIndexPlus_ != 0);
-}
-
-inline
-const AttributeValue *Attribute::value() const
-{
-	return (value_.pointer());
-}
-
-inline
-const ConstPtr < AttributeValue > &Attribute::valuePointer() const
-{
-	return (value_);
-}
-
-inline
-const AttributeSemantics *Attribute::semantics() const
-{
-	return (semantics_.pointer());
-}
-
-inline
-void Attribute::setSpec(size_t index)
-{
-	specIndexPlus_ = index + 1;
-}
-
-inline
-void Attribute::setValue(const ConstPtr < AttributeValue > &value)
-{
-	value_ = value;
-}
-
-inline
-void Attribute::setSemantics(AttributeSemantics *semantics)
-{
-	semantics_ = semantics;
-}
-
-inline
-size_t AttributeList::size() const
-{
-	return (vec_.size());
-}
-
-inline
-const AttributeDefinition *AttributeList::def(size_t i) const
-{
-	return (def_->def(i));
-}
-
-inline
-const ConstPtr < AttributeDefinitionList > &AttributeList::def() const
-{
-	return (def_);
-}
-
-inline
-Boolean AttributeList::tokenized(unsigned i) const
-{
-	return (def(i)->tokenized());
-}
-
-inline
-Boolean AttributeList::tokenIndex(const StringC &name, unsigned &index) const
-{
-	return (!def_.isNull() && def_->tokenIndex(name, index));
-}
-
-inline
-Boolean AttributeList::tokenIndexUnique(const StringC &name,
-	unsigned index) const
-{
-	return (def_->tokenIndexUnique(name, index));
-}
-
-inline
-Boolean AttributeList::attributeIndex(const StringC &name,
-	unsigned &index) const
-{
-	return (!def_.isNull() && def_->attributeIndex(name, index));
-}
-
-inline
-const StringC &AttributeList::name(unsigned i) const
-{
-	return (def(i)->name());
-}
-
-inline
-const Vector < StringC > *AttributeList::getAllowedTokens(unsigned i)
-	const
-{
-	return (def(i)->getTokens());
-}
-
-inline
-const AttributeValue *AttributeList::value(unsigned i) const
-{
-	return (vec_[i].value());
-}
-
-inline
-const ConstPtr < AttributeValue > &AttributeList::valuePointer(unsigned i)
-	const
-{
-	return (vec_[i].valuePointer());
-}
-
-inline
-const AttributeSemantics *AttributeList::semantics(unsigned i) const
-{
-	return (vec_[i].semantics());
-}
-
-inline
-size_t AttributeList::specIndex(size_t i) const
-{
-	return (vec_[i].specIndex());
-}
-
-inline
-size_t AttributeList::nSpec() const
-{
-	return (nSpec_);
-}
-
-inline
-Boolean AttributeList::conref() const
-{
-	return (conref_);
-}
-
-inline
-size_t AttributeList::defIndex() const
-{
-	return (def_.isNull() ? size_t(-1) : def_->index());
-}
-
-inline
-Boolean AttributeList::current(unsigned i) const
-{
-	return (def(i)->isCurrent());
-}
-
-inline
-Boolean AttributeList::anyCurrent() const
-{
-	return (!def_.isNull() && def_->anyCurrent());
-}
-
-inline
-const AttributeValue *
-DefaultAttributeDefinition::defaultValue(const AttributeValue *)
-	const
-{
-	return (value_.pointer());
-}
-
-inline
-Boolean AttributeList::idIndex(unsigned &ind) const
-{
-	if (def_.isNull() || def_->idIndex() == size_t(-1))
-		return (0);
-	else {
-		ind = def_->idIndex();
-		return (1);
-	}
-}
-
-inline
-Boolean AttributeList::id(unsigned i) const
-{
-	return (def(i)->isId());
-}
-
-inline
-Boolean AttributeList::idref(unsigned i) const
-{
-	return (def(i)->isIdref());
-}
-
-inline
-Boolean AttributeList::specified(unsigned i) const
-{
-	return (vec_[i].specified());
-}
-
-inline
-Boolean AttributeContext::mayDefaultAttribute() const
-{
-	return (mayDefaultAttribute_);
-}
-
-inline
-Boolean AttributeContext::validate() const
-{
-	return (validate_);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Attribute_INCLUDED */
-
-#endif /* _ATTRIBUTE_H */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Attributed.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Attributed_INCLUDED
-#define Attributed_INCLUDED 1
-
-#include "Ptr.h"
-#include "Attribute.h"
-
-// This is used for things that have attribute definitions
-// that notations and elements.
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API Attributed {
-public:
-  Attributed() { }
-  ConstPtr<AttributeDefinitionList> attributeDef() const;
-  const AttributeDefinitionList *attributeDefTemp() const;
-  Ptr<AttributeDefinitionList> attributeDef();
-  void setAttributeDef(const Ptr<AttributeDefinitionList> &);
-private:
-  Ptr<AttributeDefinitionList> attributeDef_;
-
-};
-
-inline
-ConstPtr<AttributeDefinitionList> Attributed::attributeDef() const
-{
-  return attributeDef_;
-}
-
-inline
-const AttributeDefinitionList *Attributed::attributeDefTemp() const
-{
-  return attributeDef_.pointer();
-}
-
-inline
-Ptr<AttributeDefinitionList> Attributed::attributeDef()
-{
-  return attributeDef_;
-}
-
-inline
-void Attributed::setAttributeDef(const Ptr<AttributeDefinitionList> &def)
-{
-  attributeDef_ = def;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Attributed_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Big5CodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Big5CodingSystem_INCLUDED
-#define Big5CodingSystem_INCLUDED 1
-
-#include "CodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API Big5CodingSystem : public CodingSystem {
-public:
-  Decoder *makeDecoder() const;
-  Encoder *makeEncoder() const;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Big5CodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Boolean.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Boolean_INCLUDED
-#define Boolean_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-#ifdef SP_HAVE_BOOL
-
-typedef bool Boolean;
-#ifdef SP_SIZEOF_BOOL_1
-typedef bool PackedBoolean;
-#else
-typedef char PackedBoolean;
-#endif
-
-#else /* not SP_HAVE_BOOL */
-
-typedef int Boolean;
-typedef char PackedBoolean;
-
-#endif /* not SP_HAVE_BOOL */
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#ifndef SP_HAVE_BOOL
-
-typedef int bool;
-
-const int true = 1;
-const int false = 0;
-
-#endif /* not SP_HAVE_BOOL */
-
-#endif /* not Boolean_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/CharMap.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,258 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef CharMap_DEF_INCLUDED
-#define CharMap_DEF_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-#ifdef SP_MULTI_BYTE
-
-template<class T>
-CharMap<T>::CharMap()
-{
-}
-
-template<class T>
-CharMap<T>::CharMap(T dflt)
-{
-  for (size_t i = 0; i < (1 << level1bits); i++)
-    pages_[i].value = dflt;
-}
-
-template<class T>
-void CharMap<T>::setAll(T val)
-{
-  for (size_t i = 0; i < (1 << level1bits); i++) {
-    pages_[i].value = val;
-    delete [] pages_[i].values;
-    pages_[i].values = 0;
-  }
-}
-
-template<class T>
-void CharMap<T>::swap(CharMap<T> &map)
-{
-  for (size_t i = 0; i < (1 << level1bits); i++)
-    pages_[i].swap(map.pages_[i]);
-}
-
-template<class T>
-void CharMap<T>::setChar(Char c, T val)
-{
-  CharMapPage<T> &pg = pages_[c >> (level2bits + level3bits)];
-  if (pg.values) {
-    CharMapColumn<T> &column = pg.values[(c >> level3bits) & ((1 << level2bits) - 1)];
-    if (column.values)
-      column.values[c & ((1 << level3bits) - 1)] = val;
-    else if (val != column.value) {
-      column.values = new T[1 << level3bits];
-      for (size_t i = 0; i < (1 << level3bits); i++)
-	column.values[i] = column.value;
-      column.values[c & ((1 << level3bits) - 1)] = val;
-    }
-  }
-  else if (val != pg.value) {
-    pg.values = new CharMapColumn<T>[1 << level2bits];
-    for (size_t i = 0; i < (1 << level2bits); i++)
-      pg.values[i].value = pg.value;
-    CharMapColumn<T> &column = pg.values[(c >> level3bits) & ((1 << level2bits) - 1)];
-    column.values = new T[1 << level3bits];
-    for (size_t i = 0; i < (1 << level3bits); i++)
-      column.values[i] = column.value;
-    column.values[c & ((1 << level3bits) - 1)] = val;
-  }
-}
-
-template<class T>
-void CharMap<T>::setRange(Char from, Char to, T val)
-{
-  do {
-    if ((from & ((1 << level3bits) - 1)) == 0
-        && to - from >= (1 << level3bits) - 1) {
-      if ((from & ((1 << (level2bits + level3bits)) - 1)) == 0
-	  && to - from >= (1 << (level2bits + level3bits)) - 1) {
-	// Set a complete page.
-	CharMapPage<T> &pg = pages_[from >> (level2bits + level3bits)];
-	pg.value = val;
-	delete pg.values;
-	pg.values = 0;
-	from += (1 << (level2bits + level3bits)) - 1;
-      }
-      else {
-	// Set a complete column.
-	CharMapPage<T> &pg = pages_[from >> (level2bits + level3bits)];
-	if (pg.values) {
-	  CharMapColumn<T> &column = pg.values[(from >> level3bits) & ((1 << level2bits) - 1)];
-	  column.value = val;
-	  delete column.values;
-	  column.values = 0;
-	}
-	else if (val != pg.value) {
-	  // split the page
-	  pg.values = new CharMapColumn<T>[1 << level2bits];
-          for (size_t i = 0; i < (1 << level2bits); i++)
-	    pg.values[i].value = pg.value;
-	  CharMapColumn<T> &column = pg.values[(from >> level3bits) & ((1 << level2bits) - 1)];
-	  column.value = val;
-	}
-	from += (1 << level2bits) - 1;
-      }
-    }
-    else
-      setChar(from, val);
-  } while (from++ != to);
-}
-
-template<class T>
-CharMapPage<T>::CharMapPage()
-: values(0)
-{
-}
-
-template<class T>
-CharMapPage<T>::CharMapPage(const CharMapPage<T> &pg)
-{
-  if (pg.values) {
-    values = new CharMapColumn<T>[1 << level2bits];
-    for (size_t i = 0; i < (1 << level2bits); i++)
-      values[i] = pg.values[i];
-  }
-  else {
-    value = pg.value;
-    values = 0;
-  }
-}
-
-template<class T>
-void CharMapPage<T>::operator=(const CharMapPage<T> &pg)
-{
-  if (pg.values) {
-    if (!values)
-      values = new CharMapColumn<T>[1 << level2bits];
-    for (size_t i = 0; i < (1 << level2bits); i++)
-      values[i] = pg.values[i];
-  }
-  else {
-    if (values) {
-      delete [] values;
-      values = 0;
-    }
-    value = pg.value;
-  }
-}
-
-template<class T>
-CharMapPage<T>::~CharMapPage()
-{
-  delete [] values;
-}
-
-template<class T>
-void CharMapPage<T>::swap(CharMapPage<T> &pg)
-{
-  {
-    CharMapColumn<T> *tem = values;
-    values = pg.values;
-    pg.values = tem;
-  }
-  {
-    T tem(value);
-    value = pg.value;
-    pg.value = tem;
-  }
-}
-
-template<class T>
-CharMapColumn<T>::CharMapColumn()
-: values(0)
-{
-}
-
-template<class T>
-CharMapColumn<T>::CharMapColumn(const CharMapColumn<T> &col)
-{
-  if (col.values) {
-    values = new T[1 << level3bits];
-    for (size_t i = 0; i < (1 << level3bits); i++)
-      values[i] = col.values[i];
-  }
-  else {
-    values = 0;
-    value = col.value;
-  }
-}
-
-template<class T>
-void CharMapColumn<T>::operator=(const CharMapColumn<T> &col)
-{
-  if (col.values) {
-    if (!values)
-      values = new T[1 << level3bits];
-    for (size_t i = 0; i < (1 << level3bits); i++)
-      values[i] = col.values[i];
-  }
-  else {
-    if (values) {
-      delete [] values;
-      values = 0;
-    }
-    value = col.value;
-  }
-}
-
-template<class T>
-CharMapColumn<T>::~CharMapColumn()
-{
-  delete [] values;
-}
-
-#else /* not SP_MULTI_BYTE */
-
-template<class T>
-CharMap<T>::CharMap()
-{
-}
-
-template<class T>
-CharMap<T>::CharMap(T dflt)
-{
-  for (int i = 0; i < 256; i++)
-    values_[i] = dflt;
-}
-
-template<class T>
-void CharMap<T>::setAll(T val)
-{
-  for (size_t i = 0; i < 256; i++)
-    values_[i] = val;
-}
-
-template<class T>
-void CharMap<T>::setRange(Char from, Char to, T val)
-{
-  do {
-    values_[from] = val;
-  } while (from++ != to);
-}
-
-template<class T>
-void CharMap<T>::swap(CharMap<T> &map)
-{
-  for (size_t i = 0; i < 256; i++) {
-    T tem(values_[i]);
-    values_[i] = map.values_[i];
-    map.values_[i] = tem;
-  }
-}
-
-#endif /* not SP_MULTI_BYTE */
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not CharMap_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/CharMap.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef CharMap_INCLUDED
-#define CharMap_INCLUDED 1
-
-#include "types.h"
-#include "Resource.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-#ifdef SP_MULTI_BYTE
-template<class T>
-class CharMapColumn {
-public:
-  enum { level3bits = 4 };
-  CharMapColumn();
-  CharMapColumn(const CharMapColumn<T> &);
-  void operator=(const CharMapColumn<T> &);
-  ~CharMapColumn();
-  T *values;
-  T value;
-};
-
-template<class T>
-class CharMapPage {
-public:
-  enum { level2bits = 4 };
-  CharMapPage();
-  CharMapPage(const CharMapPage<T> &);
-  void operator=(const CharMapPage<T> &);
-  ~CharMapPage();
-  void swap(CharMapPage<T> &);
-  CharMapColumn<T> *values;
-  T value;
-};
-#endif /* SP_MULTI_BYTE */
-
-template<class T>
-class CharMap {
-public:
-  CharMap();
-  CharMap(T);
-  T operator[](Char) const;
-  T getRange(Char from, Char &to) const;
-  void swap(CharMap<T> &);
-  void setChar(Char, T);
-  void setRange(Char from, Char to, T val);
-  void setAll(T);
-private:
-#ifdef SP_MULTI_BYTE
-  enum { level1bits = 8, level2bits = 4, level3bits = 4 };
-  CharMapPage<T> pages_[1 << level1bits];
-#else
-  T values_[256];
-#endif
-};
-
-template<class T>
-class CharMapResource : public CharMap<T>, public Resource {
-public:
-  CharMapResource() { }
-  CharMapResource(T t) : CharMap<T>(t) { }
-};
-
-#ifdef SP_MULTI_BYTE
-
-template<class T>
-inline
-T CharMap<T>::operator[](Char c) const
-{
-  const CharMapPage<T> &pg = pages_[c >> (level2bits + level3bits)];
-  if (pg.values) {
-    const CharMapColumn<T> &column = pg.values[(c >> level3bits) & ((1 << level2bits) - 1)];
-    if (column.values)
-      return column.values[c & ((1 << level3bits) - 1)];
-    else
-      return column.value;
-  }
-  else
-    return pg.value;
-}
-
-template<class T>
-inline
-T CharMap<T>::getRange(Char c, Char &max) const
-{
-  const CharMapPage<T> &pg = pages_[c >> (level2bits + level3bits)];
-  if (pg.values) {
-    const CharMapColumn<T> &column = pg.values[(c >> level3bits) & ((1 << level2bits) - 1)];
-    if (column.values) {
-      max = c;
-      return column.values[c & ((1 << level3bits) - 1)];
-    }
-    else {
-      max = (c & ~((1 << level3bits) - 1)) + ((1 << level3bits) - 1);
-      return column.value;
-    }
-  }
-  else {
-    max = (c & ~((1 << (level2bits + level3bits)) - 1)) + ((1 << (level2bits + level2bits)) - 1);
-    return pg.value;
-  }
-}
-
-#else
-
-template<class T>
-inline
-T CharMap<T>::operator[](Char c) const
-{
-  return values_[c];
-}
-
-template<class T>
-inline
-T CharMap<T>::getRange(Char c, Char &max) const
-{
-  max = c;
-  return values_[c];
-}
-
-template<class T>
-inline
-void CharMap<T>::setChar(Char c, T val)
-{
-  values_[c] = val;
-}
-
-#endif
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not CharMap_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "CharMap.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/CharsetDecl.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef CharsetDecl_INCLUDED
-#define CharsetDecl_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "Vector.h"
-#include "ExternalId.h"
-#include "ISet.h"
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API CharsetDeclRange {
-public:
-  enum Type {
-    number,
-    string,
-    unused
-    };
-  CharsetDeclRange();
-  CharsetDeclRange(WideChar, Number, WideChar);
-  CharsetDeclRange(WideChar, Number);
-  CharsetDeclRange(WideChar, Number, const StringC &);
-  void rangeDeclared(WideChar min, Number count,
-		     ISet<WideChar> &declared) const;
-  void usedSet(ISet<Char> &) const;
-  Boolean getCharInfo(WideChar fromChar,
-		      CharsetDeclRange::Type &type,
-		      Number &n,
-		      StringC &str,
-		      Number &count) const;
-  void stringToChar(const StringC &str, ISet<WideChar> &to) const;
-  void numberToChar(Number n, ISet<WideChar> &to, Number &count) const;
-private:
-  WideChar descMin_;
-  Number count_;
-  WideChar baseMin_;
-  Type type_;
-  StringC str_;
-};
-
-class SP_API CharsetDeclSection {
-public:
-  CharsetDeclSection();
-  void setPublicId(const PublicId &);
-  void addRange(const CharsetDeclRange &);
-  void rangeDeclared(WideChar min, Number count,
-		     ISet<WideChar> &declared) const;
-  void usedSet(ISet<Char> &) const;
-  Boolean getCharInfo(WideChar fromChar,
-		      const PublicId *&id,
-		      CharsetDeclRange::Type &type,
-		      Number &n,
-		      StringC &str,
-		      Number &cout) const;
-  void stringToChar(const StringC &str, ISet<WideChar> &to) const;
-  void numberToChar(const PublicId *id, Number n,
-		    ISet<WideChar> &to, Number &count) const;
-private:
-  PublicId baseset_;
-  Vector<CharsetDeclRange> ranges_;
-};
-
-class SP_API CharsetDecl {
-public:
-  CharsetDecl();
-  void addSection(const PublicId &);
-  void swap(CharsetDecl &);
-  void clear();
-  void usedSet(ISet<Char> &) const;
-  void declaredSet(ISet<WideChar> &set) const;
-  Boolean charDeclared(WideChar) const;
-  void rangeDeclared(WideChar min, Number count,
-		     ISet<WideChar> &declared) const;
-  void addRange(WideChar, Number, WideChar);
-  void addRange(WideChar, Number);
-  void addRange(WideChar, Number, const StringC &);
-  Boolean getCharInfo(WideChar fromChar,
-		      const PublicId *&id,
-		      CharsetDeclRange::Type &type,
-		      Number &n,
-		      StringC &str) const;
-  Boolean getCharInfo(WideChar fromChar,
-		      const PublicId *&id,
-		      CharsetDeclRange::Type &type,
-		      Number &n,
-		      StringC &str,
-		      Number &count) const;
-  void stringToChar(const StringC &str, ISet<WideChar> &to) const;
-  void numberToChar(const PublicId *id, Number n,
-		    ISet<WideChar> &to, Number &count) const;
-  void numberToChar(const PublicId *id, Number n, ISet<WideChar> &to) const;
-private:
-  Vector<CharsetDeclSection> sections_;
-  ISet<WideChar> declaredSet_;
-};
-
-inline
-Boolean CharsetDecl::getCharInfo(WideChar fromChar,
-				 const PublicId *&id,
-				 CharsetDeclRange::Type &type,
-				 Number &n,
-				 StringC &str) const
-{
-  Number tem;
-  return getCharInfo(fromChar, id, type, n, str, tem);
-}
-
-inline
-void CharsetDecl::numberToChar(const PublicId *id, Number n,
-			       ISet<WideChar> &to) const
-{
-  Number tem;
-  numberToChar(id, n, to, tem);
-}
-
-inline
-void CharsetDecl::declaredSet(ISet<WideChar> &set) const
-{
-  set = declaredSet_;
-}
-
-inline
-Boolean CharsetDecl::charDeclared(WideChar c) const
-{
-  return declaredSet_.contains(c);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not CharsetDecl_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/CharsetInfo.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-// Copyright (c) 1994, 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef CharsetInfo_INCLUDED
-#define CharsetInfo_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <limits.h>
-#include "UnivCharsetDesc.h"
-#include "Boolean.h"
-#include "types.h"
-#include "StringC.h"
-#include "ISet.h"
-#include "CharMap.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API CharsetInfo {
-public:
-  CharsetInfo();
-  CharsetInfo(const UnivCharsetDesc &);
-  void set(const UnivCharsetDesc &);
-  // Use only for characters guaranteed to me in the C basic execution
-  // character set and which have been verified to be in this
-  // character set.
-  Char execToDesc(char) const;
-  StringC execToDesc(const char *s) const;
-  Boolean descToUniv(WideChar from, UnivChar &to) const;
-  Boolean descToUniv(WideChar from, UnivChar &to, WideChar &alsoMax) const;
-  // Return 0 for no matches, 1 for 1, 2 for more than 1
-  // to gets the first character; toSet gets all the characters
-  // if there's more than 1.
-  unsigned univToDesc(UnivChar from, WideChar &to, ISet<WideChar> &toSet)
-       const;
-  unsigned univToDesc(UnivChar from, WideChar &to, ISet<WideChar> &toSet,
-		      WideChar &count)
-       const;
-  void getDescSet(ISet<Char> &) const;
-  int digitWeight(Char) const;
-  int hexDigitWeight(Char) const;
-  const UnivCharsetDesc &desc() const;
-private:
-  void init();
-  UnivCharsetDesc desc_;
-  CharMap<Unsigned32> inverse_;
-  Char execToDesc_[UCHAR_MAX + 1];
-};
-
-inline
-unsigned CharsetInfo::univToDesc(UnivChar from, WideChar &to,
-				 ISet<WideChar> &toSet)
-     const
-{
-  if (from <= Char(-1)) {
-    Unsigned32 n = inverse_[from];
-    if (n == Unsigned32(-1))
-      return 0;
-    if (n != Unsigned32(-2)) {
-      to = ((n + from) & ((Unsigned32(1) << 31) - 1));
-      return 1;
-    }
-  }
-  return desc_.univToDesc(from, to, toSet);
-}
-
-inline
-unsigned CharsetInfo::univToDesc(UnivChar from, WideChar &to,
-				 ISet<WideChar> &toSet, WideChar &count)
-     const
-{
-  if (from <= Char(-1)) {
-    Char fromMax;
-    Unsigned32 n = inverse_.getRange(from, fromMax);
-    if (n == Unsigned32(-1)) {
-      count = (fromMax - from) + 1;
-      return 0;
-    }
-    if (n != Unsigned32(-2)) {
-      to = ((n + from) & ((Unsigned32(1) << 31) - 1));
-      count = (fromMax - from) + 1;
-      return 1;
-    }
-  }
-  return desc_.univToDesc(from, to, toSet, count);
-}
-
-inline
-Boolean CharsetInfo::descToUniv(UnivChar from, WideChar &to) const
-{
-  return desc_.descToUniv(from, to);
-}
-
-inline
-Char CharsetInfo::execToDesc(char c) const
-{
-  return execToDesc_[(unsigned char)c];
-}
-
-inline
-Boolean CharsetInfo::descToUniv(WideChar from, UnivChar &to,
-				WideChar &alsoMax) const
-{
-  return desc_.descToUniv(from, to, alsoMax);
-}
-
-inline
-const UnivCharsetDesc &CharsetInfo::desc() const
-{
-  return desc_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not CharsetInfo_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/CharsetRegistry.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef CharsetRegistry_INCLUDED
-#define CharsetRegistry_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Boolean.h"
-#include "types.h"
-#include "StringC.h"
-#include "CharsetInfo.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API CharsetRegistry {
-public:
-  class SP_API Iter {
-  public:
-    virtual ~Iter();
-    virtual Boolean next(WideChar &min, WideChar &max, UnivChar &) = 0;
-  };
-  enum ISORegistrationNumber {
-    UNREGISTERED = 0,
-    ISO646_ASCII_G0 = 6,
-    ISO646_C0 = 1,
-    ISO6429 = 77,
-    ISO8859_1 = 100,
-    ISO8859_2 = 101,
-    ISO8859_3 = 109,
-    ISO8859_4 = 110,
-    ISO8859_5 = 144,
-    ISO8859_6 = 127,
-    ISO8859_7 = 126,
-    ISO8859_8 = 138,
-    ISO8859_9 = 148,
-    ISO646_JIS_G0 = 14,
-    JIS0201 = 13,
-    JIS0208 = 168,
-    JIS0212 = 159,
-    KSC5601 = 149,
-    GB2312 = 58,
-    ISO10646_UCS2 = 176,
-    ISO10646_UCS4 = 177,
-    BIG5 = 65535 // not registered
-  };
-  static ISORegistrationNumber getRegistrationNumber(const StringC &desig,
-						     const CharsetInfo &);
-  static Iter *makeIter(ISORegistrationNumber);
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not CharsetRegistry_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/CmdLineApp.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef CmdLineApp_INCLUDED
-#define CmdLineApp_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "MessageReporter.h"
-#include "Vector.h"
-#include "StringOf.h"
-#include "Boolean.h"
-#include "CodingSystem.h"
-#include "OutputByteStream.h"
-#include "OutputCharStream.h"
-#include "CodingSystemKit.h"
-
-#ifdef SP_WIDE_SYSTEM
-// for wchar_t
-#include <stddef.h>
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API CmdLineApp  : public MessageReporter {
-public:
-#ifdef SP_WIDE_SYSTEM
-  typedef wchar_t AppChar;
-#else
-  typedef char AppChar;
-#endif
-  CmdLineApp(const char *requiredInternalCode = 0);
-  int run(int argc, AppChar **argv);
-  virtual int processOptions(int argc, AppChar **argv, int &nextArg);
-  virtual void processOption(AppChar opt, const AppChar *arg);
-  virtual int processArguments(int argc, AppChar **files) = 0;
-  static const MessageType2 &openFileErrorMessage();
-  static const MessageType2 &closeFileErrorMessage();
-  StringC usageString();
-  const CodingSystem *codingSystem();
-  const CodingSystem *outputCodingSystem();
-  const CharsetInfo &systemCharset();
-  ConstPtr<InputCodingSystemKit> inputCodingSystemKit();
-  StringC convertInput(const AppChar *s);
-  OutputCharStream *makeStdOut();
-  OutputCharStream *makeStdErr();
-protected:
-  virtual void registerOption(AppChar c, const AppChar *argName = 0);
-  virtual int init(int argc, AppChar **argv);
-  void resetCodingSystemKit();
-  static Boolean stringMatches(const AppChar *s, const char *key);
-  const AppChar *errorFile_;
-  const CodingSystem *outputCodingSystem_;
-  String<AppChar> optstr_;
-  Vector<const AppChar *> optArgNames_;
-  Boolean internalCharsetIsDocCharset_;
-  Ptr<CodingSystemKit> codingSystemKit_;
-private:
-  Boolean getMessageText(const MessageFragment &, StringC &);
-  void initCodingSystem(const char *requiredInternalCode);
-  const CodingSystem *lookupCodingSystem(const AppChar *codingName);
-  const CodingSystem *codingSystem_;
-};
-
-#ifdef SP_WIDE_SYSTEM
-#define SP_DEFINE_APP(CLASS) \
-  extern "C" \
-  wmain(int argc, wchar_t **argv) { CLASS app; return app.run(argc, argv); }
-#else
-#define SP_DEFINE_APP(CLASS) \
- int main(int argc, char **argv) { CLASS app; return app.run(argc, argv); }
-#endif
-
-inline
-const CodingSystem *CmdLineApp::codingSystem()
-{
-  return codingSystem_;
-}
-
-inline
-const CodingSystem *CmdLineApp::outputCodingSystem()
-{
-  return outputCodingSystem_;
-}
-
-inline
-ConstPtr<InputCodingSystemKit> CmdLineApp::inputCodingSystemKit()
-{
-  return codingSystemKit_.pointer();
-}
-
-inline
-const CharsetInfo &CmdLineApp::systemCharset()
-{
-  return codingSystemKit_->systemCharset();
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not CmdLineApp_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/CodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef CodingSystem_INCLUDED
-#define CodingSystem_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "Boolean.h"
-#include "StringC.h"
-#include "OutputByteStream.h"
-
-#include <stddef.h>
-
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API Decoder {
-public:
-  Decoder(unsigned minBytesPerChar = 1);
-  virtual ~Decoder();
-  virtual size_t decode(Char *, const char *, size_t, const char **) = 0;
-  virtual Boolean convertOffset(unsigned long &offset) const;
-  // Decoder assumes that for every decoded Char there must be at least
-  // minBytesPerChar bytes
-  unsigned minBytesPerChar() const;
-protected:
-  unsigned minBytesPerChar_;
-};
-
-
-class SP_API Encoder {
-public:
-  class SP_API Handler {
-  public:
-    virtual void handleUnencodable(Char, OutputByteStream *) = 0;
-  };
-  Encoder();
-  virtual ~Encoder();
-  virtual void output(const Char *, size_t, OutputByteStream *) = 0;
-  // This outputs a byte order mark with Unicode.
-  virtual void startFile(OutputByteStream *);
-  virtual void output(Char *, size_t, OutputByteStream *);
-  virtual void setUnencodableHandler(Handler *);
-  virtual void handleUnencodable(Char, OutputByteStream *);
-};
-
-class SP_API RecoveringEncoder : public Encoder {
-public:
-  RecoveringEncoder();
-  void setUnencodableHandler(Handler *);
-  void handleUnencodable(Char, OutputByteStream *);
-private:
-  Handler *unencodableHandler_;
-};
-
-class SP_API InputCodingSystem {
-public:
-  virtual ~InputCodingSystem();
-  virtual Decoder *makeDecoder() const = 0;
-  StringC convertIn(const char *) const;
-  virtual Boolean isIdentity() const;
-};
-
-class SP_API OutputCodingSystem {
-public:
-  virtual ~OutputCodingSystem();
-  virtual Encoder *makeEncoder() const = 0;
-  virtual unsigned fixedBytesPerChar() const;
-  String<char> convertOut(const StringC &) const;
-};
-
-class SP_API CodingSystem : public InputCodingSystem, public OutputCodingSystem {
-};
-
-inline
-unsigned Decoder::minBytesPerChar() const
-{
-  return minBytesPerChar_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not CodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/CodingSystemKit.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef CodingSystemKit_INCLUDED
-#define CodingSystemKit_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Boolean.h"
-#include "StringC.h"
-#include "CodingSystem.h"
-#include "Resource.h"
-#include "CharsetInfo.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API InputCodingSystemKit : public Resource {
-public:
-  virtual ~InputCodingSystemKit();
-  // Returned InputCodingSystem lives at least as long as the Kit.
-  virtual const InputCodingSystem *
-    identityInputCodingSystem() const = 0;
-  virtual const InputCodingSystem *
-    makeInputCodingSystem(const StringC &,
-			  const CharsetInfo &,
-			  Boolean isBctf,
-			  const char *&staticName) const = 0;
-  virtual Char replacementChar() const = 0;
-  const CharsetInfo &systemCharset() const;
-protected:
-  CharsetInfo systemCharset_;
-};
-
-class SP_API CodingSystemKit : public InputCodingSystemKit {
-public:
-  virtual CodingSystemKit *copy() const = 0;
-  virtual const CodingSystem *
-    identityCodingSystem() const = 0;
-  virtual const CodingSystem *
-    makeCodingSystem(const char *, Boolean isBctf) const = 0;
-  static CodingSystemKit *make(const char *);
-};
-
-inline
-const CharsetInfo &InputCodingSystemKit::systemCharset() const
-{
-  return systemCharset_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not CodingSystemKit_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ConsoleOutput.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ConsoleOutput_INCLUDED
-#define ConsoleOutput_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "OutputCharStream.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API ConsoleOutput {
-public:
-  // Returns null if fd is not a console.
-  static OutputCharStream *makeOutputCharStream(int fd);
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ConsoleOutput_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ContentState.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-// Copyright (c) 1994, 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ContentState_INCLUDED
-#define ContentState_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <stddef.h>
-#include "OpenElement.h"
-#include "IList.h"
-#include "Vector.h"
-#include "Message.h"
-#include "Dtd.h"
-#include "Mode.h"
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API ContentState {
-public:
-  ContentState();
-  void startContent(const Dtd &);
-  void pushElement(OpenElement *);
-  OpenElement *popSaveElement();
-  void popElement();
-  OpenElement &currentElement();
-  const OpenElement &currentElement() const;
-  void getOpenElementInfo(Vector<OpenElementInfo> &,
-			  const StringC &rniPcdata) const;
-  unsigned tagLevel() const;
-  Boolean elementIsIncluded(const ElementType *) const;
-  Boolean elementIsExcluded(const ElementType *) const;
-  Boolean elementIsOpen(const ElementType *) const;
-  Boolean afterDocumentElement() const;
-  const ElementType *lastEndedElementType() const;
-  Mode contentMode() const;
-  ElementType *lookupCreateUndefinedElement(const StringC &,
-					    const Location &,
-					    Dtd &);
-  Boolean checkImplyLoop(unsigned);
-  static const ShortReferenceMap theEmptyMap;
-private:
-  IList<OpenElement> openElements_;
-  Vector<unsigned> openElementCount_;
-  Vector<unsigned> includeCount_;
-  Vector<unsigned> excludeCount_;
-  unsigned totalExcludeCount_;
-  unsigned tagLevel_;
-  unsigned netEnablingCount_;
-  unsigned long nextIndex_;
-  const ElementType *lastEndedElementType_;
-  ElementType documentElementContainer_;
-};
-
-inline
-OpenElement &ContentState::currentElement()
-{
-  return *openElements_.head();
-}
-
-inline
-const OpenElement &ContentState::currentElement() const
-{
-  return *openElements_.head();
-}
-
-inline
-Boolean ContentState::elementIsOpen(const ElementType *e) const
-{
-  return openElementCount_[e->index()] != 0;
-}
-
-inline
-Boolean ContentState::elementIsIncluded(const ElementType *e) const
-{
-  return includeCount_[e->index()] != 0 && excludeCount_[e->index()] == 0;
-}
-
-inline
-Boolean ContentState::elementIsExcluded(const ElementType *e) const
-{
-  return excludeCount_[e->index()] != 0;
-}
-
-inline
-const ElementType *ContentState::lastEndedElementType() const
-{
-  return lastEndedElementType_;
-}
-
-inline
-unsigned ContentState::tagLevel() const
-{
-  return tagLevel_;
-}
-
-inline
-Boolean ContentState::afterDocumentElement() const
-{
-  return tagLevel() == 0 && currentElement().isFinished();
-}
-
-inline
-Mode ContentState::contentMode() const
-{
-  return openElements_.head()->mode(netEnablingCount_ > 0);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ContentState_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ContentToken.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,631 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ContentToken_INCLUDED
-#define ContentToken_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Owner.h"
-#include "Text.h"
-#include "Vector.h"
-#include "NCVector.h"
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class LeafContentToken;
-
-struct SP_API Transition {
-  enum { invalidIndex = -1 };
-  // When performing this transition, reset all andState with index >= this.
-  unsigned clearAndStateStartIndex;
-  // This transition is possible only if all AND groups whose AND depth
-  // is >= this (and contains the LeafContentToken that this transition is
-  // from) have had all their non-nullable members matched.
-  unsigned andDepth;
-  // If this is 1, then this transition requires that the AND group
-  // whose AND depth is andDepth - 1 have a non-nullable member unmatched,
-  // and thus this transition is not ambiguous with a transition whose
-  // AND depth is < andDepth.
-  PackedBoolean isolated;
-  // Index in andState that must be clear for this transition to be
-  // allowed.
-  unsigned requireClear;
-  // Index in andState that is to be set after performing this transition.
-  unsigned toSet;
-};
-
-class SP_API FirstSet {
-public:
-  FirstSet();
-  void init(LeafContentToken *);
-  void append(const FirstSet &);
-  size_t size() const;
-  LeafContentToken *token(size_t i) const;
-  size_t requiredIndex() const;
-  void setNotRequired();
-private:
-  Vector<LeafContentToken *> v_;
-  // index of contextually required token or -1 if none
-  size_t requiredIndex_;
-};
-
-class SP_API LastSet : public Vector<LeafContentToken *> {
-public:
-  LastSet() { }
-  LastSet(size_t n) : Vector<LeafContentToken *>(n) { }
-  void append(const LastSet &);
-};
-
-class ElementType;
-class AndModelGroup;
-struct GroupInfo;
-
-struct SP_API ContentModelAmbiguity {
-  const LeafContentToken *from;
-  const LeafContentToken *to1;
-  const LeafContentToken *to2;
-  unsigned andDepth;
-};
-
-class ModelGroup;
-
-class SP_API ContentToken {
-public:
-  enum OccurrenceIndicator { none = 0, opt = 01, plus = 02, rep = 03 };
-  ContentToken(OccurrenceIndicator);
-  virtual ~ContentToken();
-  OccurrenceIndicator occurrenceIndicator() const;
-  Boolean inherentlyOptional() const;
-  static unsigned andDepth(const AndModelGroup *);
-  static unsigned andIndex(const AndModelGroup *);
-  void analyze(GroupInfo &, const AndModelGroup *, unsigned,
-	       FirstSet &, LastSet &);
-  static void addTransitions(const LastSet &from,
-			     const FirstSet &to,
-			     Boolean maybeRequired,
-			     unsigned andClearIndex,
-			     unsigned andDepth,
-			     Boolean isolated = 0,
-			     unsigned requireClear
-			       = (unsigned)Transition::invalidIndex,
-			     unsigned toSet
-			       = (unsigned)Transition::invalidIndex);
-  virtual void finish(Vector<unsigned> &minAndDepth,
-		      Vector<size_t> &elementTransition,
-		      Vector<ContentModelAmbiguity> &,
-		      Boolean &pcdataUnreachable) = 0;
-  virtual unsigned long grpgtcnt() const;
-  virtual void setOrGroupMember();
-  unsigned andGroupIndex() const;
-  virtual const ModelGroup *asModelGroup() const;
-  virtual const LeafContentToken *asLeafContentToken() const;
-protected:
-  PackedBoolean inherentlyOptional_;
-private:
-  ContentToken(const ContentToken &); // undefined
-  void operator=(const ContentToken &);	// undefined
-  virtual void analyze1(GroupInfo &, const AndModelGroup *, unsigned,
-			FirstSet &, LastSet &) = 0;
-  OccurrenceIndicator occurrenceIndicator_;
-};
-
-class SP_API ModelGroup : public ContentToken {
-public:
-  enum Connector { andConnector, orConnector, seqConnector };
-  ModelGroup(NCVector<Owner<ContentToken> > &, OccurrenceIndicator);
-  virtual Connector connector() const = 0;
-  unsigned nMembers() const;
-  void finish(Vector<unsigned> &minAndDepth,
-	      Vector<size_t> &elementTransition,
-	      Vector<ContentModelAmbiguity> &,
-	      Boolean &pcdataUnreachable);
-  ContentToken &member(unsigned i);
-  const ContentToken &member(unsigned i) const;
-  unsigned long grpgtcnt() const;
-  const ModelGroup *asModelGroup() const;
-protected:
-  void setOrGroup();
-private:
-  ModelGroup(const ModelGroup &); // undefined
-  void operator=(const ModelGroup &); // undefined
-  NCVector<Owner<ContentToken> > members_;
-};
-
-class AndModelGroup : public ModelGroup {
-public:
-  AndModelGroup(NCVector<Owner<ContentToken> > &, OccurrenceIndicator);
-  Connector connector() const;
-  unsigned andDepth() const;
-  unsigned andIndex() const;
-  unsigned andGroupIndex() const;
-  const AndModelGroup *andAncestor() const;
-private:
-  AndModelGroup(const AndModelGroup &);	// undefined
-  void operator=(const AndModelGroup &); // undefined
-  unsigned andDepth_;		// number of and groups that contain this
-  unsigned andIndex_;
-  unsigned andGroupIndex_;
-  const AndModelGroup *andAncestor_;
-  void analyze1(GroupInfo &, const AndModelGroup *, unsigned,
-		FirstSet &, LastSet &);
-};
-
-class OrModelGroup : public ModelGroup {
-public:
-  OrModelGroup(NCVector<Owner<ContentToken> > &, OccurrenceIndicator);
-  Connector connector() const;
-private:
-  OrModelGroup(const OrModelGroup &); // undefined
-  void operator=(const OrModelGroup &);	// undefined
-  void analyze1(GroupInfo &, const AndModelGroup *, unsigned,
-		FirstSet &, LastSet &);
-};
-
-class SeqModelGroup : public ModelGroup {
-public:
-  SeqModelGroup(NCVector<Owner<ContentToken> > &, OccurrenceIndicator);
-  Connector connector() const;
-private:
-  SeqModelGroup(const SeqModelGroup &);	// undefined
-  void operator=(const SeqModelGroup &); // undefined
-  void analyze1(GroupInfo &, const AndModelGroup *, unsigned,
-		FirstSet &, LastSet &);
-};
-
-class AndState;
-
-class SP_API AndInfo {
-public:
-  AndInfo() { }
-  const AndModelGroup *andAncestor;
-  unsigned andGroupIndex;
-  Vector<Transition> follow;
-private:
-  AndInfo(const AndInfo &);	// undefined
-  void operator=(const AndInfo &); // undefined
-};
-
-// A LeafContentToken is not quite the same as a primitive content token.
-// A data tag group is a primitive content token but not a LeafContentToken.
-
-class SP_API LeafContentToken : public ContentToken {
-public:
-  LeafContentToken(const ElementType *, OccurrenceIndicator);
-  unsigned index() const;
-  unsigned typeIndex() const;
-  const ElementType *elementType() const;
-  virtual Boolean isInitial() const;
-  void addTransitions(const FirstSet &to,
-		      Boolean maybeRequired,
-		      unsigned andClearIndex,
-		      unsigned andDepth,
-		      Boolean isolated,
-		      unsigned requireClear,
-		      unsigned toSet);
-  void setFinal();
-  void finish(Vector<unsigned> &minAndDepth,
-	      Vector<size_t> &elementTransition,
-	      Vector<ContentModelAmbiguity> &,
-	      Boolean &pcdataUnreachable);
-  Boolean isFinal() const;
-  Boolean tryTransition(const ElementType *, AndState &,
-			unsigned &minAndDepth,
-			const LeafContentToken *&newpos) const;
-  Boolean tryTransitionPcdata(AndState &, unsigned &minAndDepth,
-			      const LeafContentToken *&newpos) const;
-  void possibleTransitions(const AndState &, unsigned minAndDepth, Vector<const ElementType *> &) const;
-  const LeafContentToken *impliedStartTag(const AndState &andpos,
-					  unsigned minAndDepth) const;
-  const LeafContentToken *transitionToken(const ElementType *to,
-					  const AndState &andState,
-					  unsigned minAndDepth) const;
-  void doRequiredTransition(AndState &andState,
-			    unsigned &minAndDepth,
-			    const LeafContentToken *&newpos) const;
-  unsigned computeMinAndDepth(const AndState&) const;
-  Boolean orGroupMember() const;
-  void setOrGroupMember();
-  const AndModelGroup *andAncestor() const;
-  unsigned andDepth() const;
-  const LeafContentToken *asLeafContentToken() const;
-protected:
-  void analyze1(GroupInfo &, const AndModelGroup *, unsigned,
-		FirstSet &, LastSet &);
-  const ElementType *element_;
-private:
-  LeafContentToken(const LeafContentToken &); // undefined
-  void operator=(const LeafContentToken &);   // undefined
-  void andFinish(Vector<unsigned> &minAndDepth,
-		 Vector<size_t> &elementTransition,
-		 Vector<ContentModelAmbiguity> &,
-		 Boolean &pcdataUnreachable);
-  unsigned computeMinAndDepth1(const AndState&) const;
-  unsigned leafIndex_;
-  unsigned typeIndex_;
-  Vector<LeafContentToken *> follow_;
-  PackedBoolean isFinal_;
-  PackedBoolean orGroupMember_;
-  // 0 none, 1 yes - simple, 2 - compled
-  char pcdataTransitionType_;
-  const LeafContentToken *simplePcdataTransition_;
-  size_t requiredIndex_;
-  Owner<AndInfo> andInfo_;
-};
-
-class PcdataToken : public LeafContentToken {
-public:
-  PcdataToken();
-  void analyze1(GroupInfo &, const AndModelGroup *, unsigned,
-		FirstSet &, LastSet &);
-private:
-  PcdataToken(const PcdataToken &); // undefined
-  void operator=(const PcdataToken &); // undefined
-};
-
-class InitialPseudoToken : public LeafContentToken {
-public:
-  InitialPseudoToken();
-  Boolean isInitial() const;
-private:
-  InitialPseudoToken(const InitialPseudoToken &); // undefined
-  void operator=(const InitialPseudoToken &); // undefined
-};
-
-class ElementToken : public LeafContentToken {
-public:
-  ElementToken(const ElementType *, OccurrenceIndicator);
-private:
-  ElementToken(const ElementToken &); // undefined
-  void operator=(const ElementToken &); // undefined
-};
-
-class DataTagGroup : public SeqModelGroup {
-public:
-  // first content token is a DataTagElementToken, second is PcdataToken
-  DataTagGroup(NCVector<Owner<ContentToken> > &, OccurrenceIndicator);
-private:
-  DataTagGroup(const DataTagGroup &); // undefined
-  void operator=(const DataTagGroup &); // undefined
-};
-
-class DataTagElementToken : public ElementToken {
-public:
-  DataTagElementToken(const ElementType *, Vector<Text> &templates);
-  DataTagElementToken(const ElementType *, Vector<Text> &templates,
-		      Text &paddingTemplate);
-private:
-  DataTagElementToken(const DataTagElementToken &); // undefined
-  void operator=(const DataTagElementToken &); // undefined
-  Vector<Text> templates_;
-  Boolean havePaddingTemplate_;
-  Text paddingTemplate_;
-};
-
-class SP_API CompiledModelGroup {
-public:
-  CompiledModelGroup(Owner<ModelGroup> &);
-  void compile(size_t nElementTypeIndex,
-	       Vector<ContentModelAmbiguity> &,
-	       Boolean &pcdataUnreachable);
-  CompiledModelGroup *copy() const;
-  const LeafContentToken *initial() const;
-  unsigned andStateSize() const;
-  Boolean containsPcdata() const;
-  const ModelGroup *modelGroup() const;
-private:
-  CompiledModelGroup(const CompiledModelGroup &); // undefined
-  void operator=(const CompiledModelGroup &);	  // undefined
-  Owner<ModelGroup> modelGroup_;
-  Owner<LeafContentToken> initial_;
-  unsigned andStateSize_;
-  Boolean containsPcdata_;
-};
-
-class SP_API AndState {
-public:
-  AndState(unsigned);
-  Boolean isClear(unsigned) const;
-  void clearFrom(unsigned);
-  void set(unsigned);
-  Boolean operator==(const AndState &) const;
-  Boolean operator!=(const AndState &) const;
-private:
-  void clearFrom1(unsigned);
-  unsigned clearFrom_;
-  Vector<PackedBoolean> v_;
-};
-
-class SP_API MatchState {
-public:
-  MatchState();
-  MatchState(const CompiledModelGroup *); // may be 0
-  Boolean tryTransition(const ElementType *);
-  Boolean tryTransitionPcdata();
-  void possibleTransitions(Vector<const ElementType *> &) const;
-  Boolean isFinished() const;
-  const LeafContentToken *impliedStartTag() const;
-  const LeafContentToken *invalidExclusion(const ElementType *) const;
-  void doRequiredTransition();
-  const LeafContentToken *currentPosition() const;
-  Boolean operator==(const MatchState &) const;
-  Boolean operator!=(const MatchState &) const;
-private:
-  const LeafContentToken *pos_;
-  AndState andState_;
-  unsigned minAndDepth_;
-};
-
-inline
-ContentToken::OccurrenceIndicator ContentToken::occurrenceIndicator() const
-{
-  return occurrenceIndicator_;
-}
-
-inline
-unsigned LeafContentToken::index() const
-{
-  return leafIndex_;
-}
-
-inline
-unsigned LeafContentToken::typeIndex() const
-{
-  return typeIndex_;
-}
-
-inline
-Boolean ContentToken::inherentlyOptional() const
-{
-  return inherentlyOptional_;
-}
-
-inline
-const ElementType *LeafContentToken::elementType() const
-{
-  return element_;
-}
-
-inline
-unsigned AndModelGroup::andDepth() const
-{
-  return andDepth_;
-}
-
-inline
-unsigned AndModelGroup::andIndex() const
-{
-  return andIndex_;
-}
-
-inline
-unsigned ModelGroup::nMembers() const
-{
-  return members_.size();
-}
-
-inline
-unsigned ContentToken::andDepth(const AndModelGroup *andAncestor)
-{
-  return andAncestor ? andAncestor->andDepth() + 1 : 0;
-}
-
-inline
-unsigned ContentToken::andIndex(const AndModelGroup *andAncestor)
-{
-  return (andAncestor
-	  ? andAncestor->andIndex() + andAncestor->nMembers()
-	  : 0);
-}
-
-inline
-ContentToken &ModelGroup::member(unsigned i)
-{
-  return *members_[i];
-}
-
-inline
-const ContentToken &ModelGroup::member(unsigned i) const
-{
-  return *members_[i];
-}
-
-inline
-void LeafContentToken::setFinal()
-{
-  isFinal_ = 1;
-}
-
-inline
-Boolean LeafContentToken::isFinal() const
-{
-  return isFinal_;
-}
-
-inline
-Boolean LeafContentToken::orGroupMember() const
-{
-  return orGroupMember_;
-}
-
-inline
-unsigned CompiledModelGroup::andStateSize() const
-{
-  return andStateSize_;
-}
-
-inline
-Boolean CompiledModelGroup::containsPcdata() const
-{
-  return containsPcdata_;
-}
-
-inline
-const AndModelGroup *AndModelGroup::andAncestor() const
-{
-  return andAncestor_;
-}
-
-inline
-unsigned AndModelGroup::andGroupIndex() const
-{
-  return andGroupIndex_;
-}
-
-inline
-const LeafContentToken *CompiledModelGroup::initial() const
-{
-  return initial_.pointer();
-}
-
-inline
-const ModelGroup *CompiledModelGroup::modelGroup() const
-{
-  return modelGroup_.pointer();
-}
-
-inline
-const AndModelGroup *LeafContentToken::andAncestor() const
-{
-  return andInfo_ ? andInfo_->andAncestor : 0;
-}
-
-inline
-unsigned LeafContentToken::andDepth() const
-{
-  return andInfo_ ? ContentToken::andDepth(andInfo_->andAncestor) : 0;
-}
-
-inline
-unsigned LeafContentToken::computeMinAndDepth(const AndState &andState) const
-{
-  return andInfo_ ? computeMinAndDepth1(andState) : 0;
-}
-
-inline
-Boolean LeafContentToken::tryTransitionPcdata(AndState &andState,
-					      unsigned &minAndDepth,
-					      const LeafContentToken *&newpos)
-     const
-{
-  if (pcdataTransitionType_ == 1) {
-    newpos = simplePcdataTransition_;
-    return 1;
-  }
-  else if (pcdataTransitionType_ == 0)
-    return 0;
-  else
-    return tryTransition(0, andState, minAndDepth, newpos);
-}
-
-inline
-Boolean MatchState::tryTransition(const ElementType *to)
-{
-  return pos_->tryTransition(to, andState_, minAndDepth_, pos_);
-}
-
-inline
-Boolean MatchState::tryTransitionPcdata()
-{
-  return pos_->tryTransitionPcdata(andState_, minAndDepth_, pos_);
-}
-
-inline
-void MatchState::possibleTransitions(Vector<const ElementType *> &v) const
-{
-  pos_->possibleTransitions(andState_, minAndDepth_, v);
-}
-
-inline
-Boolean MatchState::isFinished() const
-{
-  return pos_->isFinal() && minAndDepth_ == 0;
-}
-
-inline
-const LeafContentToken *
-MatchState::impliedStartTag() const
-{
-  return pos_->impliedStartTag(andState_, minAndDepth_);
-}
-
-inline
-void MatchState::doRequiredTransition()
-{
-  pos_->doRequiredTransition(andState_, minAndDepth_, pos_);
-}
-
-inline
-const LeafContentToken *MatchState::currentPosition() const
-{
-  return pos_;
-}
-
-inline
-Boolean MatchState::operator!=(const MatchState &state) const
-{
-  return !(*this == state);
-}
-
-inline
-Boolean AndState::isClear(unsigned i) const
-{
-  return v_[i] == 0;
-}
-
-inline
-void AndState::set(unsigned i)
-{
-  v_[i] = 1;
-  if (i >= clearFrom_)
-    clearFrom_ = i + 1;
-}
-
-inline
-void AndState::clearFrom(unsigned i)
-{
-  if (i < clearFrom_)
-    clearFrom1(i);
-}
-
-inline
-Boolean AndState::operator!=(const AndState &state) const
-{
-  return !(*this == state);
-}
-
-
-inline
-size_t FirstSet::size() const
-{
-  return v_.size();
-}
-
-inline
-LeafContentToken *FirstSet::token(size_t i) const
-{
-  return v_[i];
-}
-
-inline
-size_t FirstSet::requiredIndex() const
-{
-  return requiredIndex_;
-}
-
-inline
-void FirstSet::setNotRequired()
-{
-  requiredIndex_ = size_t(-1);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ContentToken_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/CopyOwner.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef CopyOwner_DEF_INCLUDED
-#define CopyOwner_DEF_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-CopyOwner<T>::CopyOwner(const CopyOwner<T> &o)
-: Owner<T>(o.pointer() ? o.pointer()->copy() : 0)
-{
-}
- 
-template<class T>
-void CopyOwner<T>::operator=(const CopyOwner<T> &o)
-{
-  Owner<T>::operator=(o.pointer() ? o.pointer()->copy() : 0);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not CopyOwner_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/CopyOwner.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef CopyOwner_INCLUDED
-#define CopyOwner_INCLUDED 1
-
-#include "Owner.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class CopyOwner : public Owner<T> {
-public:
-  CopyOwner() { }
-  CopyOwner(T *p) : Owner<T>(p) { }
-  CopyOwner(const CopyOwner<T> &);
-  void operator=(const CopyOwner<T> &o);
-  void operator=(T *p) { Owner<T>::operator=(p); }
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not CopyOwner_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "CopyOwner.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/DescriptorManager.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef DescriptorManager_INCLUDED
-#define DescriptorManager_INCLUDED 1
-
-#include "Boolean.h"
-#include "List.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class DescriptorManager;
-
-class SP_API DescriptorUser {
-public:
-  DescriptorUser(DescriptorManager *);
-  virtual ~DescriptorUser();
-  virtual Boolean suspend();
-  void managerDeleted();
-  void acquireD();
-  void releaseD();
-  DescriptorManager *manager() const;
-private:
-  DescriptorManager *manager_;
-};
-
-class SP_API DescriptorManager {
-public:
-  DescriptorManager(int maxD);
-  ~DescriptorManager();
-  void acquireD();
-  void releaseD();
-  void addUser(DescriptorUser *);
-  void removeUser(DescriptorUser *);
-private:
-  DescriptorManager(const DescriptorManager &);	// undefined
-  void operator=(const DescriptorManager &);	// undefined
-
-  int usedD_;
-  int maxD_;
-  List<DescriptorUser *> users_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not DescriptorManager_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Dtd.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,468 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Dtd_INCLUDED
-#define Dtd_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "NamedTable.h"
-#include "NamedResourceTable.h"
-#include "ElementType.h"
-#include "Notation.h"
-#include "Entity.h"
-#include "ShortReferenceMap.h"
-#include "Resource.h"
-#include "StringC.h"
-#include "StringResource.h"
-#include "Boolean.h"
-#include "Vector.h"
-#include "HashTable.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Syntax;
-class ParserState;
-
-class SP_API Dtd : public Resource {
-public:
-  typedef NamedTableIter<ElementType> ElementTypeIter;
-  typedef ConstNamedTableIter<ElementType> ConstElementTypeIter;
-  typedef NamedTableIter<ShortReferenceMap> ShortReferenceMapIter;
-  typedef ConstNamedResourceTableIter<Notation> ConstNotationIter;
-  typedef NamedResourceTableIter<Notation> NotationIter;
-  typedef ConstNamedResourceTableIter<Entity> ConstEntityIter;
-  typedef NamedResourceTableIter<Entity> EntityIter;
-  Dtd(const StringC &name, Boolean isBase);
-  ConstPtr<Entity> lookupEntity(Boolean isParameter, const StringC &) const;
-  const Entity *lookupEntityTemp(Boolean isParameter, const StringC &) const;
-  Ptr<Entity> lookupEntity(Boolean isParameter, const StringC &);
-  Ptr<Entity> insertEntity(const Ptr<Entity> &, Boolean replace = 0);
-  Ptr<Entity> removeEntity(Boolean isParameter, const StringC &);
-  ConstEntityIter generalEntityIter() const;
-  EntityIter generalEntityIter();
-  ConstEntityIter parameterEntityIter() const;
-  EntityIter parameterEntityIter();
-
-  ConstPtr<Entity> defaultEntity() const;
-  const Entity *defaultEntityTemp() const;
-  void setDefaultEntity(const Ptr<Entity> &, ParserState &);
-  const ConstPtr<StringResource<Char> > &namePointer() const;
-  const StringC &name() const;
-
-  const ElementType *lookupElementType(const StringC &) const;
-  ElementType *lookupElementType(const StringC &);
-  ElementType *removeElementType(const StringC &);
-  ElementType *insertElementType(ElementType *);
-  ElementType *insertUndefinedElementType(ElementType *);
-  size_t nElementTypeIndex() const;
-  size_t allocElementTypeIndex();
-  ConstElementTypeIter elementTypeIter() const;
-  ElementTypeIter elementTypeIter();
-
-  const RankStem *lookupRankStem(const StringC &) const;
-  RankStem *lookupRankStem(const StringC &);
-  RankStem *insertRankStem(RankStem *);
-  size_t nRankStem() const;
-
-  const ShortReferenceMap *lookupShortReferenceMap(const StringC &) const;
-  ShortReferenceMap *lookupShortReferenceMap(const StringC &);
-  ShortReferenceMap *insertShortReferenceMap(ShortReferenceMap *);
-  ShortReferenceMapIter shortReferenceMapIter();
-
-  Boolean shortrefIndex(const StringC &, const Syntax &, size_t &index);
-  size_t nShortref() const;
-  const StringC &shortref(size_t i) const;
-  void addNeededShortref(const StringC &);
-
-  ConstPtr<Notation> lookupNotation(const StringC &) const;
-  const Notation *lookupNotationTemp(const StringC &) const;
-  Ptr<Notation> lookupNotation(const StringC &);
-  Ptr<Notation> insertNotation(const Ptr<Notation> &);
-  Ptr<Notation> removeNotation(const StringC &);
-  ConstNotationIter notationIter() const;
-  NotationIter notationIter();
-
-  size_t allocCurrentAttributeIndex();
-  size_t nCurrentAttribute() const;
-  size_t allocElementDefinitionIndex();
-  size_t nElementDefinition() const;
-  size_t allocAttributeDefinitionListIndex();
-  size_t nAttributeDefinitionList() const;
-  const ElementType *documentElementType() const;
-  Boolean isBase() const;
-
-  Ptr<AttributeDefinitionList> &implicitElementAttributeDef();
-  void setImplicitElementAttributeDef(const Ptr<AttributeDefinitionList> &);
-  Ptr<AttributeDefinitionList> &implicitNotationAttributeDef();
-  void setImplicitNotationAttributeDef(const Ptr<AttributeDefinitionList> &);
-private:
-  Dtd(const Dtd &);		// undefined
-  void operator=(const Dtd &);	// undefined
-  NamedResourceTable<Entity> generalEntityTable_;
-  NamedResourceTable<Entity> parameterEntityTable_;
-  ConstPtr<Entity> defaultEntity_;
-  ConstPtr<StringResource<Char> > name_;
-  NamedTable<ElementType> elementTypeTable_;
-  NamedTable<ElementType> undefinedElementTypeTable_;
-  NamedTable<RankStem> rankStemTable_;
-  NamedTable<ShortReferenceMap> shortReferenceMapTable_;
-  NamedResourceTable<Notation> notationTable_;
-  size_t nCurrentAttribute_;
-  size_t nElementDefinition_;
-  size_t nAttributeDefinitionList_;
-  size_t nElementType_;
-  ElementType *documentElementType_;
-  Vector<StringC> shortrefs_;
-  HashTable<StringC,int> shortrefTable_;
-  Boolean isBase_;
-  Ptr<AttributeDefinitionList> implicitElementAttributeDef_;
-  Ptr<AttributeDefinitionList> implicitNotationAttributeDef_;
-};
-
-inline
-ConstPtr<Entity> Dtd::lookupEntity(Boolean isParameter, const StringC &name)
-  const
-{
-  return (isParameter
-	  ? &parameterEntityTable_
-	  : &generalEntityTable_)->lookupConst(name);
-}
-
-inline
-const Entity *Dtd::lookupEntityTemp(Boolean isParameter, const StringC &name)
-  const
-{
-  return (isParameter
-	  ? &parameterEntityTable_
-	  : &generalEntityTable_)->lookupTemp(name);
-}
-
-inline
-Ptr<Entity> Dtd::lookupEntity(Boolean isParameter, const StringC &name)
-{
-  return (isParameter
-	  ? &parameterEntityTable_
-	  : &generalEntityTable_)->lookup(name);
-}
-
-inline
-Ptr<Entity>
-Dtd::insertEntity(const Ptr<Entity> &entity, Boolean replace)
-{
-  return (entity->declType() == Entity::parameterEntity
-	  ? &parameterEntityTable_
-	  : &generalEntityTable_)->insert(entity, replace);
-}
-
-inline
-Ptr<Entity> Dtd::removeEntity(Boolean isParameter, const StringC &name)
-{
-  return (isParameter
-	  ? &parameterEntityTable_
-	  : &generalEntityTable_)->remove(name);
-}
-
-inline
-Dtd::ConstEntityIter Dtd::generalEntityIter() const
-{
-  // Avoid use of typedef to work around MSVC 2.0 bug.
-  return ConstNamedResourceTableIter<Entity>(generalEntityTable_);
-}
-
-inline
-Dtd::EntityIter Dtd::generalEntityIter()
-{
-  // Avoid use of typedef to work around MSVC 2.0 bug.
-  return NamedResourceTableIter<Entity>(generalEntityTable_);
-}
-
-inline
-Dtd::ConstEntityIter Dtd::parameterEntityIter() const
-{
-  // Avoid use of typedef to work around MSVC 2.0 bug.
-  return ConstNamedResourceTableIter<Entity>(parameterEntityTable_);
-}
-
-inline
-Dtd::EntityIter Dtd::parameterEntityIter()
-{
-  // Avoid use of typedef to work around MSVC 2.0 bug.
-  return NamedResourceTableIter<Entity>(parameterEntityTable_);
-}
-
-inline
-ConstPtr<Entity> Dtd::defaultEntity() const
-{
-  return defaultEntity_;
-}
-
-inline
-const Entity *Dtd::defaultEntityTemp() const
-{
-  return defaultEntity_.pointer();
-}
-
-inline
-const ConstPtr<StringResource<Char> > &Dtd::namePointer() const
-{
-  return name_;
-}
-
-inline
-const StringC &Dtd::name() const
-{
-  return *name_;
-}
-
-inline
-size_t Dtd::allocCurrentAttributeIndex()
-{
-  return nCurrentAttribute_++;
-}
-
-inline
-size_t Dtd::nCurrentAttribute() const
-{
-  return nCurrentAttribute_;
-}
-
-inline
-size_t Dtd::allocElementDefinitionIndex()
-{
-  return nElementDefinition_++;
-}
-
-inline
-size_t Dtd::nElementDefinition() const
-{
-  return nElementDefinition_;
-}
-
-inline
-size_t Dtd::allocAttributeDefinitionListIndex()
-{
-  return nAttributeDefinitionList_++;
-}
-
-inline
-size_t Dtd::nAttributeDefinitionList() const
-{
-  return nAttributeDefinitionList_;
-}
-
-inline
-const ElementType *Dtd::lookupElementType(const StringC &name) const
-{
-  const ElementType *e = elementTypeTable_.lookup(name);
-  if (e)
-    return e;
-  else
-    return undefinedElementTypeTable_.lookup(name);
-}
-
-inline
-ElementType *Dtd::lookupElementType(const StringC &name)
-{
-  ElementType *e = elementTypeTable_.lookup(name);
-  if (e)
-    return e;
-  else
-    return undefinedElementTypeTable_.lookup(name);
-}
-
-inline
-ElementType *Dtd::insertElementType(ElementType *e)
-{
-  return elementTypeTable_.insert(e);
-}
-
-inline
-ElementType *Dtd::insertUndefinedElementType(ElementType *e)
-{
-  return undefinedElementTypeTable_.insert(e);
-}
-
-inline
-Dtd::ElementTypeIter Dtd::elementTypeIter()
-{
-  // Avoid use of typedef to work around MSVC 2.0 bug.
-  return NamedTableIter<ElementType>(elementTypeTable_);
-}
-
-inline
-Dtd::ConstElementTypeIter Dtd::elementTypeIter() const
-{
-  // Avoid use of typedef to work around MSVC 2.0 bug.
-  return ConstNamedTableIter<ElementType>(elementTypeTable_);
-}
-
-inline
-ElementType *Dtd::removeElementType(const StringC &name)
-{
-  return elementTypeTable_.remove(name);
-}
-
-inline
-size_t Dtd::nElementTypeIndex() const
-{
-  // index 0 is reserved for #pcdata
-  return 1 + nElementType_;
-}
-
-inline
-size_t Dtd::allocElementTypeIndex()
-{
-  return 1 + nElementType_++;
-}
-
-inline
-const RankStem *Dtd::lookupRankStem(const StringC &name) const
-{
-  return rankStemTable_.lookup(name);
-}
-
-inline
-RankStem *Dtd::lookupRankStem(const StringC &name)
-{
-  return rankStemTable_.lookup(name);
-}
-
-inline
-RankStem *Dtd::insertRankStem(RankStem *e)
-{
-  return rankStemTable_.insert(e);
-}
-
-inline
-size_t Dtd::nRankStem() const
-{
-  return rankStemTable_.count();
-}
-
-inline
-ConstPtr<Notation> Dtd::lookupNotation(const StringC &name) const
-{
-  return notationTable_.lookupConst(name);
-}
-
-inline
-const Notation *Dtd::lookupNotationTemp(const StringC &name) const
-{
-  return notationTable_.lookupTemp(name);
-}
-
-inline
-Ptr<Notation> Dtd::lookupNotation(const StringC &name)
-{
-  return notationTable_.lookup(name);
-}
-
-inline
-Ptr<Notation> Dtd::insertNotation(const Ptr<Notation> &nt)
-{
-  return notationTable_.insert(nt);
-}
-
-inline
-Dtd::ConstNotationIter Dtd::notationIter() const
-{
-  // Avoid use of typedef to work around MSVC 2.0 bug.
-  return ConstNamedResourceTableIter<Notation>(notationTable_);
-}
-
-inline
-Dtd::NotationIter Dtd::notationIter()
-{
-  // Avoid use of typedef to work around MSVC 2.0 bug.
-  return NamedResourceTableIter<Notation>(notationTable_);
-}
-
-inline
-Ptr<Notation> Dtd::removeNotation(const StringC &name)
-{
-  return notationTable_.remove(name);
-}
-
-inline
-const ElementType *Dtd::documentElementType() const
-{
-  return documentElementType_;
-}
-
-inline
-const ShortReferenceMap *Dtd::lookupShortReferenceMap(const StringC &name) const
-{
-  return shortReferenceMapTable_.lookup(name);
-}
-
-inline
-ShortReferenceMap *Dtd::lookupShortReferenceMap(const StringC &name)
-{
-  return shortReferenceMapTable_.lookup(name);
-}
-
-inline
-ShortReferenceMap *Dtd::insertShortReferenceMap(ShortReferenceMap *map)
-{
-  return shortReferenceMapTable_.insert(map);
-}
-
-inline
-Dtd::ShortReferenceMapIter Dtd::shortReferenceMapIter()
-{
-  // Avoid use of typedef to work around MSVC 2.0 bug.
-  return NamedTableIter<ShortReferenceMap>(shortReferenceMapTable_);
-}
-
-inline
-Boolean Dtd::isBase() const
-{
-  return isBase_;
-}
-
-inline
-size_t Dtd::nShortref() const
-{
-  return shortrefs_.size();
-}
-
-inline
-const StringC &Dtd::shortref(size_t i) const
-{
-  return shortrefs_[i];
-}
-
-inline
-Ptr<AttributeDefinitionList> &Dtd::implicitElementAttributeDef()
-{
-  return implicitElementAttributeDef_;
-}
-
-inline
-void Dtd::setImplicitElementAttributeDef(const Ptr<AttributeDefinitionList> &def)
-{
-  implicitElementAttributeDef_ = def;
-}
-
-inline
-Ptr<AttributeDefinitionList> &Dtd::implicitNotationAttributeDef()
-{
-  return implicitNotationAttributeDef_;
-}
-
-inline
-void Dtd::setImplicitNotationAttributeDef(const Ptr<AttributeDefinitionList> &def)
-{
-  implicitNotationAttributeDef_ = def;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Dtd_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/EUCJPCodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef EUCJPCodingSystem_INCLUDED
-#define EUCJPCodingSystem_INCLUDED 1
-
-#include "CodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API EUCJPCodingSystem : public CodingSystem {
-public:
-  Decoder *makeDecoder() const;
-  Encoder *makeEncoder() const;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not EUCJPCodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ElementType.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,303 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ElementType_INCLUDED
-#define ElementType_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <stddef.h>
-#include "Boolean.h"
-#include "Vector.h"
-#include "Owner.h"
-#include "Location.h"
-#include "Ptr.h"
-#include "Named.h"
-#include "Vector.h"
-#include "Attributed.h"
-#include "Mode.h"
-#include "ContentToken.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class ElementType;
-class ShortReferenceMap;
-class RankStem;
-
-class SP_API ElementDefinition : public Resource {
-public:
-  enum DeclaredContent { modelGroup, any, cdata, rcdata, empty };
-  enum OmitFlags { omitStart = 01, omitEnd = 02, omitSpec = 04 };
-  enum { undefinedIndex = -1 };
-  ElementDefinition(const Location &location,
-		    size_t index,
-		    unsigned char omitFlags,
-		    DeclaredContent declaredContent);
-  ElementDefinition(const Location &location,
-		    size_t index,
-		    unsigned char omitFlags,
-		    DeclaredContent declaredContent,
-		    Owner<CompiledModelGroup> &modelGroup);
-  const CompiledModelGroup *compiledModelGroup() const;
-  DeclaredContent declaredContent() const;
-  // Was the omitted tag minimization specified?
-  Boolean omittedTagSpec() const;
-  Boolean canOmitStartTag() const;
-  Boolean canOmitEndTag() const;
-  size_t nRankStems() const;
-  const RankStem *rankStem(size_t i) const;
-  const StringC &rankSuffix() const;
-  size_t nInclusions() const;
-  const ElementType *inclusion(size_t) const;
-  size_t nExclusions() const;
-  const ElementType *exclusion(size_t) const;
-  Boolean undefined() const;
-  void setInclusions(Vector<const ElementType *> &inclusions);
-  void setExclusions(Vector<const ElementType *> &exclusions);
-  void setRank(StringC &suffix, Vector<const RankStem *> &rankStems);
-  Mode mode(Boolean netEnabled) const;
-  const Location &location() const;
-private:
-  ElementDefinition(const ElementDefinition &);	// undefined
-  void operator=(const ElementDefinition &);	// undefined
-  void computeMode();
-
-  Location location_;
-  size_t index_;
-  unsigned char omitFlags_;
-  DeclaredContent declaredContent_;
-  Owner<CompiledModelGroup> modelGroup_;
-  Vector<const ElementType *> inclusions_;
-  Vector<const ElementType *> exclusions_;
-  // rankStems_ contains all the rank stems in the ranked group in this
-  // definition.
-  Vector<const RankStem *> rankStems_;
-  StringC rankSuffix_;
-  Mode mode_;
-  Mode netMode_;
-};
-
-class SP_API RankStem : public Named {
-public:
-  RankStem(const StringC &, size_t);
-  size_t index() const;
-  void addDefinition(const ConstPtr<ElementDefinition> &);
-  size_t nDefinitions() const;
-  const ElementDefinition *definition(size_t) const;
-private:
-  RankStem(const RankStem &);	// undefined
-  void operator=(const RankStem &); // undefined
-  size_t index_;
-  Vector<ConstPtr<ElementDefinition> > def_;
-};
-
-class SP_API ElementType : public Named, public Attributed {
-public:
-  ElementType(const StringC &, size_t);
-  void setElementDefinition(const ConstPtr<ElementDefinition> &,
-			    size_t defIndex);
-  void setMap(const ShortReferenceMap *);
-  void setRankStem(RankStem *);
-  Boolean undefined() const;
-  const ElementDefinition *definition() const;
-  Boolean isRankedElement() const;
-  const RankStem *rankedElementRankStem() const;
-  size_t index() const;
-  const ShortReferenceMap *map() const;
-  void swap(ElementType &);
-private:
-  ElementType(const ElementType &); // undefined
-  void operator=(const ElementType &); // undefined
-  size_t index_;
-  size_t defIndex_;		// index in the group having same definition
-  ConstPtr<ElementDefinition> def_;
-  const ShortReferenceMap *map_;
-};
-
-inline
-const CompiledModelGroup *ElementDefinition::compiledModelGroup() const
-{
-  return modelGroup_.pointer();
-}
-
-inline
-ElementDefinition::DeclaredContent ElementDefinition::declaredContent() const
-{
-  return declaredContent_;
-}
-
-inline
-Boolean ElementDefinition::canOmitStartTag() const
-{
-  return (omitFlags_ & omitStart) != 0;
-}
-
-inline
-Boolean ElementDefinition::canOmitEndTag() const
-{
-  return (omitFlags_ & omitEnd) != 0;
-}
-
-inline
-Boolean ElementDefinition::omittedTagSpec() const
-{
-  return (omitFlags_ & omitSpec) != 0;
-}
-
-inline
-size_t ElementDefinition::nRankStems() const
-{
-  return rankStems_.size();
-}
-
-inline
-const StringC &ElementDefinition::rankSuffix() const
-{
-  return rankSuffix_;
-}
-
-inline
-const RankStem *ElementDefinition::rankStem(size_t i) const
-{
-  return rankStems_[i];
-}
-
-inline
-const ElementType *ElementDefinition::inclusion(size_t i) const
-{
-  return inclusions_[i];
-}
-
-inline
-size_t ElementDefinition::nInclusions() const
-{
-  return inclusions_.size();
-}
-
-inline
-const ElementType *ElementDefinition::exclusion(size_t i) const
-{
-  return exclusions_[i];
-}
-
-inline
-size_t ElementDefinition::nExclusions() const
-{
-  return exclusions_.size();
-}
-
-inline
-Boolean ElementDefinition::undefined() const
-{
-  return index_ == size_t(undefinedIndex);
-}
-
-inline
-const Location &ElementDefinition::location() const
-{
-  return location_;
-}
-
-inline
-void ElementDefinition::setInclusions(Vector<const ElementType *> &inclusions)
-{
-  inclusions.swap(inclusions_);
-}
-
-inline
-void ElementDefinition::setExclusions(Vector<const ElementType *> &exclusions)
-{
-  exclusions.swap(exclusions_);
-}
-
-inline
-void ElementDefinition::setRank(StringC &rankSuffix,
-				Vector<const RankStem *> &rankStems)
-{
-  rankStems.swap(rankStems_);
-  rankSuffix.swap(rankSuffix_);
-}
-
-inline
-Boolean ElementType::undefined() const
-{
-  return def_->undefined();
-}
-
-inline
-Boolean ElementType::isRankedElement() const
-{
-  return def_->nRankStems() > 0;
-}
-
-inline
-const ElementDefinition *ElementType::definition() const
-{
-  return def_.pointer();
-}
-
-inline
-void ElementType::setElementDefinition(const ConstPtr<ElementDefinition> &def,
-				       size_t defIndex)
-{
-  def_ = def;
-  defIndex_ = defIndex;
-}
-
-inline
-size_t ElementType::index() const
-{
-  return index_;
-}
-
-inline
-const RankStem *ElementType::rankedElementRankStem() const
-{
-  return def_->rankStem(defIndex_);
-}
-
-inline
-void ElementType::setMap(const ShortReferenceMap *map)
-{
-  map_ = map;
-}
-
-inline
-const ShortReferenceMap *ElementType::map() const
-{
-  return map_;
-}
-
-inline 
-size_t RankStem::index() const
-{
-  return index_;
-}
-
-inline
-size_t RankStem::nDefinitions() const
-{
-  return def_.size();
-}
-
-inline
-const ElementDefinition *RankStem::definition(size_t i) const
-{
-  return def_[i].pointer();
-}
-
-inline
-Mode ElementDefinition::mode(Boolean netEnabled) const
-{
-  return netEnabled ? netMode_ : mode_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ElementType_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Entity.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,337 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Entity_INCLUDED
-#define Entity_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "StringC.h"
-#include "NamedResource.h"
-#include "Location.h"
-#include "Owner.h"
-#include "Attribute.h"
-#include "ExternalId.h"
-#include "Text.h"
-#include "SubstTable.h"
-#include "StringResource.h"
-#include "Allocator.h"
-#include "EntityDecl.h"
-#include "Markup.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Messenger;
-class InputSource;
-class EntityOrigin;
-class ParserState;
-class ExternalEntity;
-class ExternalDataEntity;
-class SubdocEntity;
-class InternalEntity;
-class Notation;
-
-class Entity : public EntityDecl {
-public:
-  Entity(const StringC &name, DeclType declType, DataType dataType,
-	 const Location &defLocation);
-  // reference in a literal
-  virtual void litReference(Text &, ParserState &,
-			    const Ptr<EntityOrigin> &,
-			    Boolean squeezeSpaces)
-    const;
-  // reference in a declaration
-  virtual void declReference(ParserState &,
-			     const Ptr<EntityOrigin> &)
-    const;
-  // reference in a declaration subset
-  virtual void dsReference(ParserState &,
-			   const Ptr<EntityOrigin> &)
-    const;
-  // reference in content
-  virtual void contentReference(ParserState &,
-				const Ptr<EntityOrigin> &)
-    const;
-  // reference in rcdata
-  virtual void rcdataReference(ParserState &,
-			       const Ptr<EntityOrigin> &)
-    const;
-  // for entity name attribute checking
-  virtual Boolean isDataOrSubdoc() const;
-  // for determining whether we need to validate as character data
-  virtual Boolean isCharacterData() const;
-  virtual const ExternalDataEntity *asExternalDataEntity() const;
-  virtual const SubdocEntity *asSubdocEntity() const;
-  virtual const InternalEntity *asInternalEntity() const;
-  virtual const ExternalEntity *asExternalEntity() const;
-  // needed for default entity
-  virtual Entity *copy() const = 0;
-  virtual void generateSystemId(ParserState &);
-  void setUsed();
-  Boolean used() const;
-  void setDefaulted();
-  Boolean defaulted() const;
-protected:
-  static void checkEntlvl(ParserState &);
-  Boolean checkNotOpen(ParserState &) const;
-private:
-  virtual void normalReference(ParserState &,
-			       const Ptr<EntityOrigin> &,
-			       Boolean generateEvent) const = 0;
-  PackedBoolean used_;
-  PackedBoolean defaulted_;
-};
-
-class InternalEntity : public Entity {
-public:
-  InternalEntity(const StringC &, DeclType declType, DataType dataType,
-		 const Location &, Text &);
-  const StringC &string() const;
-  const Text &text() const;
-  const InternalEntity *asInternalEntity() const;
-protected:
-  Text text_;
-};
-
-class PiEntity : public InternalEntity {
-public:
-  PiEntity(const StringC &, DeclType, const Location &, Text &);
-  void litReference(Text &, ParserState &,
-		    const Ptr<EntityOrigin> &,
-		    Boolean) const;
-  void normalReference(ParserState &,
-		       const Ptr<EntityOrigin> &,
-		       Boolean) const;
-  void declReference(ParserState &,
-		     const Ptr<EntityOrigin> &) const;
-  void rcdataReference(ParserState &,
-		       const Ptr<EntityOrigin> &) const;
-  Entity *copy() const;
-};
-
-class InternalDataEntity : public InternalEntity {
-public:
-  InternalDataEntity(const StringC &, DataType, const Location &, Text &);
-  void declReference(ParserState &,
-		     const Ptr<EntityOrigin> &) const;
-  Boolean isDataOrSubdoc() const;
-};
-
-class InternalCdataEntity : public InternalDataEntity {
-public:
-  InternalCdataEntity(const StringC &, const Location &, Text &);
-  void normalReference(ParserState &,
-		       const Ptr<EntityOrigin> &,
-		       Boolean) const;
-  void litReference(Text &, ParserState &,
-		    const Ptr<EntityOrigin> &,
-		    Boolean) const;
-  Entity *copy() const;
-  Boolean isCharacterData() const;
-};
-
-class InternalSdataEntity : public InternalDataEntity {
-public:
-  InternalSdataEntity(const StringC &, const Location &, Text &);
-  void normalReference(ParserState &,
-		       const Ptr<EntityOrigin> &,
-		       Boolean) const;
-  void litReference(Text &, ParserState &,
-		    const Ptr<EntityOrigin> &,
-		    Boolean) const;
-  Entity *copy() const;
-  Boolean isCharacterData() const;
-};
-
-class InternalTextEntity : public InternalEntity {
-public:
-  enum Bracketed {
-    none,
-    starttag,
-    endtag,
-    ms,
-    md
-    };
-  InternalTextEntity(const StringC &, DeclType, const Location &, Text &,
-		     Bracketed);
-  Entity *copy() const;
-private:
-  void normalReference(ParserState &,
-		       const Ptr<EntityOrigin> &,
-		       Boolean) const;
-  void litReference(Text &, ParserState &,
-		    const Ptr<EntityOrigin> &,
-		    Boolean) const;
-  Bracketed bracketed_;
-};
-
-class ExternalEntity : public Entity {
-public:
-  ExternalEntity(const StringC &, DeclType, DataType, const Location &,
-		 const ExternalId &);
-  const ExternalId &externalId() const;
-  const ExternalEntity *asExternalEntity() const;
-  void generateSystemId(ParserState &);
-  const StringC *systemIdPointer() const;
-  const StringC *effectiveSystemIdPointer() const;
-  const StringC *publicIdPointer() const;
-private:
-  ExternalId externalId_;
-};
-
-class ExternalTextEntity : public ExternalEntity {
-public:
-  ExternalTextEntity(const StringC &, DeclType, const Location &,
-		     const ExternalId &);
-  Entity *copy() const;
-private:
-  void normalReference(ParserState &,
-		       const Ptr<EntityOrigin> &,
-		       Boolean) const;
-  void litReference(Text &, ParserState &,
-		    const Ptr<EntityOrigin> &,
-		    Boolean) const;
-};
-
-class ExternalNonTextEntity : public ExternalEntity {
-public:
-  ExternalNonTextEntity(const StringC &, DataType,
-			const Location &, const ExternalId &);
-  Boolean isDataOrSubdoc() const;
-  void litReference(Text &, ParserState &,
-		    const Ptr<EntityOrigin> &,
-		    Boolean) const;
-  void rcdataReference(ParserState &,
-		       const Ptr<EntityOrigin> &) const;
-  void normalReference(ParserState &,
-		       const Ptr<EntityOrigin> &,
-		       Boolean) const;
-  Boolean isCharacterData() const;
-};
-
-class ExternalDataEntity : public ExternalNonTextEntity {
-public:
-  ExternalDataEntity(const StringC &, DataType, const Location &,
-		     const ExternalId &, const ConstPtr<Notation> &,
-		     AttributeList &);
-  const AttributeList &attributes() const;
-  const Notation *notation() const;
-  const ExternalDataEntity *asExternalDataEntity() const;
-  Entity *copy() const;
-  void contentReference(ParserState &,
-			const Ptr<EntityOrigin> &) const;
-  void setNotation(const ConstPtr<Notation>  &, AttributeList &);
-private:
-  ConstPtr<Notation> notation_;
-  AttributeList attributes_;
-};
-
-class SubdocEntity : public ExternalNonTextEntity {
-public:
-  SubdocEntity(const StringC &, const Location &, const ExternalId &);
-  const SubdocEntity *asSubdocEntity() const;
-  Entity *copy() const;
-  void contentReference(ParserState &,
-			const Ptr<EntityOrigin> &) const;
-private:
-};
-
-class IgnoredEntity : public Entity {
-public:
-  IgnoredEntity(const StringC &, DeclType declType);
-  Entity *copy() const;
-  void litReference(Text &, ParserState &,
-		    const Ptr<EntityOrigin> &,
-		    Boolean squeezeSpaces) const;
-  void declReference(ParserState &,
-		     const Ptr<EntityOrigin> &) const;
-private:
-  void normalReference(ParserState &,
-		       const Ptr<EntityOrigin> &,
-		       Boolean generateEvent) const;
-};
-
-class SP_API EntityOrigin : public InputSourceOrigin {
-public:
-  static EntityOrigin *make(Allocator &, const ConstPtr<Entity> &);
-  static EntityOrigin *make(Allocator &,
-			    const ConstPtr<Entity> &,
-			    const Location &refLocation);
-  static EntityOrigin *make(Allocator &,
-			    const ConstPtr<Entity> &,
-			    const Location &refLocation,
-			    Index refLength,
-			    Owner<Markup> &markup);
-  static EntityOrigin *make(const ConstPtr<Entity> &,
-			    const Location &refLocation,
-			    Index refLength,
-			    Owner<Markup> &markup);
-  static EntityOrigin *make(const ConstPtr<Entity> &,
-			    const Location &refLocation);
-  static const size_t allocSize;
-};
-
-inline
-Boolean Entity::used() const
-{
-  return used_;
-}
-
-inline
-void Entity::setUsed()
-{
-  used_ = 1;
-}
-
-inline
-Boolean Entity::defaulted() const
-{
-  return defaulted_;
-}
-
-inline
-void Entity::setDefaulted()
-{
-  defaulted_ = 1;
-}
-
-inline
-const StringC &InternalEntity::string() const
-{
-  return text_.string();
-}
-
-inline
-const Text &InternalEntity::text() const
-{
-  return text_;
-}
-
-inline
-const ExternalId &ExternalEntity::externalId() const
-{
-  return externalId_;
-}
-
-inline
-const AttributeList &ExternalDataEntity::attributes() const
-{
-  return attributes_;
-}
-
-inline
-const Notation *ExternalDataEntity::notation() const
-{
-  return notation_.pointer();
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Entity_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/EntityApp.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef EntityApp_INCLUDED
-#define EntityApp_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "CmdLineApp.h"
-#include "CharsetInfo.h"
-#include "Boolean.h"
-#include "ExtendEntityManager.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API EntityApp : public CmdLineApp {
-public:
-  EntityApp(const char *requiredInternalCode = 0);
-  void processOption(AppChar opt, const AppChar *arg);
-  virtual int processSysid(const StringC &) = 0;
-  int processArguments(int argc, AppChar **files);
-  Boolean makeSystemId(int nFiles, AppChar *const *files, StringC &result);
-  Ptr<ExtendEntityManager> &entityManager();
-protected:
-  void clearEntityManager();
-private:
-  Vector<const AppChar *> searchDirs_;
-  Vector<const AppChar *> catalogSysids_;
-  Boolean mapCatalogDocument_;
-  Ptr<ExtendEntityManager> entityManager_;
-};
-
-inline
-void EntityApp::clearEntityManager()
-{
-  resetCodingSystemKit();
-  entityManager_.clear();
-}
-    
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not EntityApp_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/EntityCatalog.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-#ifndef EntityCatalog_INCLUDED
-#define EntityCatalog_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "StringC.h"
-#include "Resource.h"
-#include "SubstTable.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Messenger;
-class CharsetInfo;
-class EntityDecl;
-
-class SP_API EntityCatalog : public Resource {
-public:
-  class SP_API Syntax {
-  public:
-    virtual Boolean namecaseGeneral() const = 0;
-    virtual Boolean namecaseEntity() const = 0;
-    virtual const SubstTable<Char> &upperSubstTable() const = 0;
-    virtual const StringC &peroDelim() const = 0;
-  };
-  virtual ~EntityCatalog();
-  virtual Boolean sgmlDecl(const CharsetInfo &,
-			   Messenger &,
-			   StringC &) const;
-  virtual Boolean lookup(const EntityDecl &,
-			 const Syntax &,
-			 const CharsetInfo &,
-			 Messenger &,
-			 StringC &) const;
-  virtual Boolean lookupPublic(const StringC &,
-			       const CharsetInfo &,
-			       Messenger &,
-			       StringC &) const;
-  // This is for a character described by a minimum literal
-  // in the SGML declaration.
-  virtual Boolean lookupChar(const StringC &,
-                             const CharsetInfo &,
-			     Messenger &,
-			     UnivChar &) const;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not EntityCatalog_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/EntityDecl.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef EntityDecl_INCLUDED
-#define EntityDecl_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "NamedResource.h"
-#include "Ptr.h"
-#include "StringResource.h"
-#include "Location.h"
-#include "types.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API EntityDecl : public NamedResource {
-public:
-  enum DeclType { generalEntity, parameterEntity, doctype, linktype,
-		  notation, sgml };
-  enum DataType { sgmlText, pi, cdata, sdata, ndata, subdoc };
-  EntityDecl(const StringC &, DeclType declType, DataType dataType,
-	     const Location &defLocation);
-  DataType dataType() const;
-  DeclType declType() const;
-  const Location &defLocation() const;
-  Boolean declInDtdIsBase() const;
-  Boolean declInActiveLpd() const;
-  const StringC *declInDtdNamePointer() const;
-  const StringC *declInLpdNamePointer() const;
-  void setDeclIn(const ConstPtr<StringResource<Char> > &dtdName,
-		 Boolean dtdIsBase,
-		 const ConstPtr<StringResource<Char> > &lpdName,
-		 Boolean lpdIsActive);
-  void setDeclIn(const ConstPtr<StringResource<Char> > &dtdName,
-		 Boolean dtdIsBase);
-  void setDefLocation(const Location &);
-  virtual const StringC *systemIdPointer() const;
-  virtual const StringC *publicIdPointer() const;
-  virtual const StringC *effectiveSystemIdPointer() const;
-private:
-  DeclType declType_;
-  DataType dataType_;
-  PackedBoolean dtdIsBase_;
-  PackedBoolean lpdIsActive_;
-  Location defLocation_;
-  ConstPtr<StringResource<Char> > dtdName_;
-  ConstPtr<StringResource<Char> > lpdName_;
-};
-
-inline
-const Location &EntityDecl::defLocation() const
-{
-  return defLocation_;
-}
-
-inline
-EntityDecl::DeclType EntityDecl::declType() const
-{
-  return declType_;
-}
-
-inline
-EntityDecl::DataType EntityDecl::dataType() const
-{
-  return dataType_;
-}
-
-inline
-const StringC *EntityDecl::declInDtdNamePointer() const
-{
-  return dtdName_.pointer();
-}
-
-inline
-const StringC *EntityDecl::declInLpdNamePointer() const
-{
-  return lpdName_.pointer();
-}
-
-inline
-Boolean EntityDecl::declInDtdIsBase() const
-{
-  return dtdIsBase_;
-}
-
-inline
-Boolean EntityDecl::declInActiveLpd() const
-{
-  return lpdIsActive_;
-}
-
-inline
-void EntityDecl::setDefLocation(const Location &loc)
-{
-  defLocation_ = loc;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not EntityDecl_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/EntityManager.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef EntityManager_INCLUDED
-#define EntityManager_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "StringC.h"
-#include "Resource.h"
-#include "EntityCatalog.h"
-#include "Ptr.h"
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Messenger;
-class InputSourceOrigin;
-class CharsetInfo;
-class InputSource;
-
-class SP_API EntityManager : public Resource {
-public:
-  enum { mayRewind = 01, maySetDocCharset = 02 };
-  virtual ~EntityManager();
-  virtual Boolean internalCharsetIsDocCharset() const = 0;
-  virtual const CharsetInfo &charset() const = 0;
-  virtual InputSource *open(const StringC &sysid,
-			    const CharsetInfo &docCharset,
-			    InputSourceOrigin *,
-			    unsigned flags,
-			    Messenger &) = 0;
-  // Make a catalog for a document or subdocument with specified
-  // system identifier.
-  // The catalog can cause the system identifier to be replaced.
-  virtual ConstPtr<EntityCatalog>
-    makeCatalog(StringC &systemId, const CharsetInfo &, Messenger &) = 0;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not EntityManager_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ErrnoMessageArg.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ErrnoMessageArg_INCLUDED
-#define ErrnoMessageArg_INCLUDED 1
-
-#include "MessageArg.h"
-#include "rtti.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API ErrnoMessageArg : public OtherMessageArg {
-  RTTI_CLASS
-public:
-  ErrnoMessageArg(int errnum) : errno_(errnum) { }
-  MessageArg *copy() const;
-  // errno might be a macro so we must use a different name
-  int errnum() const;
-private:
-  int errno_;
-};
-
-inline
-int ErrnoMessageArg::errnum() const
-{
-  return errno_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ErrnoMessageArg_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ErrorCountEventHandler.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ErrorCountEventHandler_INCLUDED
-#define ErrorCountEventHandler_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <signal.h>
-#include "Event.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API ErrorCountEventHandler : public EventHandler {
-public:
-  ErrorCountEventHandler(unsigned errorLimit = 0);
-  void setErrorLimit(unsigned maxErrors);
-  const sig_atomic_t *cancelPtr() const;
-  void cancel();
-  Boolean cancelled() const;
-  unsigned errorCount() const;
-  void message(MessageEvent *);
-  void noteMessage(const Message &);
-private:
-  unsigned maxErrors_;
-  unsigned errorCount_;
-  sig_atomic_t cancel_;
-};
-
-inline
-unsigned ErrorCountEventHandler::errorCount() const
-{
-  return errorCount_;
-}
-
-inline
-const sig_atomic_t *ErrorCountEventHandler::cancelPtr() const
-{
-  return &cancel_;
-}
-
-inline
-void ErrorCountEventHandler::cancel()
-{
-  cancel_ = 1;
-}
-
-inline
-void ErrorCountEventHandler::setErrorLimit(unsigned maxErrors)
-{
-  maxErrors_ = maxErrors;
-}
-
-inline
-Boolean ErrorCountEventHandler::cancelled() const
-{
-  return cancel_ != 0;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ErrorCountEventHandler_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Event.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1357 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Event_INCLUDED
-#define Event_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Link.h"
-#include "Allocator.h"
-#include "Location.h"
-#include "Vector.h"
-#include "Owner.h"
-#include "Boolean.h"
-#include "types.h"
-#include "Ptr.h"
-#include "StringC.h"
-#include "Notation.h"
-#include "Sd.h"
-#include "Syntax.h"
-#include "Dtd.h"
-#include "ElementType.h"
-#include "Text.h"
-#include "Lpd.h"
-#include "Message.h"
-#include "Markup.h"
-#include "ShortReferenceMap.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class EventHandler;
-
-class SP_API Event : public Link {
-public:
-  enum Type {
-    message,
-    characterData,
-    startElement,
-    endElement,
-    pi,
-    sdataEntity,
-    externalDataEntity,
-    subdocEntity,
-    nonSgmlChar,
-    appinfo,
-    startDtd,
-    endDtd,
-    startLpd,
-    endLpd,
-    endProlog,
-    sgmlDecl,
-    uselink,
-    usemap,
-    commentDecl,
-    sSep,
-    ignoredRs,
-    ignoredRe,
-    reOrigin,
-    ignoredChars,
-    markedSectionStart,
-    markedSectionEnd,
-    entityStart,
-    entityEnd,
-    notationDecl,
-    entityDecl,
-    elementDecl,
-    attlistDecl,		// not #NOTATION and not in LPD
-    attlistNotationDecl,
-    linkAttlistDecl,
-    linkDecl,
-    idLinkDecl,
-    shortrefDecl,
-    ignoredMarkup,
-    entityDefaulted,
-    sgmlDeclEntity
-    };
-  Event(Type);
-  virtual void handle(EventHandler &) = 0;
-  virtual void copyData();
-  void *operator new(size_t sz, Allocator &alloc) { return alloc.alloc(sz); }
-  void *operator new(size_t sz) { return Allocator::allocSimple(sz); }
-  void operator delete(void *p) { Allocator::free(p); }
-  Type type() const;
-private:
-  Event(const Event &);		// undefined
-  void operator=(const Event &); // undefined
-  Type type_;
-};
-
-class LocatedEvent : public Event {
-public:
-  LocatedEvent(Type type, const Location &);
-  const Location &location() const;
-private:
-  LocatedEvent(const LocatedEvent &); // undefined
-  void operator=(const LocatedEvent &);	// undefined
-  Location location_;
-};
-
-class MarkupEvent : public LocatedEvent {
-public:
-  MarkupEvent(Type type);
-  MarkupEvent(Type type, const Location &, Markup *);
-  const Markup &markup() const;
-private:
-  MarkupEvent(const MarkupEvent &); // undefined
-  void operator=(const MarkupEvent &);	// undefined
-  Markup markup_;
-};
-
-class SP_API MessageEvent : public Event {
-public:
-  MessageEvent(Message &);
-  MessageEvent(const Message &);
-  const Message &message() const;
-  void handle(EventHandler &);
-private:
-  MessageEvent(const MessageEvent &); // undefined
-  void operator=(const MessageEvent &);	// undefined
-  Message message_;
-};
-
-class AttributeList;
-
-class StartElementEvent : public LocatedEvent {
-public:
-  StartElementEvent(const ElementType *,
-		    const ConstPtr<Dtd> &,
-		    AttributeList *,
-		    const Location &,
-		    Markup *);
-  ~StartElementEvent();
-  void handle(EventHandler &);
-  Boolean mustOmitEnd() const;
-  void setIncluded();
-  Boolean included() const;
-  const StringC &name() const;
-  const ElementType *elementType() const;
-  const Markup *markupPtr() const;
-  const AttributeList &attributes() const;
-  void copyData();
-private:
-  StartElementEvent(const StartElementEvent &);	// undefined
-  void operator=(const StartElementEvent &);	// undefined
-  const ElementType *elementType_;
-  ConstPtr<Dtd> dtd_;
-  PackedBoolean included_;
-  PackedBoolean copied_;	// has copyData() been called
-  Markup *markup_;
-  AttributeList *attributes_;
-};
-
-class EndElementEvent : public LocatedEvent {
-public:
-  EndElementEvent(const ElementType *,
-		  const ConstPtr<Dtd> &,
-		  const Location &,
-		  Markup *);
-  ~EndElementEvent();
-  void handle(EventHandler &);
-  void setIncluded();
-  Boolean included() const;
-  const StringC &name() const;
-  const ElementType *elementType() const;
-  const Markup *markupPtr() const;
-  void copyData();
-private:
-  EndElementEvent(const EndElementEvent &); // undefined
-  void operator=(const EndElementEvent &);  // undefined
-  const ElementType *elementType_;
-  ConstPtr<Dtd> dtd_;
-  PackedBoolean included_;
-  PackedBoolean copied_;	// has copyData() been called
-  Markup *markup_;
-};
-
-class DataEvent : public LocatedEvent {
-public:
-  DataEvent(Type, const Char *, size_t, const Location &);
-  void handle(EventHandler &);
-  const Char *data() const;
-  size_t dataLength() const;
-  virtual Boolean isRe(unsigned long &serial) const;
-  virtual const Entity *entity() const;
-protected:
-  const Char *p_;
-  size_t length_;
-private:
-  DataEvent(const DataEvent &);	// undefined
-  void operator=(const DataEvent &); // undefined
-};
-
-class ImmediateDataEvent : public DataEvent {
-public:
-  ImmediateDataEvent(Type type, const Char *, size_t, const Location &,
-		     Boolean copy);
-  ~ImmediateDataEvent();
-  void copyData();
-private:
-  ImmediateDataEvent(const ImmediateDataEvent &); // undefined
-  void operator=(const ImmediateDataEvent &);	  // undefined
-  Char *alloc_;
-};
-
-class InternalDataEntity;
-
-class DataEntityEvent : public DataEvent {
-public:
-  DataEntityEvent(Type type, const InternalEntity *,
-		  const ConstPtr<Origin> &);
-  const Entity *entity() const;
-private:
-  DataEntityEvent(const DataEntityEvent &); // undefined
-  void operator=(const DataEntityEvent &);  // undefined
-};
-
-class InternalCdataEntity;
-
-class CdataEntityEvent : public DataEntityEvent {
-public:
-  CdataEntityEvent(const InternalEntity *,
-		   const ConstPtr<Origin> &);
-private:
-  CdataEntityEvent(const CdataEntityEvent &); // undefined
-  void operator=(const CdataEntityEvent &);   // undefined
-};
-
-class InternalSdataEntity;
-
-class SdataEntityEvent : public DataEntityEvent {
-public:
-  SdataEntityEvent(const InternalEntity *,
-		   const ConstPtr<Origin> &);
-  void handle(EventHandler &);
-private:
-  SdataEntityEvent(const SdataEntityEvent &); // undefined
-  void operator=(const SdataEntityEvent &);   // undefined
-};
-
-class PiEntity;
-
-class PiEvent : public LocatedEvent {
-public:
-  PiEvent(const Char *, size_t, const Location &);
-  const Char *data() const;
-  size_t dataLength() const;
-  virtual const Entity *entity() const;
-  void handle(EventHandler &);
-private:
-  PiEvent(const PiEvent &);	// undefined
-  void operator=(const PiEvent &); // undefined
-  const Char *data_;
-  size_t dataLength_;
-};
-
-class ImmediatePiEvent : public PiEvent {
-public:
-  ImmediatePiEvent(StringC &, const Location &);
-private:
-  ImmediatePiEvent(const ImmediatePiEvent &); // undefined
-  void operator=(const ImmediatePiEvent &);   // undefined
-  StringC string_;
-};
-
-class PiEntityEvent : public PiEvent {
-public:
-  PiEntityEvent(const PiEntity *entity,
-		const ConstPtr<Origin> &origin);
-  const Entity *entity() const;
-private:
-  PiEntityEvent(const PiEntityEvent &);	// undefined
-  void operator=(const PiEntityEvent &); // undefined
-};
-
-class ExternalNonTextEntity;
-class ExternalDataEntity;
-class SubdocEntity;
-
-class ExternalEntityEvent : public Event {
-public:
-  ExternalEntityEvent(Type type,
-		      const ConstPtr<EntityOrigin> &);
-  const ConstPtr<EntityOrigin> &entityOrigin() const;
-  const Location &location() const;
-private:
-  ExternalEntityEvent(const ExternalEntityEvent &); // undefined
-  void operator=(const ExternalEntityEvent &);	    // undefined
-  ConstPtr<EntityOrigin> origin_;
-};
-
-class ExternalDataEntityEvent : public ExternalEntityEvent {
-public:
-  ExternalDataEntityEvent(const ExternalDataEntity *,
-			  const ConstPtr<EntityOrigin> &);
-  void handle(EventHandler &);
-  const ExternalDataEntity *entity() const;
-private:
-  ExternalDataEntityEvent(const ExternalDataEntityEvent &); // undefined
-  void operator=(const ExternalDataEntityEvent &);	    // undefined
-  const ExternalDataEntity *dataEntity_;
-};
-
-class SubdocEntityEvent : public ExternalEntityEvent {
-public:
-  SubdocEntityEvent(const SubdocEntity *,
-		    const ConstPtr<EntityOrigin> &);
-  void handle(EventHandler &);
-  const SubdocEntity *entity() const;
-private:
-  SubdocEntityEvent(const SubdocEntityEvent &);	// undefined
-  void operator=(const SubdocEntityEvent &);	// undefined
-  const SubdocEntity *subdocEntity_;
-};
-
-class NonSgmlCharEvent : public LocatedEvent {
-public:
-  NonSgmlCharEvent(Char c, const Location &);
-  Char character() const;
-  void handle(EventHandler &);
-private:
-  NonSgmlCharEvent(const NonSgmlCharEvent &); // undefined
-  void operator=(const NonSgmlCharEvent &);   // undefined
-  Char c_;
-};
-
-class AppinfoEvent : public LocatedEvent {
-public:
-  AppinfoEvent(const Location &);
-  AppinfoEvent(const Text &, const Location &);
-  void handle(EventHandler &);
-  Boolean literal(const StringC *&) const;
-private:
-  AppinfoEvent(const AppinfoEvent &); // undefined
-  void operator=(const AppinfoEvent &);	// undefined
-  Boolean appinfoNone_;
-  Text appinfo_;
-};
-
-class UselinkEvent : public MarkupEvent {
-public:
-  UselinkEvent(const ConstPtr<Lpd> &,
-	       const LinkSet *,
-	       Boolean restore,
-	       const Location &,
-	       Markup *);
-  void handle(EventHandler &);
-  const ConstPtr<Lpd> &lpd() const;
-  const LinkSet *linkSet() const;
-  Boolean restore() const;
-private:
-  UselinkEvent(const UselinkEvent &); // undefined
-  void operator=(const UselinkEvent &);	// undefined
-  ConstPtr<Lpd> lpd_;
-  const LinkSet *linkSet_;
-  Boolean restore_;
-};
-
-class UsemapEvent : public MarkupEvent {
-public:
-  UsemapEvent(const ShortReferenceMap *,
-	      Vector<const ElementType *> &,
-	      const ConstPtr<Dtd> &,
-	      const Location &,
-	      Markup *);
-  void handle(EventHandler &);
-  const ShortReferenceMap *map() const;
-  const Vector<const ElementType *> &elements() const;
-private:
-  UsemapEvent(const UsemapEvent &); // undefined
-  void operator=(const UsemapEvent &); // undefined
-  ConstPtr<Dtd> dtd_;
-  Vector<const ElementType *> elements_;
-  const ShortReferenceMap *map_;
-};
-
-class StartSubsetEvent : public MarkupEvent {
-public:
-  StartSubsetEvent(Type,
-		   const StringC &,
-		   const ConstPtr<Entity> &entity,
-		   Boolean hasInternalSubset,
-		   const Location &,
-		   Markup *);
-  const StringC &name() const;
-  const ConstPtr<Entity> &entity() const;
-  Boolean hasInternalSubset() const;
-private:
-  StartSubsetEvent(const StartSubsetEvent &);	// undefined
-  void operator=(const StartSubsetEvent &); // undefined
-  StringC name_;
-  ConstPtr<Entity> entity_;
-  Boolean hasInternalSubset_;
-};
-
-class StartDtdEvent : public StartSubsetEvent {
-public:
-  StartDtdEvent(const StringC &,
-		const ConstPtr<Entity> &entity,
-		Boolean hasInternalSubset,
-		const Location &,
-		Markup *);
-  void handle(EventHandler &);
-private:
-  StartDtdEvent(const StartDtdEvent &);	// undefined
-  void operator=(const StartDtdEvent &); // undefined
-};
-
-class StartLpdEvent : public StartSubsetEvent {
-public:
-  StartLpdEvent(Boolean active,
-		const StringC &,
-		const ConstPtr<Entity> &entity,
-		Boolean hasInternalSubset,
-		const Location &,
-		Markup *);
-  void handle(EventHandler &);
-  Boolean active() const;
-private:
-  StartLpdEvent(const StartLpdEvent &);	// undefined
-  void operator=(const StartLpdEvent &); // undefined
-  Boolean active_;
-};
-
-class EndDtdEvent : public MarkupEvent {
-public:
-  EndDtdEvent(const ConstPtr<Dtd> &, const Location &,
-	      Markup *);
-  void handle(EventHandler &);
-  const Dtd &dtd() const;
-  const ConstPtr<Dtd> &dtdPointer() const;
-private:
-  EndDtdEvent(const EndDtdEvent &); // undefined
-  void operator=(const EndDtdEvent &); // undefined
-  ConstPtr<Dtd> dtd_;
-};
-
-class EndLpdEvent : public MarkupEvent {
-public:
-  EndLpdEvent(const ConstPtr<Lpd> &, const Location &,
-	      Markup *);
-  void handle(EventHandler &);
-  const Lpd &lpd() const;
-  const ConstPtr<Lpd> &lpdPointer() const;
-private:
-  EndLpdEvent(const EndLpdEvent &); // undefined
-  void operator=(const EndLpdEvent &); // undefined
-  ConstPtr<Lpd> lpd_;
-};
-
-class EndPrologEvent : public LocatedEvent {
-public:
-  EndPrologEvent(const ConstPtr<Dtd> &dtd,
-		 const ConstPtr<ComplexLpd> &lpd,
-		 Vector<StringC> &simpleLinkNames,
-		 Vector<AttributeList> &simpleLinkAttributes,
-		 const Location &);
-  EndPrologEvent(const ConstPtr<Dtd> &dtd,
-		 const Location &);
-  void handle(EventHandler &);
-  const Dtd &dtd() const;
-  const ConstPtr<Dtd> &dtdPointer() const;
-  const ConstPtr<ComplexLpd> &lpdPointer() const;
-  const Vector<StringC> &simpleLinkNames() const;
-  const Vector<AttributeList> &simpleLinkAttributes() const;
-private:
-  EndPrologEvent(const EndPrologEvent &); // undefined
-  void operator=(const EndPrologEvent &); // undefined
-  ConstPtr<Dtd> dtd_;
-  ConstPtr<ComplexLpd> lpd_;
-  Vector<StringC> simpleLinkNames_;
-  Vector<AttributeList> simpleLinkAttributes_;
-};
-
-class SgmlDeclEvent : public MarkupEvent {
-public:
-  // for an implied SGML declaration
-  SgmlDeclEvent(const ConstPtr<Sd> &,
-		const ConstPtr<Syntax> &syntax);
-  // for an explicit SGML declaration
-  SgmlDeclEvent(const ConstPtr<Sd> &,
-		const ConstPtr<Syntax> &syntax,
-		const ConstPtr<Syntax> &instanceSyntax,
-		const ConstPtr<Sd> &refSd,
-		const ConstPtr<Syntax> &refSyntax,
-		Index nextIndex,
-		const StringC &implySystemId,
-		const Location &,
-		Markup *);
-  void handle(EventHandler &);
-  const Sd &sd() const;
-  const ConstPtr<Sd> &sdPointer() const;
-  const Syntax &prologSyntax() const;
-  const ConstPtr<Syntax> &prologSyntaxPointer() const;
-  const Syntax &instanceSyntax() const;
-  const ConstPtr<Syntax> &instanceSyntaxPointer() const;
-  const ConstPtr<Sd> &refSdPointer() const;
-  const ConstPtr<Syntax> &refSyntaxPointer() const;
-  const StringC &implySystemId() const;
-private:
-  SgmlDeclEvent(const SgmlDeclEvent &);	// undefined
-  void operator=(const SgmlDeclEvent &); // undefined
-  ConstPtr<Sd> sd_;
-  ConstPtr<Syntax> prologSyntax_;
-  ConstPtr<Syntax> instanceSyntax_;
-  ConstPtr<Sd> refSd_;
-  ConstPtr<Syntax> refSyntax_;
-  Index nextIndex_;
-  StringC implySystemId_;
-};
-
-class CommentDeclEvent : public MarkupEvent {
-public:
-  CommentDeclEvent(const Location &, Markup *);
-  void handle(EventHandler &);
-private:
-  CommentDeclEvent(const CommentDeclEvent &); // undefined
-  void operator=(const CommentDeclEvent &);   // undefined
-};
-
-class SSepEvent : public ImmediateDataEvent {
-public:
-  SSepEvent(const Char *, size_t, const Location &, Boolean copy);
-  void handle(EventHandler &);
-private:
-  SSepEvent(const SSepEvent &);	// undefined
-  void operator=(const SSepEvent &); // undefined
-};
-
-class IgnoredRsEvent : public LocatedEvent {
-public:
-  IgnoredRsEvent(Char c, const Location &);
-  void handle(EventHandler &);
-  Char rs() const;
-private:
-  IgnoredRsEvent(const IgnoredRsEvent &); // undefined
-  void operator=(const IgnoredRsEvent &); // undefined
-  Char c_;
-};
-
-class IgnoredReEvent : public LocatedEvent {
-public:
-  IgnoredReEvent(Char c, const Location &, unsigned long serial);
-  void handle(EventHandler &);
-  Char re() const;
-  unsigned long serial() const;
-private:
-  IgnoredReEvent(const IgnoredReEvent &); // undefined
-  void operator=(const IgnoredReEvent &); // undefined
-  unsigned long serial_;
-  Char c_;
-};
-
-class ReEvent : public ImmediateDataEvent {
-public:
-  ReEvent(const Char *, const Location &, unsigned long serial);
-  Boolean isRe(unsigned long &serial) const;
-private:
-  ReEvent(const ReEvent &);	// undefined
-  void operator=(const ReEvent &); // undefined
-  unsigned long serial_;
-};
-
-class ReOriginEvent : public LocatedEvent {
-public:
-  ReOriginEvent(Char c, const Location &, unsigned long serial);
-  void handle(EventHandler &);
-  Char re() const;
-  unsigned long serial() const;
-private:
-  ReOriginEvent(const ReOriginEvent &);	// undefined
-  void operator=(const ReOriginEvent &); // undefined
-  unsigned long serial_;
-  Char c_;
-};
-
-class IgnoredCharsEvent : public ImmediateDataEvent {
-public:
-  IgnoredCharsEvent(const Char *, size_t, const Location &, Boolean copy);
-  void handle(EventHandler &);
-private:
-  IgnoredCharsEvent(const IgnoredCharsEvent &);	// undefined
-  void operator=(const IgnoredCharsEvent &);	// undefined
-};
-
-class MarkedSectionEvent : public MarkupEvent {
-public:
-  enum Status { include, rcdata, cdata, ignore }; // in priority order
-  MarkedSectionEvent(Type, Status, const Location &, Markup *);
-  Status status() const;
-private:
-  MarkedSectionEvent(const MarkedSectionEvent &); // undefined
-  void operator=(const MarkedSectionEvent &);	  // undefined
-  Status status_;
-};
-
-class MarkedSectionStartEvent : public MarkedSectionEvent {
-public:
-  MarkedSectionStartEvent(Status, const Location &, Markup *);
-  void handle(EventHandler &);
-private:
-  MarkedSectionStartEvent(const MarkedSectionStartEvent &); // undefined
-  void operator=(const MarkedSectionStartEvent &);	    // undefined
-};
-
-class MarkedSectionEndEvent : public MarkedSectionEvent {
-public:
-  MarkedSectionEndEvent(Status, const Location &, Markup *);
-  void handle(EventHandler &);
-private:
-  MarkedSectionEndEvent(const MarkedSectionEndEvent &); // undefined
-  void operator=(const MarkedSectionEndEvent &);	    // undefined
-};
-
-class EntityStartEvent : public Event {
-public:
-  EntityStartEvent(const ConstPtr<EntityOrigin> &origin);
-  void handle(EventHandler &);
-  const Entity *entity() const;
-  const ConstPtr<EntityOrigin> &entityOrigin() const;
-private:
-  EntityStartEvent(const EntityStartEvent &); // undefined
-  void operator=(const EntityStartEvent &); // undefined
-
-  ConstPtr<EntityOrigin> origin_;
-};
-
-class EntityEndEvent : public LocatedEvent {
-public:
-  EntityEndEvent(const Location &);
-  void handle(EventHandler &);
-private:
-  EntityEndEvent(const EntityEndEvent &); // undefined
-  void operator=(const EntityEndEvent &); // undefined
-};
-
-class EntityDeclEvent : public MarkupEvent {
-public:
-  EntityDeclEvent(const ConstPtr<Entity> &,
-		  Boolean ignored,
-		  const Location &,
-		  Markup *);
-  void handle(EventHandler &);
-  const Entity &entity() const;
-  const ConstPtr<Entity> &entityPointer() const;
-  Boolean ignored() const;
-  // The name of the entity will be empty if this is the default entity.
-private:
-  Boolean ignored_;
-  // This will actually point to an external entity.
-  ConstPtr<Entity> entity_;
-};
-
-class NotationDeclEvent : public MarkupEvent {
-public:
-  NotationDeclEvent(const ConstPtr<Notation> &,
-		    const Location &,
-		    Markup *);
-  void handle(EventHandler &);
-  const Notation &notation() const;
-  const ConstPtr<Notation> &notationPointer() const;
-private:
-  NotationDeclEvent(const NotationDeclEvent &);	// undefined
-  void operator=(const NotationDeclEvent &);	// undefined
-  ConstPtr<Notation> notation_;
-};
-
-class ElementDeclEvent : public MarkupEvent {
-public:
-  ElementDeclEvent(Vector<const ElementType *> &elements,
-		   const ConstPtr<Dtd> &,
-		   const Location &,
-		   Markup *);
-  void handle(EventHandler &);
-  const Vector<const ElementType *> &elements() const;
-private:
-  ElementDeclEvent(const ElementDeclEvent &); // undefined
-  void operator=(const ElementDeclEvent &);   // undefined
-  Vector<const ElementType *> elements_;
-  ConstPtr<Dtd> dtd_;
-};
-
-class AttlistDeclEvent : public MarkupEvent {
-public:
-  AttlistDeclEvent(Vector<const ElementType *> &elements,
-		   const ConstPtr<Dtd> &,
-		   const Location &,
-		   Markup *);
-  void handle(EventHandler &);
-  const Vector<const ElementType *> &elements() const;
-private:
-  AttlistDeclEvent(const AttlistDeclEvent &); // undefined
-  void operator=(const AttlistDeclEvent &);   // undefined
-  Vector<const ElementType *> elements_;
-  ConstPtr<Dtd> dtd_;
-};
-
-class AttlistNotationDeclEvent : public MarkupEvent {
-public:
-  AttlistNotationDeclEvent(Vector<ConstPtr<Notation> > &notations,
-			   const Location &,
-			   Markup *);
-  void handle(EventHandler &);
-  const Vector<ConstPtr<Notation> > &notations() const;
-private:
-  AttlistNotationDeclEvent(const AttlistNotationDeclEvent &); // undefined
-  void operator=(const AttlistDeclEvent &);		      // undefined
-  Vector<ConstPtr<Notation> > notations_;
-};
-
-class LinkAttlistDeclEvent : public MarkupEvent {
-public:
-  LinkAttlistDeclEvent(Vector<const ElementType *> &elements,
-		       const ConstPtr<Lpd> &,
-		       const Location &,
-		       Markup *);
-  void handle(EventHandler &);
-  const Vector<const ElementType *> &elements() const;
-  const Lpd &lpd() const;
-private:
-  LinkAttlistDeclEvent(const LinkAttlistDeclEvent &); // undefined
-  void operator=(const LinkAttlistDeclEvent &);   // undefined
-  Vector<const ElementType *> elements_;
-  ConstPtr<Lpd> lpd_;
-};
-
-class LinkDeclEvent : public MarkupEvent {
-public:
-  LinkDeclEvent(const LinkSet *linkSet,
-		const ConstPtr<ComplexLpd> &,
-		const Location &,
-		Markup *);
-  void handle(EventHandler &);
-  const LinkSet *linkSet() const;
-  const ComplexLpd &lpd() const;
-private:
-  LinkDeclEvent(const LinkDeclEvent &); // undefined
-  void operator=(const LinkDeclEvent &); // undefined
-  const LinkSet *linkSet_;
-  ConstPtr<ComplexLpd> lpd_;
-};
-
-class IdLinkDeclEvent : public MarkupEvent {
-public:
-  IdLinkDeclEvent(const ConstPtr<ComplexLpd> &,
-		  const Location &,
-		  Markup *);
-  void handle(EventHandler &);
-  const ComplexLpd &lpd() const;
-private:
-  IdLinkDeclEvent(const IdLinkDeclEvent &); // undefined
-  void operator=(const IdLinkDeclEvent &); // undefined
-  ConstPtr<ComplexLpd> lpd_;
-};
-
-class ShortrefDeclEvent : public MarkupEvent {
-public:
-  ShortrefDeclEvent(const ShortReferenceMap *,
-		    const ConstPtr<Dtd> &,
-		    const Location &,
-		    Markup *);
-  void handle(EventHandler &);
-  const ShortReferenceMap *map() const;
-private:
-  ShortrefDeclEvent(const ShortrefDeclEvent &);	// undefined
-  void operator=(const ShortrefDeclEvent &);	// undefined
-  const ShortReferenceMap *map_;
-  ConstPtr<Dtd> dtd_;
-};
-
-class IgnoredMarkupEvent : public MarkupEvent {
-public:
-  IgnoredMarkupEvent(const Location &, Markup *);
-  void handle(EventHandler &);
-private:
-  IgnoredMarkupEvent(const IgnoredMarkupEvent &); // undefined
-  void operator=(const IgnoredMarkupEvent &);	  // undefined
-};
-
-// This is for an undeclared entity whose first occurrence
-// is in the instance, when there is a default entity:
-// ie it extends the namespace of general entities after
-// the end of the prolog.
-
-class EntityDefaultedEvent : public LocatedEvent {
-public:
-  EntityDefaultedEvent(const ConstPtr<Entity> &,
-		       const Location &);
-  void handle(EventHandler &);
-  const Entity &entity() const;
-  const ConstPtr<Entity> &entityPointer() const;
-private:
-  EntityDefaultedEvent(const EntityDefaultedEvent &); // undefined
-  void operator=(const EntityDefaultedEvent &);	      // undefined
-  ConstPtr<Entity> entity_;
-};
-
-class SgmlDeclEntityEvent : public LocatedEvent {
-public:
-  SgmlDeclEntityEvent(const PublicId &publicId,
-		      PublicId::TextClass entityType,
-		      const StringC &effectiveSystemId,
-		      const Location &);
-  void handle(EventHandler &);
-  const PublicId &publicId() const;
-  PublicId::TextClass entityType() const;
-  const StringC &effectiveSystemId() const;
-private:
-  SgmlDeclEntityEvent(const SgmlDeclEntityEvent &); // undefined
-  void operator=(const SgmlDeclEntityEvent &);	    // undefined
-  PublicId publicId_;
-  PublicId::TextClass entityType_;
-  StringC effectiveSystemId_;
-};
-
-class SP_API EventHandler {
-public:
-  virtual ~EventHandler();
-  virtual void message(MessageEvent *) = 0;
-  virtual void data(DataEvent *);
-  virtual void startElement(StartElementEvent *);
-  virtual void endElement(EndElementEvent *);
-  virtual void pi(PiEvent *);
-  virtual void sdataEntity(SdataEntityEvent *);
-  virtual void externalDataEntity(ExternalDataEntityEvent *);
-  virtual void subdocEntity(SubdocEntityEvent *);
-  virtual void nonSgmlChar(NonSgmlCharEvent *);
-  virtual void appinfo(AppinfoEvent *);
-  virtual void uselink(UselinkEvent *);
-  virtual void usemap(UsemapEvent *);
-  virtual void startDtd(StartDtdEvent *);
-  virtual void endDtd(EndDtdEvent *);
-  virtual void startLpd(StartLpdEvent *);
-  virtual void endLpd(EndLpdEvent *);
-  virtual void endProlog(EndPrologEvent *);
-  virtual void sgmlDecl(SgmlDeclEvent *);
-  virtual void commentDecl(CommentDeclEvent *);
-  virtual void sSep(SSepEvent *);
-  virtual void ignoredRs(IgnoredRsEvent *);
-  virtual void ignoredRe(IgnoredReEvent *);
-  virtual void reOrigin(ReOriginEvent *);
-  virtual void ignoredChars(IgnoredCharsEvent *);
-  virtual void markedSectionStart(MarkedSectionStartEvent *);
-  virtual void markedSectionEnd(MarkedSectionEndEvent *);
-  virtual void entityStart(EntityStartEvent *);
-  virtual void entityEnd(EntityEndEvent *);
-  virtual void notationDecl(NotationDeclEvent *);
-  virtual void entityDecl(EntityDeclEvent *);
-  virtual void elementDecl(ElementDeclEvent *);
-  virtual void attlistDecl(AttlistDeclEvent *);
-  virtual void linkAttlistDecl(LinkAttlistDeclEvent *);
-  virtual void attlistNotationDecl(AttlistNotationDeclEvent *);
-  virtual void linkDecl(LinkDeclEvent *);
-  virtual void idLinkDecl(IdLinkDeclEvent *);
-  virtual void shortrefDecl(ShortrefDeclEvent *);
-  virtual void ignoredMarkup(IgnoredMarkupEvent *);
-  virtual void entityDefaulted(EntityDefaultedEvent *);
-  virtual void sgmlDeclEntity(SgmlDeclEntityEvent *);
-};
-
-inline
-Event::Event(Type type)
-: type_(type)
-{
-}
-
-inline
-Event::Type Event::type() const
-{
-  return type_;
-}
-
-inline
-const Location &LocatedEvent::location() const
-{
-  return location_;
-}
-
-inline
-const Markup &MarkupEvent::markup() const
-{
-  return markup_;
-}
-
-inline
-const Message &MessageEvent::message() const
-{
-  return message_;
-}
-
-inline
-const ElementType *StartElementEvent::elementType() const
-{
-  return elementType_;
-}
-
-inline
-const StringC &StartElementEvent::name() const
-{
-  return elementType_->name();
-}
-
-inline
-void StartElementEvent::setIncluded()
-{
-  included_ = 1;
-}
-
-inline
-Boolean StartElementEvent::included() const
-{
-  return included_;
-}
-
-inline
-const Markup *StartElementEvent::markupPtr() const
-{
-  return markup_;
-}
-
-inline
-const AttributeList &StartElementEvent::attributes() const
-{
-  return *attributes_;
-}
-
-inline
-Boolean StartElementEvent::mustOmitEnd() const
-{
-  return ((elementType()->definition()->declaredContent()
-	   == ElementDefinition::empty)
-	  ||  attributes_->conref());
-}
-
-inline
-const ElementType *EndElementEvent::elementType() const
-{
-  return elementType_;
-}
-
-inline
-const StringC &EndElementEvent::name() const
-{
-  return elementType_->name();
-}
-
-inline
-void EndElementEvent::setIncluded()
-{
-  included_ = 1;
-}
-
-inline
-Boolean EndElementEvent::included() const
-{
-  return included_;
-}
-
-inline
-const Markup *EndElementEvent::markupPtr() const
-{
-  return markup_;
-}
-
-inline
-const Char *DataEvent::data() const
-{
-  return p_;
-}
-
-inline
-size_t DataEvent::dataLength() const
-{
-  return length_;
-}
-
-inline
-const Char *PiEvent::data() const
-{
-  return data_;
-}
-
-inline
-size_t PiEvent::dataLength() const
-{
-  return dataLength_;
-}
-
-inline
-const ConstPtr<EntityOrigin> &
-ExternalEntityEvent::entityOrigin() const
-{
-  return origin_;
-}
-
-inline
-const Location &ExternalEntityEvent::location() const
-{
-  return origin_->parent();
-}
-
-inline
-const ExternalDataEntity *ExternalDataEntityEvent::entity() const
-{
-  return dataEntity_;
-}
-
-inline
-const SubdocEntity *SubdocEntityEvent::entity() const
-{
-  return subdocEntity_;
-}
-
-inline
-Char NonSgmlCharEvent::character() const
-{
-  return c_;
-}
-
-inline
-Boolean AppinfoEvent::literal(const StringC *&p) const
-{
-  if (appinfoNone_)
-    return 0;
-  p = &appinfo_.string();
-  return 1;
-}
-
-inline
-const ConstPtr<Lpd> &UselinkEvent::lpd() const
-{
-  return lpd_;
-}
-
-inline
-const LinkSet *UselinkEvent::linkSet() const
-{
-  return linkSet_;
-}
-
-inline
-Boolean UselinkEvent::restore() const
-{
-  return restore_;
-}
-
-inline
-const ShortReferenceMap *UsemapEvent::map() const
-{
-  return map_;
-}
-
-inline
-const StringC &StartSubsetEvent::name() const
-{
-  return name_;
-}
-
-inline
-const ConstPtr<Entity> &StartSubsetEvent::entity() const
-{
-  return entity_;
-}
-
-inline
-Boolean StartSubsetEvent::hasInternalSubset() const
-{
-  return hasInternalSubset_;
-}
-
-inline
-Boolean StartLpdEvent::active() const
-{
-  return active_;
-}
-
-inline
-const Dtd &EndDtdEvent::dtd() const
-{
-  return *dtd_;
-}
-
-inline
-const ConstPtr<Dtd> &EndDtdEvent::dtdPointer() const
-{
-  return dtd_;
-}
-
-inline
-const Lpd &EndLpdEvent::lpd() const
-{
-  return *lpd_;
-}
-
-inline
-const ConstPtr<Lpd> &EndLpdEvent::lpdPointer() const
-{
-  return lpd_;
-}
-
-inline
-const Dtd &EndPrologEvent::dtd() const
-{
-  return *dtd_;
-}
-
-inline
-const ConstPtr<Dtd> &EndPrologEvent::dtdPointer() const
-{
-  return dtd_;
-}
-
-inline
-const ConstPtr<ComplexLpd> &EndPrologEvent::lpdPointer() const
-{
-  return lpd_;
-}
-
-inline
-const Vector<StringC> &EndPrologEvent::simpleLinkNames() const
-{
-  return simpleLinkNames_;
-}
-
-inline
-const Vector<AttributeList> &EndPrologEvent::simpleLinkAttributes() const
-{
-  return simpleLinkAttributes_;
-}
-
-inline
-const Sd &SgmlDeclEvent::sd() const
-{
-  return *sd_;
-}
-
-inline
-const ConstPtr<Sd> &SgmlDeclEvent::sdPointer() const
-{
-  return sd_;
-}
-
-inline
-const ConstPtr<Sd> &SgmlDeclEvent::refSdPointer() const
-{
-  return refSd_;
-}
-
-inline
-const Syntax &SgmlDeclEvent::prologSyntax() const
-{
-  return *prologSyntax_;
-}
-
-inline
-const ConstPtr<Syntax> &SgmlDeclEvent::prologSyntaxPointer() const
-{
-  return prologSyntax_;
-}
-
-inline
-const Syntax &SgmlDeclEvent::instanceSyntax() const
-{
-  return *instanceSyntax_;
-}
-
-inline
-const ConstPtr<Syntax> &SgmlDeclEvent::instanceSyntaxPointer() const
-{
-  return instanceSyntax_;
-}
-
-inline
-const ConstPtr<Syntax> &SgmlDeclEvent::refSyntaxPointer() const
-{
-  return refSyntax_;
-}
-
-inline
-const StringC &SgmlDeclEvent::implySystemId() const
-{
-  return implySystemId_;
-}
-
-inline
-Char IgnoredRsEvent::rs() const
-{
-  return c_;
-}
-
-inline
-Char IgnoredReEvent::re() const
-{
-  return c_;
-}
-
-inline
-unsigned long IgnoredReEvent::serial() const
-{
-  return serial_;
-}
-
-inline
-Char ReOriginEvent::re() const
-{
-  return c_;
-}
-
-inline
-unsigned long ReOriginEvent::serial() const
-{
-  return serial_;
-}
-
-inline
-MarkedSectionEvent::Status MarkedSectionEvent::status() const
-{
-  return status_;
-}
-
-inline
-const Entity *EntityStartEvent::entity() const
-{
-  return origin_->entity();
-}
-
-inline
-const ConstPtr<EntityOrigin> &
-EntityStartEvent::entityOrigin() const
-{
-  return origin_;
-}
-
-inline
-const ConstPtr<Entity> &EntityDeclEvent::entityPointer() const
-{
-  return entity_;
-}
-
-inline
-const Entity &EntityDeclEvent::entity() const
-{
-  return *entity_;
-}
-
-inline
-Boolean EntityDeclEvent::ignored() const
-{
-  return ignored_;
-}
-
-inline
-const Notation &NotationDeclEvent::notation() const
-{
-  return *notation_;
-}
-
-inline
-const ConstPtr<Notation> &NotationDeclEvent::notationPointer() const
-{
-  return notation_;
-}
-
-inline
-const Vector<const ElementType *> &ElementDeclEvent::elements() const
-{
-  return elements_;
-}
-
-inline
-const Vector<const ElementType *> &AttlistDeclEvent::elements() const
-{
-  return elements_;
-}
-
-inline
-const Vector<const ElementType *> &LinkAttlistDeclEvent::elements() const
-{
-  return elements_;
-}
-
-inline
-const Lpd &LinkAttlistDeclEvent::lpd() const
-{
-  return *lpd_;
-}
-
-inline
-const LinkSet *LinkDeclEvent::linkSet() const
-{
-  return linkSet_;
-}
-
-inline
-const ComplexLpd &LinkDeclEvent::lpd() const
-{
-  return *lpd_;
-}
-
-inline
-const ComplexLpd &IdLinkDeclEvent::lpd() const
-{
-  return *lpd_;
-}
-
-inline
-const Vector<ConstPtr<Notation> > &
-AttlistNotationDeclEvent::notations() const
-{
-  return notations_;
-}
-
-inline
-const ShortReferenceMap *ShortrefDeclEvent::map() const
-{
-  return map_;
-}
-
-inline
-const Entity &EntityDefaultedEvent::entity() const
-{
-  return *entity_;
-}
-
-inline
-const ConstPtr<Entity> &EntityDefaultedEvent::entityPointer()
-     const
-{
-  return entity_;
-}
-
-inline
-const PublicId &SgmlDeclEntityEvent::publicId() const
-{
-  return publicId_;
-}
-
-inline
-PublicId::TextClass SgmlDeclEntityEvent::entityType() const
-{
-  return entityType_;
-}
-
-inline
-const StringC &SgmlDeclEntityEvent::effectiveSystemId() const
-{
-  return effectiveSystemId_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Event_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/EventsWanted.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef EventsWanted_INCLUDED
-#define EventsWanted_INCLUDED 1
-
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API EventsWanted {
-public:
-  EventsWanted();
-  Boolean wantInstanceMarkup() const;
-  Boolean wantCommentDecls() const; // in instance
-  Boolean wantMarkedSections() const; // in instance
-  Boolean wantPrologMarkup() const;
-  void addInstanceMarkup();
-  void addCommentDecls();
-  void addMarkedSections();
-  void addPrologMarkup();
-private:
-  PackedBoolean instanceMarkup_;
-  PackedBoolean commentDecls_;
-  PackedBoolean markedSections_;
-  PackedBoolean prologMarkup_;
-};
-
-inline
-EventsWanted::EventsWanted()
-: instanceMarkup_(0), commentDecls_(0), markedSections_(0), prologMarkup_(0)
-{
-}
-
-inline
-Boolean EventsWanted::wantInstanceMarkup() const
-{
-  return instanceMarkup_;
-}
-
-inline
-void EventsWanted::addInstanceMarkup()
-{
-  instanceMarkup_ = 1;
-  commentDecls_ = 1;
-  markedSections_ = 1;
-}
-
-inline
-Boolean EventsWanted::wantCommentDecls() const
-{
-  return commentDecls_;
-}
-
-inline
-void EventsWanted::addCommentDecls()
-{
-  commentDecls_ = 1;
-}
-
-inline
-Boolean EventsWanted::wantMarkedSections() const
-{
-  return markedSections_;
-}
-
-inline
-void EventsWanted::addMarkedSections()
-{
-  markedSections_ = 1;
-}
-
-inline
-Boolean EventsWanted::wantPrologMarkup() const
-{
-  return prologMarkup_;
-}
-
-inline
-void EventsWanted::addPrologMarkup()
-{
-  prologMarkup_ = 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not EventsWanted_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ExtendEntityManager.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ExtendEntityManager_INCLUDED
-#define ExtendEntityManager_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "EntityManager.h"
-#include "CharsetInfo.h"
-#include "types.h"
-#include "Boolean.h"
-#include "StringC.h"
-#include "types.h"
-#include "Vector.h"
-#include "Location.h"
-#include "CodingSystemKit.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class StorageManager;
-class InputCodingSystem;
-class Messenger;
-
-struct SP_API StorageObjectSpec {
-  StorageObjectSpec();
-  StorageManager *storageManager;
-  const char *codingSystemName;
-  const InputCodingSystem *codingSystem;
-  StringC specId;		// specified id
-  StringC baseId;		// id that specified id is relative to
-  enum Records {
-    find,
-    cr,
-    lf,
-    crlf,
-    asis
-    };
-  Records records;
-  PackedBoolean notrack;
-  PackedBoolean zapEof;		// zap a final Ctrl-Z
-  PackedBoolean search;
-  enum {
-    encoding,
-    bctf,
-    special
-  };
-  char codingSystemType;
-};
-
-
-struct SP_API ParsedSystemId : public Vector<StorageObjectSpec> {
-  ParsedSystemId();
-  void unparse(const CharsetInfo &resultCharset, Boolean isNdata, StringC &result) const;
-  struct SP_API Map {
-    enum Type {
-      catalogDocument,
-      catalogPublic
-    };
-    Type type;
-    StringC publicId;
-  };
-  Vector<Map> maps;
-};
-
-struct SP_API StorageObjectLocation {
-  const StorageObjectSpec *storageObjectSpec;
-  StringC actualStorageId;
-  unsigned long lineNumber;
-  unsigned long columnNumber;
-  unsigned long byteIndex;
-  unsigned long storageObjectOffset;
-};
-
-class SP_API ExtendEntityManager : public EntityManager {
-public:
-  class SP_API CatalogManager {
-  public:
-    virtual ~CatalogManager();
-    virtual ConstPtr<EntityCatalog>
-      makeCatalog(StringC &systemId,
-		  const CharsetInfo &docCharset,
-		  ExtendEntityManager *,
-		  Messenger &) const = 0;
-    virtual Boolean mapCatalog(ParsedSystemId &systemId,
-			       ExtendEntityManager *em,
-			       Messenger &mgr) const = 0;
-  };
-  // Additional flags for open.
-  enum { mayNotExist = 0100, isNdata = 0200 };
-  virtual void registerStorageManager(StorageManager *) = 0;
-  virtual void setCatalogManager(CatalogManager *) = 0;
-  virtual Boolean expandSystemId(const StringC &,
-				 const Location &,
-				 Boolean isNdata,
-				 const CharsetInfo &,
-				 const StringC *mapCatalogPublic,
-				 Messenger &,
-				 StringC &) = 0;
-  virtual Boolean mergeSystemIds(const Vector<StringC> &sysids,
-				 Boolean mapCatalogDocument,
-				 const CharsetInfo &,
-				 Messenger &mgr,
-				 StringC &) const = 0;
-  virtual Boolean parseSystemId(const StringC &str,
-				const CharsetInfo &docCharset,
-				Boolean isNdata,
-				const StorageObjectLocation *defLoc,
-				Messenger &mgr,
-				ParsedSystemId &parsedSysid) const = 0;
-  static const ParsedSystemId *externalInfoParsedSystemId(const ExternalInfo *);
-  static Boolean externalize(const ExternalInfo *,
-			     Offset,
-			     StorageObjectLocation &);
-  static ExtendEntityManager *make(StorageManager *,
-				   const InputCodingSystem *,
-				   const ConstPtr<InputCodingSystemKit> &,
-				   Boolean internalCharsetIsDocCharset);
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ExtendEntityManager_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ExternalId.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ExternalId_INCLUDED
-#define ExternalId_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Boolean.h"
-#include "StringC.h"
-#include "Text.h"
-#include "types.h"
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class CharsetInfo;
-
-class SP_API PublicId {
-public:
-  enum TextClass {
-    CAPACITY,
-    CHARSET,
-    DOCUMENT,
-    DTD,
-    ELEMENTS,
-    ENTITIES,
-    LPD,
-    NONSGML,
-    NOTATION,
-    SD,
-    SHORTREF,
-    SUBDOC,
-    SYNTAX,
-    TEXT
-  };
-  enum OwnerType {
-    ISO,
-    registered,
-    unregistered
-    };
-  PublicId();
-
-  Boolean getOwnerType(OwnerType &) const;
-  Boolean getOwner(StringC &) const;
-  Boolean getTextClass(TextClass &) const;
-  Boolean getUnavailable(Boolean &) const;
-  Boolean getDescription(StringC &) const;
-  Boolean getLanguage(StringC &) const;
-  Boolean getDesignatingSequence(StringC &) const;
-  Boolean getDisplayVersion(StringC &) const;
-  // If it's not a valid formal public identifier, return 0
-  // and set error, otherwise return 1.
-  // charset describes the character set to use for parsing the
-  // id.
-  Boolean init(Text &, const CharsetInfo &, Char space,
-	       const MessageType1 *&error);
-  const StringC &string() const;
-  const Text &text() const;
-private:
-  static Boolean nextField(Char solidus,
-			   const Char *&next,
-			   const Char *lim,
-			   const Char *&fieldStart,
-			   size_t &fieldLength);
-  static Boolean lookupTextClass(const StringC &, const CharsetInfo &,
-				 TextClass &);
-  static const char *const textClasses[];
-
-  PackedBoolean formal_;
-  OwnerType ownerType_;
-  StringC owner_;
-  TextClass textClass_;
-  PackedBoolean unavailable_;
-  StringC description_;
-  StringC languageOrDesignatingSequence_;
-  PackedBoolean haveDisplayVersion_;
-  StringC displayVersion_;
-  Text text_;
-};
-
-class SP_API ExternalId {
-public:
-  ExternalId();
-  const StringC *systemIdString() const;
-  const StringC *publicIdString() const;
-  const StringC &effectiveSystemId() const;
-  const Text *systemIdText() const;
-  const Text *publicIdText() const;
-  const PublicId *publicId() const;
-  void setSystem(Text &);
-  void setEffectiveSystem(StringC &);
-  // If it's not a valid formal public identifier, return 0
-  // and set error, otherwise return 1.
-  // charset describes the character set to use for parsing the
-  // id.
-  Boolean setPublic(Text &, const CharsetInfo &, Char space,
-		    const MessageType1 *&error);
-  void setLocation(const Location &);
-  // location of keyword
-  const Location &location() const;
-private:
-  PackedBoolean haveSystem_;
-  PackedBoolean havePublic_;
-  Text system_;
-  PublicId public_;
-  Location loc_;
-  StringC effectiveSystem_;
-};
-
-inline
-const StringC &PublicId::string() const
-{
-  return text_.string();
-}
-
-inline
-const Text &PublicId::text() const
-{
-  return text_;
-}
-
-inline
-const StringC *ExternalId::systemIdString() const
-{
-  return haveSystem_ ? &system_.string() : 0;
-}
-
-inline
-const StringC *ExternalId::publicIdString() const
-{
-  return havePublic_ ? &public_.string() : 0;
-}
-
-inline
-const Text *ExternalId::systemIdText() const
-{
-  return haveSystem_ ? &system_ : 0;
-}
-
-inline
-const Text *ExternalId::publicIdText() const
-{
-  return havePublic_ ? &public_.text() : 0;
-}
-
-inline
-const PublicId *ExternalId::publicId() const
-{
-  return havePublic_ ? &public_ : 0;
-}
-
-inline
-const Location &ExternalId::location() const
-{
-  return loc_;
-}
-
-inline
-const StringC &ExternalId::effectiveSystemId() const
-{
-  return effectiveSystem_;
-}
-
-inline
-void ExternalId::setEffectiveSystem(StringC &str)
-{
-  str.swap(effectiveSystem_);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ExternalId_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Fixed2CodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Fixed2CodingSystem_INCLUDED
-#define Fixed2CodingSystem_INCLUDED 1
-
-#include "CodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API Fixed2CodingSystem : public CodingSystem {
-public:
-  Decoder *makeDecoder() const;
-  Encoder *makeEncoder() const;
-  unsigned fixedBytesPerChar() const;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Fixed2CodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/GenericEventHandler.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-// Copyright (c) 1995, 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef GenericEventHandler_INCLUDED
-#define GenericEventHandler_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-// Must include Boolean.h before SGMLApplication.h.
-
-#include "Boolean.h"
-#include "SGMLApplication.h"
-#include "Event.h"
-#include "MessageReporter.h"
-#include "ErrorCountEventHandler.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API GenericEventHandler : public ErrorCountEventHandler {
-public:
-  GenericEventHandler(SGMLApplication &, bool generalEntities);
-  ~GenericEventHandler();
-  void message(MessageEvent *);
-  void appinfo(AppinfoEvent *);
-  void startDtd(StartDtdEvent *);
-  void endDtd(EndDtdEvent *);
-  void endProlog(EndPrologEvent *);
-  void entityDefaulted(EntityDefaultedEvent *);
-  void startElement(StartElementEvent *);
-  void endElement(EndElementEvent *);
-  void data(DataEvent *);
-  void pi(PiEvent *);
-  void sdataEntity(SdataEntityEvent *);
-  void externalDataEntity(ExternalDataEntityEvent *);
-  void subdocEntity(SubdocEntityEvent *);
-  void nonSgmlChar(NonSgmlCharEvent *);
-  void commentDecl(CommentDeclEvent *);
-  void ignoredChars(IgnoredCharsEvent *);
-  void markedSectionStart(MarkedSectionStartEvent *);
-  void markedSectionEnd(MarkedSectionEndEvent *);
-  void *allocate(size_t);
-  void freeAll();
-  void freeAll1();
-
-  struct Block {
-    Block *next;
-    char *mem;
-    size_t size;
-  };
-  static void setString(SGMLApplication::CharString &, const StringC &);
-  static void clearString(SGMLApplication::CharString &);
-  virtual void reportMessage(const Message &msg, StringC &) = 0;
-private:
-  GenericEventHandler(const GenericEventHandler &); // undefined
-  void operator=(const GenericEventHandler &);  // undefined
-  void setLocation(SGMLApplication::Position &, const Location &);
-  void setLocation1(SGMLApplication::Position &, const Location &);
-  void setAttributes(const SGMLApplication::Attribute *&attributes,
-		     const AttributeList &attributeList);
-  void setExternalId(SGMLApplication::ExternalId &to,
-		     const ExternalId &from);
-  void setEntity(SGMLApplication::Entity &to, const Entity &from);
-  void setNotation(SGMLApplication::Notation &, const Notation &notation);
-  static void clearNotation(SGMLApplication::Notation &);
-  static void clearExternalId(SGMLApplication::ExternalId &);
-  ConstPtr<Origin> lastOrigin_;
-  SGMLApplication::OpenEntityPtr openEntityPtr_;
-  size_t firstBlockUsed_;
-  size_t firstBlockSpare_;
-  Block *freeBlocks_;
-  Block *allocBlocks_;
-  bool generalEntities_;
-  SGMLApplication *app_;
-};
-
-class SP_API MsgGenericEventHandler : public GenericEventHandler {
-public:
-  MsgGenericEventHandler(SGMLApplication &, 
-			 bool generalEntities,
-			 MessageReporter &reporter,
-			 const bool *messagesInhibitedPtr);
-  void reportMessage(const Message &msg, StringC &);
-private:
-  MsgGenericEventHandler(const MsgGenericEventHandler &); // undefined
-  void operator=(const MsgGenericEventHandler &);  // undefined
-  struct WrapReporter {
-    WrapReporter(MessageReporter *r) : reporter(r), origStream(0) {
-      origStream = reporter->releaseMessageStream();
-      reporter->setMessageStream(&strStream);
-    }
-    ~WrapReporter() {
-      if (origStream) {
-	reporter->releaseMessageStream();
-	reporter->setMessageStream(origStream);
-      }
-    }
-    MessageReporter *reporter;
-    OutputCharStream *origStream;
-    StrOutputCharStream strStream;
-  };
-  const bool *messagesInhibitedPtr_;
-  MessageReporter *reporter_;
-};
-
-inline void
-GenericEventHandler::setString(SGMLApplication::CharString &to,
-			   const StringC &from)
-{
-  to.ptr = from.data();
-  to.len = from.size();
-}
-
-inline
-void GenericEventHandler::clearString(SGMLApplication::CharString &to)
-{
-  to.len = 0;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not GenericEventHandler_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Hash.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Hash_INCLUDED
-#define Hash_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "StringC.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API Hash {
-public:
-  static unsigned long hash(const StringC &);
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Hash_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/HashTable.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef HashTable_DEF_INCLUDED
-#define HashTable_DEF_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class K, class V>
-void HashTable<K,V>::insert(const K &key, const V &value, Boolean replace)
-{
-  HashTableItem<K, V> *newItem = new HashTableItem<K, V>(key, value);
-  HashTableItem<K, V> *tem = (HashTableItem<K, V> *)table_.insert(newItem);
-  if (tem) {
-    delete newItem;
-    if (replace) {
-      tem->key = key;
-      tem->value = value;
-    }
-  }
-}
-
-template<class K, class V>
-HashTableItem<K,V>::HashTableItem(const K &k, const V &v)
-: HashTableItemBase<K>(k), value(v)
-{
-}
-
-template<class K, class V>
-HashTableItemBase<K> *HashTableItem<K,V>::copy() const
-{
-  return new HashTableItem<K, V>(*this);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not HashTable_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/HashTable.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef HashTable_INCLUDED
-#define HashTable_INCLUDED 1
-
-#include <stddef.h>
-#include "OwnerTable.h"
-#include "Hash.h"
-#include "Boolean.h"
-#include "HashTableItemBase.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class K, class V>
-class HashTableItem : public HashTableItemBase<K> {
-public:
-  HashTableItem(const K &k, const V &v);
-  HashTableItemBase<K> *copy() const;
-  V value;
-};
-
-template<class K, class V> class HashTableIter;
-
-template<class K, class V>
-class HashTable {
-public:
-  HashTable() { }
-  void insert(const K &key, const V &value, Boolean replace = 1);
-  const V *lookup(const K &key) const {
-    HashTableItem<K, V> *tem = (HashTableItem<K, V> *)table_.lookup(key);
-    return tem ? &tem->value : 0;
-  }
-  size_t count() const { return table_.count(); }
-private:
-  CopyOwnerTable<HashTableItemBase<K>, K, Hash, HashTableKeyFunction<K> > table_;
-friend class HashTableIter<K,V>;
-};
-
-template<class K, class V>
-class HashTableIter {
-public:
-  HashTableIter(const HashTable<K, V> &table) : iter_(table.table_) { }
-  Boolean next(const K *&key, const V *&value) {
-    HashTableItem<K, V> *p = (HashTableItem<K, V> *)iter_.next();
-    if (p) {
-      key = &p->key;
-      value = &p->value;
-      return 1;
-    }
-    else
-      return 0;
-  }
-private:
-  OwnerTableIter<HashTableItemBase<K>, K, Hash, HashTableKeyFunction<K> > iter_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not HashTable_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "HashTable.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/HashTableItemBase.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef HashTableItemBase_DEF_INCLUDED
-#define HashTableItemBase_DEF_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class K>
-HashTableItemBase<K>::~HashTableItemBase()
-{
-}
-
-template<class K>
-HashTableItemBase<K>::HashTableItemBase(const K &k) : key(k)
-{
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not HashTableItemBase_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/HashTableItemBase.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef HashTableItemBase_INCLUDED
-#define HashTableItemBase_INCLUDED 1
-
-// All hash tables with the same type of key share object code.
-// The cost of this is a virtual dtor in HashTableItemBase.
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class K>
-class HashTableItemBase {
-public:
-  HashTableItemBase(const K &k);
-  virtual ~HashTableItemBase();
-  virtual HashTableItemBase<K> *copy() const = 0;
-  K key;
-};
-
-template<class K>
-struct HashTableKeyFunction {
-  static inline const K &key(const HashTableItemBase<K> &obj) {
-    return obj.key;
-  }
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not HashTableItemBase_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "HashTableItemBase.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/IList.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef IList_INCLUDED
-#define IList_INCLUDED 1
-
-#include "IListBase.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T> class IListIter;
-
-// This owns the objects that are put in it.
-
-template<class T>
-class IList : private IListBase {
-public:
-  IList() { }
-  IList(T *p) : IListBase(p) { }
-  ~IList() { clear(); }
-  void append(T *p) { IListBase::append(p); }
-  void insert(T *p) { IListBase::insert(p); }
-  void remove(T *p) { IListBase::remove(p); }
-  void swap(IList<T> &list) { IListBase::swap(list); }
-  T *head() const { return (T *)IListBase::head(); }
-  T *get() { return (T *)IListBase::get(); }
-  IListBase::clear;
-  IListBase::empty;
-friend class IListIter<T>;
-private:
-  IList(const IList<T> &);	// undefined
-  IList<T> &operator=(const IList<T> &); // undefined
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not IList_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/IListBase.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef IListBase_INCLUDED
-#define IListBase_INCLUDED 1
-
-#include "Link.h"
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API IListBase {
-public:
-  IListBase();
-  IListBase(Link *);
-  void  append(Link *);
-  void insert(Link *);
-  Link *head() const;
-  Boolean empty() const;
-  Link *get();
-  void remove(Link *);
-  void swap(IListBase &);
-  void clear();
-private:
-  Link *head_;
-friend class IListIterBase;
-};
-
-inline
-IListBase::IListBase() : head_(0)
-{
-}
-
-inline
-IListBase::IListBase(Link *head) : head_(head)
-{
-}
-
-inline
-void IListBase::insert(Link *p)
-{
-  p->next_ = head_;
-  head_ = p;
-}
-
-inline
-Link *IListBase::head() const
-{
-  return head_;
-}
-
-inline
-Boolean IListBase::empty() const
-{
-  return head_ == 0;
-}
-
-inline
-Link *IListBase::get()
-{
-  Link *tem = head_;
-  head_ = head_->next_;
-  return tem;
-}
-
-inline
-void IListBase::swap(IListBase &list)
-{
-  Link *tem = head_;
-  head_ = list.head_;
-  list.head_ = tem;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not IListBase_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/IListIter.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef IListIter_INCLUDED
-#define IListIter_INCLUDED 1
-
-#include "IListIterBase.h"
-#include "IList.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class IListIter : private IListIterBase {
-public:
-  IListIter(const IList<T> &list) : IListIterBase(list) { }
-  T *cur() const { return (T *)IListIterBase::cur(); }
-  
-  IListIterBase::next;
-  IListIterBase::done;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not IListIter_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/IListIterBase.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef IListIterBase_INCLUDED
-#define IListIterBase_INCLUDED 1
-
-#include "Link.h"
-#include "IListBase.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API IListIterBase {
-public:
-  IListIterBase(const IListBase &);
-  int done() const;
-  Link *cur() const;
-  void next();
-private:
-  Link *p_;
-};
-
-inline
-IListIterBase::IListIterBase(const IListBase &list) : p_(list.head_)
-{
-}
-
-inline
-int IListIterBase::done() const
-{
-  return p_ == 0;
-}
-
-inline
-Link *IListIterBase::cur() const
-{
-  return p_;
-}
-
-inline
-void IListIterBase::next()
-{
-  p_ = p_->next_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not IListIterBase_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/IQueue.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef IQueue_DEF_INCLUDED
-#define IQueue_DEF_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-void IQueue<T>::clear()
-{
-  while (!empty())
-    delete get();
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not IQueue_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/IQueue.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef IQueue_INCLUDED
-#define IQueue_INCLUDED 1
-
-#include "Boolean.h"
-#include "Link.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class IQueueBase {
-public:
-  IQueueBase() : last_(0) { }
-  ~IQueueBase() { }
-  Boolean empty() const { return last_ == 0; }
-  Link *get() {
-    Link *tem = last_->next_;
-    if (tem == last_)
-      last_ = 0;
-    else
-      last_->next_ = tem->next_;
-    return tem;
-  }
-  void append(Link *p) {
-    if (last_) {
-      p->next_ = last_->next_;
-      last_ = last_->next_ = p;
-    }
-    else
-      last_ = p->next_ = p;
-  }
-  void swap(IQueueBase &with) {
-    Link *tem = last_;
-    last_ = with.last_;
-    with.last_ = tem;
-  }
-private:
-  Link *last_;
-
-};
-
-template<class T>
-class IQueue : private IQueueBase {
-public:
-  IQueue() { }
-  ~IQueue() { clear(); }
-  void clear();
-  T *get() { return (T *)IQueueBase::get(); }
-  void append(T *p) { IQueueBase::append(p); }
-  Boolean empty() const { return IQueueBase::empty(); }
-  void swap(IQueue<T> &to) { IQueueBase::swap(to); }
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not IQueue_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "IQueue.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ISO8859InputCodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-#pragma ident	"@(#)ISO8859InputCodingSystem.h	1.2	97/04/24 SMI"
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ISO8859InputCodingSystem_INCLUDED
-#define ISO8859InputCodingSystem_INCLUDED 1
-
-#include "TranslateInputCodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API ISO8859InputCodingSystem : public TranslateInputCodingSystem {
-public:
-  // part must be between 2 and 9
-  ISO8859InputCodingSystem(int part);
-private:
-  const Char *partMap(int);
-  static const Char maps[8][256];
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ISO8859InputCodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ISet.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ISet_DEF_INCLUDED
-#define ISet_DEF_INCLUDED 1
-
-#include <stdlib.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-ISet<T>::ISet()
-{
-}
-
-template<class T>
-ISet<T>::~ISet()
-{
-}
-
-template<class T>
-ISet<T>::ISet(const T *v, size_t n)
-{
-  for (size_t i = 0; i < n; i++)
-    add(v[i]);
-}
-
-template<class T>
-Boolean ISet<T>::contains(T x) const
-{
-  for (size_t i = 0; i < r_.size(); i++)
-    if (r_[i].max >= x)
-      return r_[i].min <= x ? 1 : 0;
-  return 0;
-}
-
-template<class T>
-void ISet<T>::addRange(T min, T max)
-{
-  size_t i;
-  if (min == 0)
-    i = 0;
-  else {
-    for (i = r_.size(); i > 0 && min - 1 <= r_[i - 1].max; i--)
-      ;
-  }
-  // r_[i - 1].max < min - 1 <= r_[i].max
-  if (i < r_.size() && (r_[i].min == 0 || max >= r_[i].min - 1)) {
-    // we can coelesce
-    if (min < r_[i].min)
-      r_[i].min = min;
-    if (max > r_[i].max) {
-      r_[i].max = max;
-      size_t j;
-      for (j = i + 1; j < r_.size() && r_[i].max >= r_[j].min - 1; j++)
-	r_[i].max = r_[j].max;
-      // get rid of i + 1 ... j - 1 
-      if (j > i + 1) {
-	for (size_t k = j; k < r_.size(); k++)
-	  r_[k - (j - i - 1)] = r_[k];
-	r_.resize(r_.size() - (j - i - 1));
-      }
-    }
-  }
-  else {
-    // r_[i - 1].max < min - 1
-    // max + 1 < r_[i].min
-    r_.resize(r_.size() + 1);
-    for (size_t j = r_.size() - 1; j > i; j--)
-      r_[j] = r_[j - 1];
-    r_[i].max = max;
-    r_[i].min = min;
-  }
-}
-
-template<class T>
-void ISet<T>::remove(T c)
-{
-  for (size_t i = 0; i < r_.size(); i++)
-    if (r_[i].max >= c) {
-      if (r_[i].min <= c) {
-	if (r_[i].min == r_[i].max) {
-	  while (++i < r_.size())
-	    r_[i - 1] = r_[i];
-	  r_.resize(r_.size() - 1);
-	}
-	else if (c == r_[i].min)
-	  r_[i].min += 1;
-	else if (c == r_[i].max)
-	  r_[i].max -= 1;
-	else {
-	  r_.resize(r_.size() + 1);
-	  // split the range
-	  // subtracting 2 is safe since we know that the length is >= 2
-	  for (size_t j = r_.size() - 2; j > i; j--)
-	    r_[j + 1] = r_[j];
-	  r_[i + 1].max = r_[i].max;
-	  r_[i + 1].min = c + 1;
-	  r_[i].max = c - 1;
-	}
-      }
-      break;
-    }
-}
-
-template<class T>
-void ISet<T>::check()
-{
-  for (size_t i = 0; i < r_.size(); i++) {
-    if (r_[i].min > r_[i].max)
-      abort();
-    // adjacent ranges must be coalesced
-    if (i > 0 && r_[i].min - 1 <= r_[i - 1].max)
-      abort();
-  }
-}
-
-template<class T>
-void ISet<T>::clear()
-{
-  r_.resize(0);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ISet_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ISet.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ISet_INCLUDED
-#define ISet_INCLUDED
-
-
-#include <stddef.h>
-#include "Vector.h"
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T> class ISetIter;
-
-template<class T>
-struct ISetRange {
-  T min;
-  T max;
-};
-  
-template<class T>
-class ISet {
-public:
-  ISet();
-  ISet(const T *, size_t);
-  ~ISet();
-  Boolean contains(T) const;
-  void remove(T);
-  void add(T x) { addRange(x, x); }
-  void addRange(T, T);
-#if 0
-  void add(const ISet<T> &);
-#endif
-  void check();
-  void operator+=(T x) { addRange(x, x); }
-  void clear();
-  Boolean isSingleton() const {
-    return r_.size() == 1 && r_[0].min == r_[0].max;
-  }
-  Boolean isEmpty() const { return r_.size() == 0; }
-  void swap(ISet<T> &x) { r_.swap(x.r_); }
-friend class ISetIter<T>;
-private:
-  Vector<ISetRange<T> > r_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ISet_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "ISet.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ISetIter.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ISetIter_INCLUDED
-#define ISetIter_INCLUDED
-
-#include <stddef.h>
-#include "ISet.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class ISetIter {
-public:
-  ISetIter(const ISet<T> &s) : p_(&s), i_(0) { }
-  // min and max are not changed if 0 is returned.
-  int next(T &min, T &max)
-  {
-    if (i_ < p_->r_.size()) {
-      min = p_->r_[i_].min;
-      max = p_->r_[i_].max;
-      i_++;
-      return 1;
-    }
-    else
-      return 0;
-  }
-       
-private:
-  const ISet<T> *p_;
-  size_t i_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* ISetIter_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/IdentityCodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef IdentityCodingSystem_INCLUDED
-#define IdentityCodingSystem_INCLUDED 1
-
-#include "CodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API IdentityCodingSystem : public CodingSystem {
-public:
-  IdentityCodingSystem();			       
-  Decoder *makeDecoder() const;
-  Encoder *makeEncoder() const;
-  Boolean isIdentity() const;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not IdentityCodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/InputSource.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,281 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef InputSource_INCLUDED
-#define InputSource_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "Link.h"
-#include "Ptr.h"
-#include "Location.h"
-#include "XcharMap.h"
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Messenger;
-class NamedCharRef;
-class CharsetInfo;
-
-class SP_API InputSource : public Link {
-public:
-  enum { eE = -1 };		// end of entity signal
-
-  virtual ~InputSource();
-  Xchar get(Messenger &);
-  virtual void pushCharRef(Char ch, const NamedCharRef &) = 0;
-  const Location &currentLocation() const;
-  const Char *currentTokenStart() const;
-  size_t currentTokenLength() const;
-  const Char *currentTokenEnd() const;
-  Index nextIndex() const;
-  // Discard all but the last character of the current token.
-  void discardInitial();
-  void startToken();
-  void startTokenNoMulticode();
-  void endToken(size_t length);
-  Xchar tokenChar(Messenger &);
-  void ungetToken();
-  void setMarkupScanTable(const XcharMap<unsigned char> &);
-  Boolean scanSuppress() const;
-  void extendToBufferEnd();
-  virtual void willNotRewind();
-  virtual Boolean rewind(Messenger &) = 0;
-  Boolean accessError() const;
-  virtual void setDocCharset(const CharsetInfo &docCharset,
-			     const CharsetInfo &emCharset);
-  virtual void willNotSetDocCharset();
-protected:
-  InputSource(InputSourceOrigin *origin, const Char *start, const Char *end);
-  void reset(const Char *start, const Char *end);
-  InputSourceOrigin *inputSourceOrigin();
-  void noteCharRef(Index replacementIndex, const NamedCharRef &);
-  const Char *cur();
-  const Char *start();
-  const Char *end();
-  Index startIndex();
-  void changeBuffer(const Char *newBase, const Char *oldBase);
-  void advanceEnd(const Char *newEnd);
-  void moveLeft();
-  void moveStart(const Char *newStart);
-  Char nextChar();
-  void setAccessError();
-private:
-  InputSource(const InputSource &); // undefined
-  void operator=(const InputSource &); // undefined
-  virtual Xchar fill(Messenger &) = 0;
-  void advanceStart(const Char *to);
-  void advanceStartMulticode(const Char *to);
-  
-  const Char *cur_;
-  const Char *start_;
-  const Char *end_;
-  Location startLocation_;
-  Ptr<InputSourceOrigin> origin_;
-  Boolean accessError_;
-  Boolean scanSuppress_;
-  Boolean scanSuppressSingle_;
-  Index scanSuppressIndex_;
-  Boolean multicode_;
-  XcharMap<unsigned char> markupScanTable_;
-};
-
-inline
-void InputSource::advanceStart(const Char *to)
-{
-  if (multicode_)
-    advanceStartMulticode(to);
-  else {
-    startLocation_ += to - start_;
-    start_ = to;
-  }
-}
-
-inline
-Xchar InputSource::get(Messenger &mgr)
-{
-  advanceStart(cur_);
-  return cur_ < end_ ? *cur_++ : fill(mgr);
-}
-
-inline
-void InputSource::startTokenNoMulticode()
-{
-  startLocation_ += cur_ - start_;
-  start_ = cur_;
-}
-
-inline
-void InputSource::startToken()
-{
-  advanceStart(cur_);
-}
-
-inline
-void InputSource::endToken(size_t length)
-{
-  cur_ = start_ + length;
-}
-
-inline
-Xchar InputSource::tokenChar(Messenger &mgr)
-{
-  return cur_ < end_ ? *cur_++ : fill(mgr);
-}
-
-inline
-void InputSource::extendToBufferEnd()
-{
-  cur_ = end_;
-}
-
-inline
-const Char *InputSource::cur()
-{
-  return cur_;
-}
-
-inline
-const Char *InputSource::start()
-{
-  return start_;
-}
-
-inline
-const Char *InputSource::end()
-{
-  return end_;
-}
-
-inline
-void InputSource::changeBuffer(const Char *newBase, const Char *oldBase)
-{
-  cur_ = newBase + (cur_ - oldBase);
-  start_ = newBase + (start_ - oldBase);
-  end_ = newBase + (end_ - oldBase);
-}
-
-inline
-void InputSource::moveStart(const Char *newStart)
-{
-  cur_ = newStart + (cur_ - start_);
-  end_ = newStart + (end_ - start_);
-  start_ = newStart;
-}
-
-inline
-void InputSource::advanceEnd(const Char *newEnd)
-{
-  end_ = newEnd;
-}
-
-inline
-Char InputSource::nextChar()
-{
-  return *cur_++;
-}
-
-inline
-Index InputSource::startIndex()
-{
-  return startLocation_.index();
-}
-
-inline
-void InputSource::moveLeft()
-{
-  start_--;
-  cur_--;
-}
-
-inline
-void InputSource::noteCharRef(Index replacementIndex, const NamedCharRef &ref)
-{
-  origin_->noteCharRef(replacementIndex, ref);
-}
-
-inline
-const Location &InputSource::currentLocation() const
-{
-  return startLocation_;
-}
-
-inline
-const Char *InputSource::currentTokenStart() const
-{
-  return start_;
-}
-
-inline
-size_t InputSource::currentTokenLength() const
-{
-  return cur_ - start_;
-}
-
-inline
-Index InputSource::nextIndex() const
-{
-  return startLocation_.index() + (cur_ - start_);
-}
-
-inline
-const Char *InputSource::currentTokenEnd() const
-{
-  return cur_;
-}
-
-inline
-void InputSource::discardInitial()
-{
-  advanceStart(cur_ - 1);
-}
-
-inline
-void InputSource::ungetToken()
-{
-  cur_ = start_;
-}
-
-inline
-void InputSource::setMarkupScanTable(const XcharMap<unsigned char> &table)
-{
-  markupScanTable_ = table;
-  multicode_ = 1;
-}
-
-inline
-Boolean InputSource::scanSuppress() const
-{
-  return scanSuppress_ && (!scanSuppressSingle_
-			   || startLocation_.index() == scanSuppressIndex_);
-}
-
-inline
-InputSourceOrigin *InputSource::inputSourceOrigin()
-{
-  return origin_.pointer();
-}
-
-inline
-void InputSource::setAccessError()
-{
-  accessError_ = 1;
-}
-
-inline
-Boolean InputSource::accessError() const
-{
-  return accessError_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not InputSource_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/InternalInputSource.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef InternalInputSource_INCLUDED
-#define InternalInputSource_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <stddef.h>
-#include "InputSource.h"
-#include "Allocator.h"
-#include "StringC.h"
-#include "types.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class InputSourceOrigin;
-class Messenger;
-class NamedCharRef;
-
-class SP_API InternalInputSource : public InputSource {
-public:
-  void *operator new(size_t sz, Allocator &alloc) { return alloc.alloc(sz); }
-  void *operator new(size_t sz) { return Allocator::allocSimple(sz); }
-  void operator delete(void *p) { Allocator::free(p); }
-  InternalInputSource(const StringC &, InputSourceOrigin *);
-  Xchar fill(Messenger &);
-  void pushCharRef(Char ch, const NamedCharRef &);
-  Boolean rewind(Messenger &);
-  ~InternalInputSource();
-private:
-  InternalInputSource(const InternalInputSource &); // undefined
-  void operator=(const InternalInputSource &);	    // undefined
-  Char *buf_;
-  const StringC *contents_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not InternalInputSource_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Link.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Link_INCLUDED
-#define Link_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API Link {
-public:
-  Link();
-  Link(Link *);
-  virtual ~Link();
-private:
-  Link *next_;
-
-friend class IListBase;
-friend class IListIterBase;
-friend class IQueueBase;
-};
-
-inline
-Link::Link() : next_(0)
-{
-}
-
-inline
-Link::Link(Link *next) : next_(next)
-{
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Link_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/LinkProcess.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef LinkProcess_INCLUDED
-#define LinkProcess_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Lpd.h"
-#include "IList.h"
-#include "Link.h"
-#include "Vector.h"
-#include "Vector.h"
-#include "Ptr.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Messenger;
-
-struct SP_API LinkProcessOpenElement : public Link {
-  LinkProcessOpenElement(const LinkSet *current, const SourceLinkRule &);
-  LinkProcessOpenElement(const LinkSet *current);
-  const LinkSet *current;
-  const LinkSet *restore;
-  const LinkSet *post;
-  Boolean postRestore;
-};
-
-class SP_API LinkProcess {
-public:
-  LinkProcess();
-  void init(const ConstPtr<ComplexLpd> &lpd);
-  Boolean startElement(const ElementType *,
-		       const AttributeList &attributes,
-		       const Location &location,
-		       Messenger &,
-		       const AttributeList *&linkAttributes,
-		       const ResultElementSpec *&resultElementSpec);
-  void endElement();
-  void uselink(const LinkSet *linkSet,
-	       Boolean restore,
-	       const Lpd *);
-  virtual Boolean selectLinkRule(const Vector<const AttributeList *> &,
-				 const Location &location,
-				 size_t &selected);
-  size_t nImpliedLinkRules() const;
-  const ResultElementSpec &impliedLinkRule(size_t) const;
-  const StringC &name() const;
-  Boolean isExplicit() const;
-  void clear();
-  void swap(LinkProcess &);
-private:
-  LinkProcess(const LinkProcess &); // undefined
-  void operator=(const LinkProcess &); // undefined
-
-  IList<LinkProcessOpenElement> open_;
-  ConstPtr<ComplexLpd> lpd_;
-  Vector<ConstPtr<Lpd> > activeLpds_;
-  Vector<const AttributeList *> linkAttributes_;
-};
-
-inline
-const StringC &LinkProcess::name() const
-{
-  return lpd_->name();
-}
-
-inline
-Boolean LinkProcess::isExplicit() const
-{
-  return lpd_->type() == Lpd::explicitLink;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not LinkProcess_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/List.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef List_DEF_INCLUDED
-#define List_DEF_INCLUDED 1
-
-#include "IListIter.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-void List<T>::remove(const T &value)
-{
-  for (IListIter<ListItem<T> > iter(list_); !iter.done(); iter.next())
-    if (iter.cur()->value == value) {
-      list_.remove(iter.cur());
-      delete iter.cur();
-      break;
-    }
-}
-
-template<class T>
-T List<T>::get()
-{
-  ListItem<T> *p = list_.get();
-  T temp(p->value);
-  delete p;
-  return temp;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not List_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/List.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef List_INCLUDED
-#define List_INCLUDED 1
-
-#include "IList.h"
-#include "Link.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class ListItem : public Link {
-public:
-  ListItem(const T &v) : value(v) { }
-  T value;
-};
-
-template<class T> class ListIter;
-
-template<class T>
-class List {
-public:
-  List() { }
-  void append(const T &item) { list_.append(new ListItem<T>(item)); }
-  void insert(const T &item) { list_.insert(new ListItem<T>(item)); }
-  const T &head() const { return list_.head()->value; }
-  void remove(const T &);
-  T get();
-  int empty() const { return list_.empty(); }
-  friend class ListIter<T>;
-private:
-  List(const List<T> &);	// undefined
-  void operator=(const List<T> &); // undefined
-
-  IList<ListItem<T> > list_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not List_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "List.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ListIter.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ListIter_INCLUDED
-#define ListIter_INCLUDED 1
-
-#include "List.h"
-#include "IListIter.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class ListIter {
-public:
-  ListIter(const List<T> &list) : iter_(list.list_) { }
-  const T &cur() const { return iter_.cur()->value; }
-  int done() const { return iter_.done(); }
-  void next() { iter_.next(); }
-private:
-  IListIter<ListItem<T> > iter_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ListIter_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/LiteralStorage.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef LiteralStorage_INCLUDED
-#define LiteralStorage_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "StorageManager.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API LiteralStorageManager : public StorageManager {
-public:
-  LiteralStorageManager(const char *type);
-  StorageObject *makeStorageObject(const StringC &id,
-				   const StringC &,
-				   Boolean,
-				   Boolean mayRewind,
-				   Messenger &,
-				   StringC &found); 
-  const InputCodingSystem *requiredCodingSystem() const;
-  Boolean requiresCr() const;
-  const char *type() const;
-  Boolean inheritable() const;
-private:
-  LiteralStorageManager(const LiteralStorageManager &); // undefined
-  void operator=(const LiteralStorageManager &);	// undefined
-
-  const char *type_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not LiteralStorage_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Location.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Location_INCLUDED
-#define Location_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "Boolean.h"
-#include "Ptr.h"
-#include "Resource.h"
-#include "Boolean.h"
-#include "Vector.h"
-#include "Owner.h"
-#include "StringC.h"
-#include "rtti.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class ExternalInfo;
-class EntityOrigin;
-class InputSourceOrigin;
-class Entity;
-class EntityDecl;
-class Location;
-class Markup;
-class Text;
-class NamedCharRef;
-
-class SP_API Origin : public Resource {
-public:
-  virtual ~Origin();
-  virtual const EntityOrigin *asEntityOrigin() const;
-  virtual const InputSourceOrigin *asInputSourceOrigin() const;
-  virtual const Location &parent() const = 0;
-  virtual Index refLength() const;
-  virtual Boolean origChars(const Char *&) const;
-  virtual Boolean inBracketedTextOpenDelim() const;
-  virtual Boolean inBracketedTextCloseDelim() const;
-  virtual Boolean isNumericCharRef(const Markup *&markup) const;
-  virtual Boolean isNamedCharRef(Index ind, NamedCharRef &ref) const;
-  virtual const EntityDecl *entityDecl() const;
-  virtual Boolean defLocation(Offset off, const Origin *&, Index &) const;
-  virtual const Markup *markup() const;
-  virtual const Entity *entity() const;
-  virtual const ExternalInfo *externalInfo() const;
-  virtual Offset startOffset(Index ind) const;
-  const StringC *entityName() const;
-};
-
-class SP_API ProxyOrigin : public Origin {
-public:
-  ProxyOrigin(const Origin *origin);
-  const EntityOrigin *asEntityOrigin() const;
-  const InputSourceOrigin *asInputSourceOrigin() const;
-  const Location &parent() const;
-  Index refLength() const;
-  Boolean origChars(const Char *&) const;
-  Boolean inBracketedTextOpenDelim() const;
-  Boolean inBracketedTextCloseDelim() const;
-  Boolean isNumericCharRef(const Markup *&markup) const;
-  Boolean isNamedCharRef(Index ind, NamedCharRef &ref) const;
-  const EntityDecl *entityDecl() const;
-  Boolean defLocation(Offset off, const Origin *&, Index &) const;
-  const Markup *markup() const;
-  const Entity *entity() const;
-  const ExternalInfo *externalInfo() const;
-  Offset startOffset(Index ind) const;
-private:
-  const Origin *origin_;
-};
-
-class SP_API Location {
-public:
-  Location();
-  Location(Origin *, Index);
-  Location(ConstPtr<Origin>, Index);
-  void operator+=(Index i) { index_ += i; }
-  void operator-=(Index i) { index_ -= i; }
-  Index index() const { return index_; }
-  const ConstPtr<Origin> &origin() const { return origin_; }
-  void clear() { origin_.clear(); }
-  void swap(Location &to) {
-    origin_.swap(to.origin_);
-    Index tem = to.index_;
-    to.index_ = index_;
-    index_ = tem;
-  }
-private:
-  ConstPtr<Origin> origin_;
-  Index index_;
-};
-
-class SP_API ExternalInfo {
-  RTTI_CLASS
-public:
-  virtual ~ExternalInfo();
-};
-
-class SP_API NamedCharRef {
-public:
-  enum RefEndType {
-    endOmitted,
-    endRE,
-    endRefc
-    };
-  NamedCharRef();
-  NamedCharRef(Index, RefEndType, const StringC &);
-  Index refStartIndex() const;
-  RefEndType refEndType() const;
-  const StringC &origName() const;
-  void set(Index, RefEndType, const Char *, size_t);
-private:
-  Index refStartIndex_;
-  RefEndType refEndType_;
-  StringC origName_;
-};
-
-struct SP_API InputSourceOriginNamedCharRef {
-  Index replacementIndex;
-  size_t origNameOffset;
-  Index refStartIndex;
-  NamedCharRef::RefEndType refEndType;
-};
-
-class SP_API InputSourceOrigin : public Origin {
-public:
-  virtual void noteCharRef(Index replacementIndex, const NamedCharRef &) = 0;
-  virtual void setExternalInfo(ExternalInfo *) = 0;
-  virtual InputSourceOrigin *copy() const = 0;
-  static InputSourceOrigin *make();
-  static InputSourceOrigin *make(const Location &refLocation);
-};
-
-// a delimiter specified in bracketed text
-
-class SP_API BracketOrigin : public Origin {
-public:
-  enum Position { open, close };
-  BracketOrigin(const Location &, Position);
-  const Location &parent() const;
-  Boolean inBracketedTextOpenDelim() const;
-  Boolean inBracketedTextCloseDelim() const;
-private:
-  Position pos_;
-  Location loc_;
-};
-
-class SP_API ReplacementOrigin : public Origin {
-public:
-  ReplacementOrigin(const Location &, Char origChar);
-  const Location &parent() const;
-  Boolean origChars(const Char *&) const;
-private:
-  Location loc_;
-  Char origChar_;
-};
-
-class SP_API MultiReplacementOrigin : public Origin {
-public:
-  MultiReplacementOrigin(const Location &, StringC &origChars);
-  const Location &parent() const;
-  Boolean origChars(const Char *&) const;
-private:
-  Location loc_;
-  StringC origChars_;
-};
-
-inline
-Index NamedCharRef::refStartIndex() const
-{
-  return refStartIndex_;
-}
-
-inline
-NamedCharRef::RefEndType NamedCharRef::refEndType() const
-{
-  return refEndType_;
-}
-
-inline
-const StringC &NamedCharRef::origName() const
-{
-  return origName_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Location_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Lpd.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,447 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Lpd_INCLUDED
-#define Lpd_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Attribute.h"
-#include "StringC.h"
-#include "Ptr.h"
-#include "Resource.h"
-#include "Boolean.h"
-#include "Named.h"
-#include "NamedTable.h"
-#include "Syntax.h"
-#include "Location.h"
-#include "Dtd.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class ElementType;
-
-struct SP_API ResultElementSpec {
-  ResultElementSpec();
-  const ElementType *elementType;
-  AttributeList attributeList;
-  void swap(ResultElementSpec &);
-};
-
-class SP_API Lpd : public Resource {
-public:
-  enum Type { simpleLink, implicitLink, explicitLink };
-  Lpd(const StringC &, Type, const Location &,
-      const Ptr<Dtd> &sourceDtd);
-  virtual ~Lpd();
-  Type type() const;
-  const Location &location() const;
-  const Ptr<Dtd> &sourceDtd();
-  ConstPtr<Dtd> sourceDtd() const;
-  Boolean active() const;
-  void activate();
-  const ConstPtr<StringResource<Char> > &namePointer() const;
-  const StringC &name() const;
-private:
-  Lpd(const Lpd &);		// undefined
-  void operator=(const Lpd &);	// undefined
-  Type type_;
-  Location location_;
-  Boolean active_;
-  Ptr<Dtd> sourceDtd_;
-  ConstPtr<StringResource<Char> > name_;
-};
-
-class SP_API SimpleLpd : public Lpd, public Attributed {
-public:
-  SimpleLpd(const StringC &, const Location &,
-	    const Ptr<Dtd> &sourceDtd);
-private:
-  SimpleLpd(const SimpleLpd &);	// undefined
-  void operator=(const SimpleLpd &); // undefined
-};
-
-class LinkSet;
-
-// A link rule whose source element specification is not implied.
-
-class SP_API SourceLinkRule {
-public:
-  SourceLinkRule();
-  void setLinkAttributes(AttributeList &);
-  void setResult(const ElementType *, AttributeList &);
-  void setUselink(const LinkSet *);
-  void setPostlink(const LinkSet *);
-  void setPostlinkRestore();
-  void swap(SourceLinkRule &);
-  const AttributeList &attributes() const;
-  const ResultElementSpec &resultElementSpec() const;
-  const LinkSet *uselink() const;
-  const LinkSet *postlink() const;
-  Boolean postlinkRestore() const;
-private:
-  const LinkSet *uselink_;
-  const LinkSet *postlink_;
-  Boolean postlinkRestore_;
-  AttributeList linkAttributes_;
-  ResultElementSpec resultElementSpec_;
-};
-
-class SP_API SourceLinkRuleResource : public Resource, public SourceLinkRule {
-public:
-  SourceLinkRuleResource();
-};
-
-class SP_API LinkSet : public Named {
-public:
-  LinkSet(const StringC &, const Dtd *);
-  void setDefined();
-  Boolean defined() const;
-  void addImplied(const ElementType *, AttributeList &);
-  size_t nLinkRules(const ElementType *) const;
-  const SourceLinkRule &linkRule(const ElementType *, size_t) const;
-  void addLinkRule(const ElementType *,
-		   const ConstPtr<SourceLinkRuleResource> &);
-  size_t nImpliedLinkRules() const;
-  const ResultElementSpec &impliedLinkRule(size_t) const;
-  Boolean impliedResultAttributes(const ElementType *,
-				  const AttributeList *&);
-private:
-  LinkSet(const LinkSet &);	// undefined
-  void operator=(const LinkSet &); // undefined
-  Boolean defined_;
-  // indexed by typeIndex of source elements
-  Vector<Vector<ConstPtr<SourceLinkRuleResource> > > 
-    linkRules_;
-  Vector<ResultElementSpec> impliedSourceLinkRules_;
-};
-
-class SP_API IdLinkRule : public SourceLinkRule {
-public:
-  IdLinkRule();
-  Boolean isAssociatedWith(const ElementType *) const;
-  void setAssocElementTypes(Vector<const ElementType *> &);
-  void swap(IdLinkRule &);
-private:
-  Vector<const ElementType *> assocElementTypes_;
-};
-
-// A collection of link rules in a ID link set that are
-// assocated with the same name (unique identifier).
-
-class SP_API IdLinkRuleGroup : public Named {
-public:
-  IdLinkRuleGroup(const StringC &);
-  size_t nLinkRules() const;
-  const IdLinkRule &linkRule(size_t) const;
-  void addLinkRule(IdLinkRule &);
-private:
-  IdLinkRuleGroup(const IdLinkRuleGroup &); // undefined
-  void operator=(const IdLinkRuleGroup &);  // undefined
-  Vector<IdLinkRule> linkRules_;
-};
-
-// An implicit or explicit LPD.
-
-class SP_API ComplexLpd : public Lpd {
-public:
-  typedef ConstNamedTableIter<LinkSet> ConstLinkSetIter;
-  ComplexLpd(const StringC &, Type,
-	     const Location &,
-	     const Syntax &syntax,
-	     const Ptr<Dtd> &sourceDtd,
-	     const Ptr<Dtd> &resultDtd);
-  size_t allocAttributeDefinitionListIndex();
-  size_t nAttributeDefinitionList() const;
-  LinkSet *initialLinkSet();
-  const LinkSet *initialLinkSet() const;
-  const LinkSet *emptyLinkSet() const;
-  const LinkSet *lookupLinkSet(const StringC &) const;
-  const IdLinkRuleGroup *lookupIdLink(const StringC &) const;
-  IdLinkRuleGroup *lookupCreateIdLink(const StringC &);
-  void insertIdLink(IdLinkRuleGroup *);
-  ConstLinkSetIter linkSetIter() const;
-  Boolean hadIdLinkSet() const;
-  void setHadIdLinkSet();
-
-  LinkSet *lookupLinkSet(const StringC &);
-  LinkSet *insertLinkSet(LinkSet *);
-  const Ptr<Dtd> &resultDtd();
-  ConstPtr<Dtd> resultDtd() const;
-  const ConstPtr<AttributeDefinitionList> &
-    attributeDef(const ElementType *) const;
-  void setAttributeDef(const ElementType *,
-		       const ConstPtr<AttributeDefinitionList> &);
-private:
-  ComplexLpd(const ComplexLpd &); // undefined
-  void operator=(const ComplexLpd &); // undefined
-  Ptr<Dtd> resultDtd_;
-  Vector<ConstPtr<AttributeDefinitionList> > linkAttributeDefs_;
-  NamedTable<LinkSet> linkSetTable_;
-  LinkSet initialLinkSet_;
-  LinkSet emptyLinkSet_;
-  Boolean hadIdLinkSet_;
-  NamedTable<IdLinkRuleGroup> idLinkTable_;
-  size_t nAttributeDefinitionList_;
-};
-
-inline
-Lpd::Type Lpd::type() const
-{
-  return type_;
-}
-
-inline
-const Location &Lpd::location() const
-{
-  return location_;
-}
-
-inline
-Boolean Lpd::active() const
-{
-  return active_;
-}
-
-inline
-void Lpd::activate()
-{
-  active_ = 1;
-}
-
-inline
-ConstPtr<Dtd> Lpd::sourceDtd() const
-{
-  return sourceDtd_;
-}
-
-inline
-const Ptr<Dtd> &Lpd::sourceDtd()
-{
-  return sourceDtd_;
-}
-
-inline
-const ConstPtr<StringResource<Char> > &Lpd::namePointer() const
-{
-  return name_;
-}
-
-inline
-const StringC &Lpd::name() const
-{
-  return *name_;
-}
-
-inline
-void SourceLinkRule::setLinkAttributes(AttributeList &attributes)
-{
-  attributes.swap(linkAttributes_);
-}
-
-inline
-const AttributeList &SourceLinkRule::attributes() const
-{
-  return linkAttributes_;
-}
-
-inline
-void SourceLinkRule::setResult(const ElementType *element,
-			       AttributeList &attributes)
-{
-  resultElementSpec_.elementType = element;
-  attributes.swap(resultElementSpec_.attributeList);
-}
-
-inline
-const ResultElementSpec &SourceLinkRule::resultElementSpec() const
-{
-  return resultElementSpec_;
-}
-
-inline
-void SourceLinkRule::setUselink(const LinkSet *linkSet)
-{
-  uselink_ = linkSet;
-}
-
-inline
-void SourceLinkRule::setPostlink(const LinkSet *linkSet)
-{
-  postlink_ = linkSet;
-}
-
-inline
-void SourceLinkRule::setPostlinkRestore()
-{
-  postlinkRestore_ = 1;
-}
-
-inline
-const LinkSet *SourceLinkRule::uselink() const
-{
-  return uselink_;
-}
-
-inline
-const LinkSet *SourceLinkRule::postlink() const
-{
-  return postlink_;
-}
-
-inline
-Boolean SourceLinkRule::postlinkRestore() const
-{
-  return postlinkRestore_;
-}
-
-inline
-Boolean LinkSet::defined() const
-{
-  return defined_;
-}
-
-inline
-void LinkSet::setDefined()
-{
-  defined_ = 1;
-}
-
-inline
-const SourceLinkRule &LinkSet::linkRule(const ElementType *e, size_t i) const
-{
-  return *linkRules_[e->index()][i];
-}
-
-inline
-size_t LinkSet::nImpliedLinkRules() const
-{
-  return impliedSourceLinkRules_.size();
-}
-
-inline
-const ResultElementSpec &LinkSet::impliedLinkRule(size_t i) const
-{
-  return impliedSourceLinkRules_[i];
-}
-
-inline
-const Ptr<Dtd> &ComplexLpd::resultDtd()
-{
-  return resultDtd_;
-}
-
-inline
-ConstPtr<Dtd> ComplexLpd::resultDtd() const
-{
-  return resultDtd_;
-}
-
-inline
-LinkSet *ComplexLpd::initialLinkSet()
-{
-  return &initialLinkSet_;
-}
-
-inline
-const LinkSet *ComplexLpd::initialLinkSet() const
-{
-  return &initialLinkSet_;
-}
-
-inline
-const LinkSet *ComplexLpd::emptyLinkSet() const
-{
-  return &emptyLinkSet_;
-}
-
-inline
-const LinkSet *ComplexLpd::lookupLinkSet(const StringC &name) const
-{
-  return linkSetTable_.lookup(name);
-}
-
-inline
-LinkSet *ComplexLpd::lookupLinkSet(const StringC &name)
-{
-  return linkSetTable_.lookup(name);
-}
-
-inline
-LinkSet *ComplexLpd::insertLinkSet(LinkSet *e)
-{
-  return linkSetTable_.insert(e);
-}
-
-inline
-size_t ComplexLpd::nAttributeDefinitionList() const
-{
-  return nAttributeDefinitionList_;
-}
-
-inline
-size_t ComplexLpd::allocAttributeDefinitionListIndex()
-{
-  return nAttributeDefinitionList_++;
-}
-
-inline
-ComplexLpd::ConstLinkSetIter ComplexLpd::linkSetIter() const
-{
-  // Avoid use of typedef to work around MSVC 2.0 bug.
-  return ConstNamedTableIter<LinkSet>(linkSetTable_);
-}
-
-inline
-const ConstPtr<AttributeDefinitionList> &
-ComplexLpd::attributeDef(const ElementType *e) const
-{
-  return linkAttributeDefs_[e->index()];
-}
-
-inline
-void ComplexLpd::setAttributeDef(const ElementType *e,
-				 const ConstPtr<AttributeDefinitionList> &attdef)
-{
-  linkAttributeDefs_[e->index()] = attdef;
-}
-
-inline
-Boolean ComplexLpd::hadIdLinkSet() const
-{
-  return hadIdLinkSet_;
-}
-
-inline
-void ComplexLpd::setHadIdLinkSet()
-{
-  hadIdLinkSet_ = 1;
-}
-
-inline
-const IdLinkRuleGroup *ComplexLpd::lookupIdLink(const StringC &id) const
-{
-  return idLinkTable_.lookup(id);
-}
-
-inline
-size_t IdLinkRuleGroup::nLinkRules() const
-{
-  return linkRules_.size();
-}
-
-inline
-const IdLinkRule &IdLinkRuleGroup::linkRule(size_t i) const
-{
-  return linkRules_[i];
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Lpd_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Markup.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Markup_INCLUDED
-#define Markup_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "StringC.h"
-#include "Syntax.h"
-#include "Sd.h"
-#include "Vector.h"
-#include "Text.h"
-#include "SdText.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class EntityOrigin;
-
-struct SP_API MarkupItem {
-  MarkupItem();
-  MarkupItem(const MarkupItem &);
-  ~MarkupItem();
-  void operator=(const MarkupItem &);
-  unsigned char type;
-  unsigned char index;
-  union {
-    size_t nChars;
-    ConstPtr<Origin> *origin; // type == entityStart
-    Text *text;				  // type == literal
-    SdText *sdText;			  // type == sdLiteral
-  };
-};
-
-class InputSource;
-
-class SP_API Markup {
-public:
-  enum Type {
-    reservedName,
-    sdReservedName,
-    name,
-    nameToken,
-    attributeValue,
-    number,
-    comment,
-    s,
-    shortref,
-    delimiter,
-    refEndRe,
-    entityStart,
-    entityEnd,
-    literal,
-    sdLiteral
-  };
-  Markup();
-  size_t size() const;
-  void clear();
-  void resize(size_t);
-  void addDelim(Syntax::DelimGeneral);
-  void addReservedName(Syntax::ReservedName, const InputSource *);
-  void addReservedName(Syntax::ReservedName, const StringC &);
-  void addSdReservedName(Sd::ReservedName, const InputSource *);
-  void addSdReservedName(Sd::ReservedName, const Char *, size_t);
-  void addS(Char);
-  void addS(const InputSource *);
-  void addRefEndRe();
-  void addShortref(const InputSource *);
-  void addCommentStart();
-  void addCommentChar(Char);
-  void addName(const InputSource *);
-  void addName(const Char *, size_t);
-  void addNameToken(const InputSource *);
-  void addNumber(const InputSource *);
-  void addAttributeValue(const InputSource *);
-  void addEntityStart(const Ptr<EntityOrigin> &);
-  void addEntityEnd();
-  void addLiteral(const Text &);
-  void addSdLiteral(const SdText &);
-  void changeToAttributeValue(size_t index);
-  void changeToSdReservedName(size_t index, Sd::ReservedName);
-  void swap(Markup &);
-private:
-  StringC chars_;
-  Vector<MarkupItem> items_;
-  friend class MarkupIter;
-};
-
-class Location;
-
-class SP_API MarkupIter {
-public:
-  MarkupIter(const Markup &);
-  Markup::Type type() const;
-  Boolean valid() const;
-  void advance();
-  // This updates a Location.
-  void advance(Location &, const ConstPtr<Syntax> &);
-  size_t index() const;
-  const Char *charsPointer() const;
-  size_t charsLength() const;
-  const Text &text() const;
-  const EntityOrigin *entityOrigin() const; // valid for type == entityStart
-  const SdText &sdText() const;
-  Syntax::DelimGeneral delimGeneral() const;
-  Syntax::ReservedName reservedName() const;
-  Sd::ReservedName sdReservedName() const;
-private:
-  const Char *chars_;
-  Vector<MarkupItem>::const_iterator items_;
-  size_t nItems_;
-  size_t index_;
-  size_t charIndex_;
-};
-
-inline
-void Markup::clear()
-{
-  chars_.resize(0);
-  items_.resize(0);
-}
-
-inline
-size_t Markup::size() const
-{
-  return items_.size();
-}
-
-inline
-Boolean MarkupIter::valid() const
-{
-  return index_ < nItems_;
-}
-
-inline
-size_t MarkupIter::index() const
-{
-  return index_;
-}
-
-inline
-Markup::Type MarkupIter::type() const
-{
-  return Markup::Type(items_[index_].type);
-}
-
-inline
-const EntityOrigin *MarkupIter::entityOrigin() const
-{
-  return (*items_[index_].origin)->asEntityOrigin();
-}
-
-inline
-const Char *MarkupIter::charsPointer() const
-{
-  return chars_ + charIndex_;
-}
-
-inline
-size_t MarkupIter::charsLength() const
-{
-  return items_[index_].nChars;
-}
-
-inline
-const Text &MarkupIter::text() const
-{
-  return *items_[index_].text;
-}
-
-inline
-const SdText &MarkupIter::sdText() const
-{
-  return *items_[index_].sdText;
-}
-
-inline
-Syntax::DelimGeneral MarkupIter::delimGeneral() const
-{
-  return Syntax::DelimGeneral(items_[index_].index);
-}
-
-inline
-Syntax::ReservedName MarkupIter::reservedName() const
-{
-  return Syntax::ReservedName(items_[index_].index);
-}
-
-inline
-Sd::ReservedName MarkupIter::sdReservedName() const
-{
-  return Sd::ReservedName(items_[index_].index);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Markup_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Message.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,260 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Message_INCLUDED
-#define Message_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <stddef.h>
-#include "Location.h"
-#include "Vector.h"
-#include "CopyOwner.h"
-#include "Boolean.h"
-#include "StringC.h"
-#include "MessageArg.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API MessageFragment {
-public:
-  enum {
-    libModule = 0,
-    appModule = 1
-    };
-  MessageFragment(unsigned module, unsigned number, const char *text = 0);
-  unsigned module() const;
-  unsigned number() const;
-  const char *text() const;
-private:
-  unsigned short number_;
-  unsigned char module_;
-protected:
-  unsigned char spare_;
-private:
-#ifndef SP_NO_MESSAGE_TEXT
-  const char *text_;
-#endif
-};
-
-class SP_API MessageType : public MessageFragment {
-public:
-  enum Severity {
-    info,
-    warning,
-    quantityError,
-    idrefError,
-    error
-    };
-  MessageType(Severity, unsigned module, unsigned number,
-	      const char *text = 0, const char *auxText = 0);
-  Severity severity() const;
-  MessageFragment auxFragment() const;
-  Boolean isError() const;
-private:
-#ifndef SP_NO_MESSAGE_TEXT
-  const char *auxText_;
-#endif
-};
-
-
-class SP_API MessageType0 : public MessageType {
-public:
-  MessageType0(Severity, unsigned module, unsigned number, const char *text = 0);
-};
-
-class SP_API MessageType1 : public MessageType {
-public:
-  MessageType1(Severity, unsigned module, unsigned number, const char *text = 0);
-};
-
-class SP_API MessageType2 : public MessageType {
-public:
-  MessageType2(Severity, unsigned module, unsigned number, const char *text = 0);
-};
-
-class SP_API MessageType3 : public MessageType {
-public:
-  MessageType3(Severity, unsigned module, unsigned number, const char *text = 0);
-};
-
-class SP_API MessageType4 : public MessageType {
-public:
-  MessageType4(Severity, unsigned module, unsigned number, const char *text = 0);
-};
-
-class SP_API MessageType5 : public MessageType {
-public:
-  MessageType5(Severity, unsigned module, unsigned number, const char *text = 0);
-};
-
-class SP_API MessageType6 : public MessageType {
-public:
-  MessageType6(Severity, unsigned module, unsigned number, const char *text = 0);
-};
-
-class SP_API MessageType0L : public MessageType {
-public:
-  MessageType0L(Severity, unsigned module, unsigned number, const char *text = 0,
-		const char *auxText = 0);
-};
-
-class SP_API MessageType1L : public MessageType {
-public:
-  MessageType1L(Severity, unsigned module, unsigned number, const char *text = 0,
-		const char *auxText = 0);
-};
-
-class SP_API OpenElementInfo {
-public:
-  OpenElementInfo();
-  PackedBoolean included;
-  StringC gi;
-  StringC matchType;
-  unsigned matchIndex;
-};
-
-class SP_API Message {
-public:
-  Message();
-  Message(int nArgs);
-  const MessageType *type;
-  Location loc;
-  Location auxLoc;
-  Vector<CopyOwner<MessageArg> > args;
-  Vector<OpenElementInfo> openElementInfo;
-  void swap(Message &);
-  Boolean isError() const;
-};
-
-class SP_API Messenger {
-public:
-  Messenger();
-  virtual ~Messenger();
-  void message(const MessageType0 &);
-  void message(const MessageType1 &, const MessageArg &);
-  void message(const MessageType2 &,
-	       const MessageArg &,
-	       const MessageArg &);
-  void message(const MessageType3 &,
-	       const MessageArg &,
-	       const MessageArg &,
-	       const MessageArg &);
-  void message(const MessageType4 &,
-	       const MessageArg &,
-	       const MessageArg &,
-	       const MessageArg &,
-	       const MessageArg &);
-  void message(const MessageType5 &,
-	       const MessageArg &,
-	       const MessageArg &,
-	       const MessageArg &,
-	       const MessageArg &,
-	       const MessageArg &);
-  void message(const MessageType6 &,
-	       const MessageArg &,
-	       const MessageArg &,
-	       const MessageArg &,
-	       const MessageArg &,
-	       const MessageArg &,
-	       const MessageArg &);
-  void message(const MessageType0L &, const Location &);
-  void message(const MessageType1L &, const MessageArg &, const Location &);
-  void setNextLocation(const Location &);
-  virtual void initMessage(Message &);
-  virtual void dispatchMessage(const Message &) = 0;
-  virtual void dispatchMessage(Message &);
-private:
-  void doInitMessage(Message &);
-  Boolean haveNextLocation_;
-  Location nextLocation_;
-};
-
-class SP_API ForwardingMessenger : public Messenger {
-public:
-  ForwardingMessenger(Messenger &);
-  void dispatchMessage(const Message &);
-  void dispatchMessage(Message &);
-  void initMessage(Message &);
-private:
-  Messenger *to_;
-};
-
-class SP_API ParentLocationMessenger : public ForwardingMessenger {
-public:
-  ParentLocationMessenger(Messenger &);
-  void initMessage(Message &);
-};
-
-class SP_API NullMessenger : public Messenger {
-public:
-  NullMessenger();
-  void dispatchMessage(const Message &);
-  void dispatchMessage(Message &tmp_message) { 
-	dispatchMessage((const Message &)tmp_message);
-  };
-};
-
-inline
-unsigned MessageFragment::module() const
-{
-  return module_;
-}
-
-inline
-unsigned MessageFragment::number() const
-{
-  return number_;
-}
-
-inline
-const char *MessageFragment::text() const
-{
-#ifdef SP_NO_MESSAGE_TEXT
-  return 0;
-#else
-  return text_;
-#endif
-}
-
-inline
-MessageType::Severity MessageType::severity() const
-{
-  return Severity(spare_);
-}
-
-inline
-MessageFragment MessageType::auxFragment() const
-{
-  return MessageFragment(module(),
-			 number() + 1,
-#ifdef SP_NO_MESSAGE_TEXT
-			 0
-#else
-			 auxText_
-#endif
-			 );
-}
-
-inline
-Boolean MessageType::isError() const
-{
-  return severity() != info && severity() != warning;
-}
-
-inline
-Boolean Message::isError() const
-{
-  return type->isError();
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Message_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/MessageArg.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef MessageArg_INCLUDED
-#define MessageArg_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "StringC.h"
-#include "rtti.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class MessageBuilder;
-
-class SP_API MessageArg {
-public:
-  MessageArg();
-  virtual ~MessageArg();
-  virtual MessageArg *copy() const = 0;
-  virtual void append(MessageBuilder &) const = 0;
-};
-
-class SP_API StringMessageArg : public MessageArg {
-public:
-  StringMessageArg(const StringC &);
-  MessageArg *copy() const;
-  void append(MessageBuilder &) const;
-private:
-  StringC s_;
-};
-
-class SP_API NumberMessageArg : public MessageArg {
-public:
-  NumberMessageArg(unsigned long);
-  MessageArg *copy() const;
-  void append(MessageBuilder &) const;
-private:
-  unsigned long n_;
-};
-
-class SP_API OrdinalMessageArg : public MessageArg {
-public:
-  OrdinalMessageArg(unsigned long);
-  MessageArg *copy() const;
-  void append(MessageBuilder &) const;
-private:
-  unsigned long n_;
-};
-
-class SP_API OtherMessageArg : public MessageArg {
-  RTTI_CLASS
-public:
-  OtherMessageArg();
-  void append(MessageBuilder &) const;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not MessageArg_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/MessageBuilder.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef MessageBuilder_INCLUDED
-#define MessageBuilder_INCLUDED 1
-
-#include <stddef.h>
-#include "types.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class OtherMessageArg;
-class MessageFragment;
-
-class SP_API MessageBuilder {
-public:
-  virtual void appendNumber(unsigned long) = 0;
-  virtual void appendOrdinal(unsigned long) = 0;
-  virtual void appendChars(const Char *, size_t) = 0;
-  virtual void appendOther(const OtherMessageArg *) = 0;
-  virtual void appendFragment(const MessageFragment &) = 0;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not MessageBuilder_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/MessageEventHandler.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef MessageEventHandler_INCLUDED
-#define MessageEventHandler_INCLUDED 1
-
-#include "Event.h"
-#include "ErrorCountEventHandler.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class OutputCharStream;
-class SgmlParser;
-
-class SP_API MessageEventHandler : public ErrorCountEventHandler {
-public:
-  // if parser is non-null then subdocs will be parsed automatically
-  MessageEventHandler(Messenger *messenger, const SgmlParser *parser = 0);
-  void message(MessageEvent *);
-  void subdocEntity(SubdocEntityEvent *);
-  Messenger *messenger() const;
-private:
-  Messenger *messenger_;
-  const SgmlParser *parser_;
-};
-
-inline
-Messenger *MessageEventHandler::messenger() const
-{
-  return messenger_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not MessageEventHandler_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/MessageFormatter.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-// Copyright (c) 1994, 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef MessageFormatter_INCLUDED
-#define MessageFormatter_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "MessageBuilder.h"
-#include "Boolean.h"
-#include "Message.h"
-#include "Location.h"
-#include "StringC.h"
-#include "OutputCharStream.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API MessageFormatter {
-public:
-  MessageFormatter();
-  void formatMessage(const MessageFragment &,
-		     const Vector<CopyOwner<MessageArg> > &args,
-		     OutputCharStream &);
-  void formatOpenElements(const Vector<OpenElementInfo> &openElementInfo,
-			  OutputCharStream &os);
-  virtual Boolean getMessageText(const MessageFragment &, StringC &) = 0;
-  Boolean formatFragment(const MessageFragment &, OutputCharStream &);
-private:
-  MessageFormatter(const MessageFormatter &); // undefined
-  void operator=(const MessageFormatter &);  // undefined
-
-  class Builder : public MessageBuilder {
-  public:
-    Builder(MessageFormatter *formatter, OutputCharStream &os, bool b)
-      : formatter_(formatter), os_(&os), argIsCompleteMessage_(b) { }
-    void appendNumber(unsigned long);
-    void appendOrdinal(unsigned long);
-    void appendChars(const Char *, size_t);
-    void appendOther(const OtherMessageArg *);
-    void appendFragment(const MessageFragment &);
-  private:
-    OutputCharStream &os() { return *os_; }
-    OutputCharStream *os_;
-    MessageFormatter *formatter_;
-    bool argIsCompleteMessage_;
-  };
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not MessageFormatter_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/MessageReporter.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef MessageReporter_INCLUDED
-#define MessageReporter_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "MessageFormatter.h"
-#include "Boolean.h"
-#include "OutputCharStream.h"
-#include "Message.h"
-#include "Location.h"
-#include "StringC.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API MessageReporter : public MessageFormatter, public Messenger {
-public:
-  enum Option {
-    openElements = 01,
-    openEntities = 02,
-    messageNumbers = 04
-    };
-  // The OutputCharStream will be deleted by the MessageReporter
-  MessageReporter(OutputCharStream *);
-  ~MessageReporter();
-  void setMessageStream(OutputCharStream *);
-  OutputCharStream *releaseMessageStream();
-  void dispatchMessage(const Message &);
-  void dispatchMessage(Message &tmp_message) {
-        dispatchMessage((const Message &)tmp_message);
-  };
-  virtual Boolean getMessageText(const MessageFragment &, StringC &);
-  void addOption(Option);
-  void setProgramName(const StringC &);
-private:
-  MessageReporter(const MessageReporter &); // undefined
-  void operator=(const MessageReporter &);  // undefined
-  
-  const ExternalInfo *locationHeader(const Location &, Offset &off);
-  const ExternalInfo *locationHeader(const Origin *, Index, Offset &off);
-  void printLocation(const ExternalInfo *info, Offset off);
-  OutputCharStream &os();
-
-  OutputCharStream *os_;
-  unsigned options_;
-  StringC programName_;
-};
-
-inline
-OutputCharStream &MessageReporter::os()
-{
-  return *os_;
-}
-
-inline
-void MessageReporter::setProgramName(const StringC &programName)
-{
-  programName_ = programName;
-}
-
-inline
-OutputCharStream *MessageReporter::releaseMessageStream()
-{
-  OutputCharStream *tem = os_;
-  os_ = 0;
-  return tem;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not MessageReporter_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/MessageTable.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef MessageTable_INCLUDED
-#define MessageTable_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Message.h"
-#include "Boolean.h"
-#include "StringC.h"
-#include "sptchar.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API MessageTable {
-public:
-  static const MessageTable *instance();
-  virtual Boolean getText(const MessageFragment &,
-			  String<SP_TCHAR> &) const = 0;
-private:
-  static MessageTable *instance_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not MessageTable_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Mode.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Mode_INCLUDED
-#define Mode_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-enum Mode {
-  grpMode,			// group
-  alitMode,			// attribute value literals starting with LIT
-  alitaMode,			// attribute value literals starting with LITA
-  aliteMode,			// attribute value literals inside entity
-  talitMode,			// tokenized attribute value literal
-  talitaMode,
-  taliteMode,
-  mdMode,			// markup declaration
-  mdMinusMode,			// markup declaration, also recognize minus
-  mdPeroMode,			// markup declaration, also recognize pero
-  sdMode,
-  comMode,			// comment
-  sdcomMode,			// comment in an SGML declaration
-  piMode,			// processing instruction
-  refMode,			// reference
-  imsMode,			// ignored marked section
-  cmsMode,			// cdata marked section
-  rcmsMode,			// rcdata marked section
-  // These modes are needed only for the prologue.
-  proMode,			// prologue
-  dsMode,			// declaration subset not in marked section
-				// nor in entity
-  dsiMode,			// declaration subset in marked section or
-				// in entity
-  plitMode,			// parameter literal starting with LIT
-  plitaMode,			// paramater literal starting with LITA
-  pliteMode,			// parameter literal inside entity
-  sdplitMode,			// parameter literal starting with LIT
-                                // in an SGML declaration
-  sdplitaMode,			// parameter literal starting with LIT
-                                // in an SGML declaration
-  grpsufMode,			// group suffix
-  mlitMode,			// minimum literal starting with LIT
-  mlitaMode,			// minimum literal starting with LITA
-  asMode,			// data/link/result attribute specification
-  slitMode,			// system id literal starting with LIT
-  slitaMode,			// system id literal starting with LITA
-  sdslitMode,			// system id literal starting with LIT
-                                // in an SGML declaration
-  sdslitaMode,			// system id literal starting with LITA
-                                // in an SGML declaration
-  // These modes are needed only for the instance.
-  cconMode,			// CDATA content
-  rcconMode,			// RCDATA content
-  cconnetMode,			// CDATA content, recognize NET
-  rcconnetMode,			// RCDATA content, recognize NET
-  rcconeMode,			// RCDATA content inside entity
-  tagMode,			// start- or end-tag
-  econMode,			// element content
-  mconMode,			// mixed content
-  econnetMode,			// element content, recognize NET
-  mconnetMode			// mixed content, recognize NET
-  };
-
-const int nModes = mconnetMode + 1;
-
-enum { minShortrefMode = econMode };
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Mode_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/NCVector.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-// This file is automatically generated. Do not edit!
-// Copyright (c) 1994, 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef NCVector_DEF_INCLUDED
-#define NCVector_DEF_INCLUDED 1
-
-#include <stddef.h>
-#include <string.h>
-
-#ifdef SP_QUAL_TEMPLATE_DTOR_BROKEN
-#define DTOR(T) ~T
-#else
-#define DTOR(T) T::~T
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-NCVector<T>::~NCVector()
-{
-  if (ptr_) {
-    erase(ptr_, ptr_ + size_);
-    ::operator delete((void *)ptr_);
-  }
-}
-
-#if 0
-
-template<class T>
-NCVector<T>::NCVector(const NCVector<T> &v)
-: ptr_(0), size_(0), alloc_(0)
-{
-  insert(ptr_ + size_, v.ptr_, v.ptr_ + v.size_);
-}
-
-template<class T>
-NCVector<T>::NCVector(size_t n, const T &t)
-: ptr_(0), size_(0), alloc_(0)
-{
-  insert(ptr_ + size_, n, t);
-}
-
-template<class T>
-NCVector<T> &NCVector<T>::operator=(const NCVector<T> &v)
-{
-  if (&v != this) {
-    size_t n = v.size_;
-    if (n > size_) {
-      n = size_;
-      insert(ptr_ + size_, v.ptr_ + size_, v.ptr_ + v.size_);
-    }
-    else if (n < size_)
-      erase(ptr_ + n, ptr_ + size_);
-    while (n-- > 0)
-      ptr_[n] = v.ptr_[n];
-  }
-  return *this;
-}
-
-template<class T>
-void NCVector<T>::assign(size_t n, const T &t)
-{
-  size_t sz = n;
-  if (n > size_) {
-    sz = size_;
-    insert(ptr_ + size_, n - size_, t);
-  }
-  else if (n < size_)
-    erase(ptr_ + n, ptr_ + size_);
-  while (sz-- > 0)
-    ptr_[sz] = t;
-}
-
-template<class T>
-void NCVector<T>::insert(const T *p, size_t n, const T &t)
-{
-  size_t i = p - ptr_;
-  reserve(size_ + n);
-  if (i != size_)
-    memmove(ptr_ + i + n, ptr_ + i, (size_ - i)*sizeof(T));
-  for (T *pp = ptr_ + i; n-- > 0; pp++) {
-    (void)new (pp) T(t);
-    size_++;
-  }
-}
-
-template<class T>
-void NCVector<T>::insert(const T *p, const T *q1, const T *q2)
-{
-  size_t i = p - ptr_;
-  size_t n = q2 - q1;
-  reserve(size_ + n);
-  if (i != size_)
-    memmove(ptr_ + i + n, ptr_ + i, (size_ - i)*sizeof(T));
-  for (T *pp = ptr_ + i; q1 != q2; q1++, pp++) {
-    (void)new (pp) T(*q1);
-    size_++;
-  }
-}
-
-#endif
-
-template<class T>
-void NCVector<T>::swap(NCVector<T> &v)
-{
-  {
-    T *tem = ptr_;
-    ptr_ = v.ptr_;
-    v.ptr_ = tem;
-  }
-  {
-    size_t tem = size_;
-    size_ = v.size_;
-    v.size_ = tem;
-  }
-  {
-    size_t tem = alloc_;
-    alloc_ = v.alloc_;
-    v.alloc_ = tem;
-  }
-}
-
-template<class T>
-void NCVector<T>::append(size_t n)
-{
-  reserve(size_ + n);
-  while (n-- > 0)
-    (void)new (ptr_ + size_++) T;
-}
-
-template<class T>
-T *NCVector<T>::erase(const T *p1, const T *p2)
-{
-  typedef T X;
-  for (const T *p = p1; p != p2; p++)
-    ((X *)p)->~X();
-  if (p2 != ptr_ + size_)
-    memmove((T *)p1, p2, ((const T *)(ptr_ + size_) - p2)*sizeof(T));
-  size_ -= p2 - p1;
-  return (T *)p1;
-}
-
-template<class T>
-void NCVector<T>::reserve1(size_t size)
-{
-  // Try to preserve a consistent start in the
-  // event of an out of memory exception.
-  size_t newAlloc = alloc_*2;
-  if (size > newAlloc)
-    newAlloc += size;
-  void *p = ::operator new(newAlloc * sizeof(T));
-  alloc_ = newAlloc;
-  if (ptr_) {
-    memcpy(p, ptr_, size_*sizeof(T));
-    ::operator delete((void *)ptr_);
-  }
-  ptr_ = (T *)p;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not NCVector_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/NCVector.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-// This file is automatically generated. Do not edit!
-// Copyright (c) 1994, 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef NCVector_INCLUDED
-#define NCVector_INCLUDED 1
-
-#include <stddef.h>
-#include "xnew.h"
-
-// This offers a subset of the interface offered by the standard C++
-// vector class as defined in the Jan 96 WP.
-// Code in SP currently assumes that size_type is size_t.
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class NCVector {
-public:
-  typedef size_t size_type;
-  typedef T *iterator;
-  typedef const T *const_iterator;
-  NCVector() : ptr_(0), size_(0), alloc_(0) { }
-  NCVector(size_t n) : ptr_(0), size_(0), alloc_(0) { append(n); }
-  ~NCVector();
-  void resize(size_t n) {
-    if (n < size_)
-      erase(ptr_ + n, ptr_ + size_);
-    else if (n > size_)
-      append(n - size_);
-  }
-#if 0
-  NCVector(size_t, const T &);
-  NCVector(const NCVector<T> &);
-  NCVector<T> &operator=(const NCVector<T> &);
-  void assign(size_t, const T &);
-  void push_back(const T &t) {
-    reserve(size_ + 1);
-    (void)new (ptr_ + size_) T(t);
-    size_++;
-  }
-  void insert(const_iterator p, size_t n, const T &t);
-  void insert(const_iterator p, const_iterator q1, const_iterator q2);
-#endif
-  void swap(NCVector<T> &);
-  void clear() { erase(ptr_, ptr_ + size_); }
-  size_t size() const { return size_; }
-  T &operator[](size_t i) { return ptr_[i]; }
-  const T &operator[](size_t i) const { return ptr_[i]; }
-  iterator begin() { return ptr_; }
-  const_iterator begin() const { return ptr_; }
-  T &back() { return ptr_[size_ - 1]; }
-  const T &back() const { return ptr_[size_ - 1]; }
-  void reserve(size_t n) {  if (n > alloc_) reserve1(n); }
-  iterator erase(const_iterator, const_iterator);
-private:
-#if 1
-  NCVector(const NCVector<T> &);
-  void operator=(const NCVector<T> &);
-#endif
-  void append(size_t);
-  void reserve1(size_t);
-  
-  size_t size_;
-  T *ptr_;
-  size_t alloc_;		// allocated size
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not NCVector_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "NCVector.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/NCVector.h.dist	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-#ifndef NCVector_INCLUDED
-#define NCVector_INCLUDED 1
-
-#define Vector NCVector
-#define NC
-
-#ifdef SP_DEFINE_TEMPLATES
-
-#undef SP_DEFINE_TEMPLATES
-#ifdef Vector_INCLUDED
-#undef Vector_INCLUDED
-#include "Vector.h"
-#define Vector_INCLUDED 1
-#else
-#include "Vector.h"
-#undef Vector_INCLUDED
-#endif
-#define SP_DEFINE_TEMPLATES 1
-
-#else /* not SP_DEFINE_TEMPLATES */
-
-#ifdef Vector_INCLUDED
-#undef Vector_INCLUDED
-#include "Vector.h"
-#define Vector_INCLUDED 1
-#else
-#include "Vector.h"
-#undef Vector_INCLUDED
-#endif
-
-#endif /* not SP_DEFINE_TEMPLATES */
-
-#undef Vector
-#undef NC
-
-#endif /* not NCVector_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-
-#ifndef NCVector_DEF_INCLUDED
-#define NCVector_DEF_INCLUDED 1
-
-#define Vector NCVector
-#define NC
-
-#ifdef Vector_DEF_INCLUDED
-#undef Vector_DEF_INCLUDED
-#include "Vector.cxx"
-#define Vector_DEF_INCLUDED 1
-#else
-#include "Vector.cxx"
-#undef Vector_DEF_INCLUDED
-#endif
-
-#undef Vector
-#undef NC
-
-#endif /* not NCVector_DEF_INCLUDED */
-
-#endif /* SP_DEFINE_TEMPLATES */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/NCVector.sed	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-1i\
-// This file is automatically generated. Do not edit!
-s/Vector/NCVector/g
-s/^#ifdef NC$/#if 1/
-s/^#ifndef NC$/#if 0/
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Named.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Named_INCLUDED
-#define Named_INCLUDED 1
-
-#include "StringC.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API Named {
-public:
-  Named(const StringC &name) : name_(name) { }
-  virtual ~Named() { }
-  const StringC &name() const { return name_; }
-  const StringC *namePointer() const { return &name_; }
-  void setName(const StringC &name) { name_ = name; }
-  void swap(Named &to) { name_.swap(to.name_); }
-private:
-  StringC name_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Named_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/NamedResource.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef NamedResource_INCLUDED
-#define NamedResource_INCLUDED 1
-
-#include "Named.h"
-#include "Resource.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API NamedResource : public Named, public Resource {
-public:
-  NamedResource(const StringC &str) : Named(str) { }
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not NamedResource_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/NamedResourceTable.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef NamedResourceTable_INCLUDED
-#define NamedResourceTable_INCLUDED 1
-
-#include "NamedResource.h"
-#include "PointerTable.h"
-#include "StringC.h"
-#include "Hash.h"
-#include "Ptr.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct NamedResourceKeyFunction {
-  static inline
-    const StringC &key(const NamedResource &p) {
-      return p.name();
-    }
-};
-
-template<class T> class NamedResourceTableIter;
-template<class T> class ConstNamedResourceTableIter;
-
-template<class T>
-class NamedResourceTable {
-#ifdef __lucid
-  struct X {
-    Ptr<T> _X; // work around lcc bug
-  };
-#endif
-public:
-  NamedResourceTable() { }
-  Ptr<T> insert(const Ptr<T> &p, Boolean replace = 0) {
-    return (T *)table_.insert((NamedResource *)p.pointer(), replace).pointer();
-  }
-  Ptr<T> lookup(const StringC &str) const {
-    return (T *)table_.lookup(str).pointer();
-  }
-  ConstPtr<T> lookupConst(const StringC &str) const {
-    return (T *)table_.lookup(str).pointer();
-  }
-  const T *lookupTemp(const StringC &str) const {
-    return (const T *)table_.lookup(str).pointer();
-  }
-  Ptr<T> remove(const StringC &str) {
-    return (T *)table_.remove(str).pointer();
-  }
-  size_t count() const { return table_.count(); }
-  void clear() { table_.clear(); }
-  void swap(NamedResourceTable<T> &to) { table_.swap(to.table_); }
-private:
-  PointerTable<Ptr<NamedResource>, StringC, Hash,
-	       NamedResourceKeyFunction> table_;
-  friend class NamedResourceTableIter<T>;
-  friend class ConstNamedResourceTableIter<T>;
-};
-
-template<class T>
-class NamedResourceTableIter {
-public:
-  NamedResourceTableIter(const NamedResourceTable<T> &table)
-  : iter_(table.table_) { }
-  Ptr<T> next() {
-    return (T *)iter_.next().pointer();
-  }
-private:
-  PointerTableIter<Ptr<NamedResource>, StringC, Hash,
-                   NamedResourceKeyFunction> iter_;
-};
-
-template<class T>
-class ConstNamedResourceTableIter {
-public:
-  ConstNamedResourceTableIter(const NamedResourceTable<T> &table)
-  : iter_(table.table_) { }
-  ConstPtr<T> next() {
-    return (T *)iter_.next().pointer();
-  }
-  const T *nextTemp() {
-    return (const T *)iter_.next().pointer();
-  }
-private:
-  PointerTableIter<Ptr<NamedResource>, StringC, Hash,
-                   NamedResourceKeyFunction> iter_;
-};
-  
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not NamedResourceTable_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/NamedTable.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef NamedTable_INCLUDED
-#define NamedTable_INCLUDED 1
-
-#include "Hash.h"
-#include "StringC.h"
-#include "Named.h"
-#include "OwnerTable.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class NamedTableKeyFunction {
-public:
-  static inline const StringC &key(const Named &obj) { return obj.name(); }
-};
-
-template<class T> class NamedTableIter;
-template<class T> class ConstNamedTableIter;
-
-template<class T>
-class NamedTable {
-public:
-  NamedTable() { }
-  T *insert(T *p) { return (T *)table_.insert(p); }
-  T *lookup(const StringC &str) const { return (T *)table_.lookup(str); }
-  T *remove(const StringC &str) { return (T *)table_.remove(str); }
-  size_t count() const { return table_.count(); }
-  void clear() { table_.clear(); }
-  void swap(NamedTable<T> &to) { table_.swap(to.table_); }
-private:
-  NamedTable(const NamedTable<T> &); // undefined
-  void operator=(const NamedTable<T> &); // undefined
-  OwnerTable<Named, StringC, Hash, NamedTableKeyFunction>
-    table_;
-  friend class NamedTableIter<T>;
-  friend class ConstNamedTableIter<T>;
-};
-
-template<class T>
-class NamedTableIter {
-public:
-  NamedTableIter(const NamedTable<T> &table) : iter_(table.table_) { }
-  T *next() { return (T *)iter_.next(); }
-private:
-  OwnerTableIter<Named, StringC, Hash, NamedTableKeyFunction> iter_;
-};
-
-template<class T>
-class ConstNamedTableIter {
-public:
-  ConstNamedTableIter(const NamedTable<T> &table) : iter_(table.table_) { }
-  const T *next() { return (T *)iter_.next(); }
-private:
-  OwnerTableIter<Named, StringC, Hash, NamedTableKeyFunction> iter_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not NamedTable_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Notation.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Notation_INCLUDED
-#define Notation_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Owner.h"
-#include "StringC.h"
-#include "NamedResource.h"
-#include "types.h"
-#include "Ptr.h"
-#include "ExternalId.h"
-#include "Boolean.h"
-#include "Attributed.h"
-#include "StringResource.h"
-#include "EntityDecl.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class ParserState;
-
-class SP_API Notation : public EntityDecl, public Attributed {
-public:
-  Notation(const StringC &,
-	   const ConstPtr<StringResource<Char> > &dtdName,
-	   Boolean dtdIsBase);
-  void setExternalId(const ExternalId &, const Location &);
-  const ExternalId &externalId() const;
-  Boolean defined() const;
-  void generateSystemId(ParserState &);
-  const StringC *systemIdPointer() const;
-  const StringC *publicIdPointer() const;
-private:
-  Notation(const Notation &);	// undefined
-  void operator=(const Notation &); // undefined
-  PackedBoolean defined_;
-  ExternalId externalId_;
-};
-
-inline
-const ExternalId &Notation::externalId() const
-{
-  return externalId_;
-}
-
-inline
-Boolean Notation::defined() const
-{
-  return defined_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Notation_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/NotationStorage.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef NotationStorage_INCLUDED
-#define NotationStorage_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "StorageManager.h"
-#include "CharsetInfo.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API NotationStorageManager : public StorageManager {
-public:
-  NotationStorageManager(const char *type);
-  StorageObject *makeStorageObject(const StringC &id,
-				   const StringC &baseId,
-				   Boolean search,
-				   Boolean mayRewind,
-				   Messenger &,
-				   StringC &foundId);
-  const char *type() const;
-  Boolean inheritable() const;
-private:
-  NotationStorageManager(const NotationStorageManager &); // undefined
-  void operator=(const NotationStorageManager &);	  // undefined
-  const char *type_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not NotationStorage_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/OpenElement.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef OpenElement_INCLUDED
-#define OpenElement_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Boolean.h"
-#include "ContentToken.h"
-#include "ElementType.h"
-#include "Link.h"
-#include "Mode.h"
-#include "Allocator.h"
-#include "Location.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API OpenElement : public Link {
-public:
-  void *operator new(size_t sz, Allocator &alloc) { return alloc.alloc(sz); }
-  void *operator new(size_t sz) { return Allocator::allocSimple(sz); }
-  void operator delete(void *p) { Allocator::free(p); }
-  OpenElement(const ElementType *, Boolean net, Boolean included,
-	      const ShortReferenceMap *currentMap,
-	      const Location &startLocation);
-  Boolean isFinished() const;
-  Boolean tryTransition(const ElementType *);
-  const LeafContentToken *invalidExclusion(const ElementType *) const;
-  // This doesn't handle declared content of EMPTY.
-  // If this situation can arise must use declaredEmpty().
-  Boolean tryTransitionPcdata();
-  const LeafContentToken *impliedStartTag() const;
-  void doRequiredTransition();
-  const ElementType *type() const;
-  Boolean netEnabling() const;
-  Boolean included() const;
-  const MatchState &matchState() const;
-  void setMatchState(const MatchState &);
-  Mode mode(Boolean netEnabled) const;
-  const ShortReferenceMap *map() const;
-  void setMap(const ShortReferenceMap *);
-  Boolean requiresSpecialParse() const;
-  const Location &startLocation() const;
-  const LeafContentToken *currentPosition() const;
-  Boolean declaredEmpty() const;
-  void setConref();
-  unsigned long index() const;
-  void setIndex(unsigned long);
-private:
-  OpenElement(const OpenElement &); // undefined
-  void operator=(const OpenElement &); // undefined
-  const ElementType *elementType_;
-  PackedBoolean netEnabling_;		// start-tag was net-enabling
-  PackedBoolean included_;
-  MatchState matchState_;
-  ElementDefinition::DeclaredContent declaredContent_;
-  const ShortReferenceMap *map_;
-  Location startLocation_;
-  unsigned long index_;
-};
-
-inline
-const ElementType *OpenElement::type() const
-{
-  return elementType_;
-}
-
-inline 
-Boolean OpenElement::netEnabling() const
-{
-  return netEnabling_;
-}
-
-inline
-Boolean OpenElement::included() const
-{
-  return included_;
-}
-
-inline
-const MatchState &OpenElement::matchState() const
-{
-  return matchState_;
-}
-
-inline
-void OpenElement::setMatchState(const MatchState &state)
-{
-  matchState_ = state;
-}
-
-inline
-Boolean OpenElement::isFinished() const
-{
-  return (declaredContent_ != ElementDefinition::modelGroup
-	  || matchState_.isFinished());
-}
-  
-inline
-Boolean OpenElement::tryTransition(const ElementType *e)
-{
-  return (declaredContent_ == ElementDefinition::modelGroup
-	  ? matchState_.tryTransition(e)
-	  : (declaredContent_ == ElementDefinition::any));
-}
-
-inline
-Boolean OpenElement::tryTransitionPcdata()
-{
-  return (declaredContent_ == ElementDefinition::modelGroup
-	  ? matchState_.tryTransitionPcdata()
-	  : 1);			// CDATA, RCDATA, ANY all ok
-}
-
-inline
-const LeafContentToken *OpenElement::invalidExclusion(const ElementType *e)
-     const
-{
-  return (declaredContent_ == ElementDefinition::modelGroup
-	  ? matchState_.invalidExclusion(e)
-	  : 0);
-}
-
-inline
-void OpenElement::doRequiredTransition()
-{
-  matchState_.doRequiredTransition();
-}
-
-inline
-const LeafContentToken *OpenElement::impliedStartTag() const
-{
-  return (declaredContent_ == ElementDefinition::modelGroup
-	  ? matchState_.impliedStartTag()
-	  : 0);
-}
-
-inline
-const ShortReferenceMap *OpenElement::map() const
-{
-  return map_;
-}
-
-inline
-void OpenElement::setMap(const ShortReferenceMap *map)
-{
-  map_ = map;
-}
-
-inline
-Boolean OpenElement::requiresSpecialParse() const
-{
-  return (declaredContent_ == ElementDefinition::cdata
-	  || declaredContent_ == ElementDefinition::rcdata);
-}
-
-inline
-Mode OpenElement::mode(Boolean netEnabled) const
-{
-  return elementType_->definition()->mode(netEnabled);
-}
-
-inline
-const Location &OpenElement::startLocation() const
-{
-  return startLocation_;
-}
-
-inline
-const LeafContentToken *OpenElement::currentPosition() const
-{
-  return (declaredContent_ == ElementDefinition::modelGroup
-	  ? matchState_.currentPosition()
-	  : 0);
-}
-
-inline
-Boolean OpenElement::declaredEmpty() const
-{
-  return declaredContent_ == ElementDefinition::empty;
-}
-
-inline
-void OpenElement::setConref()
-{
-  declaredContent_ = ElementDefinition::empty;
-}
-
-inline
-unsigned long OpenElement::index() const
-{
-  return index_;
-}
-
-inline
-void OpenElement::setIndex(unsigned long index)
-{
-  index_ = index;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not OpenElement_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Options.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-// Derived from comp.sources.unix/volume3/att_getopt.
-// See
-
-#ifndef Options_DEF_INCLUDED
-#define Options_DEF_INCLUDED 1
-
-#ifndef OPTION_CHAR
-#define OPTION_CHAR T('-')
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-Options<T>::Options(int argc, T *const *argv, const T *opts)
-: argc_(argc), argv_(argv), opts_(opts), ind_(1), sp_(1)
-{
-}
-
-template<class T>
-const T *Options<T>::search(T c) const
-{
-  for (const T *s = opts_; *s; s++)
-    if (*s == c)
-      return s;
-  return 0;
-}
-
-template<class T>
-bool Options<T>::get(T &c)
-{
-  const T *cp;
-  if (sp_ == 1) {
-    if (ind_ >= argc_)
-      return false;
-    if ((
-#ifdef OTHER_OPTION_CHAR
-	 argv_[ind_][0] != OTHER_OPTION_CHAR &&
-#endif
-	 argv_[ind_][0] != OPTION_CHAR) || argv_[ind_][1] == 0) {
-#ifdef REORDER_ARGS
-      int i;
-      for (i = ind_; i < argc_; i++)
-	if ((
-#ifdef OTHER_OPTION_CHAR
-	     argv_[i][0] == OTHER_OPTION_CHAR ||
-#endif
-	     argv_[i][0] == OPTION_CHAR) && argv_[i][1] != 0)
-	  break;
-      if (i < argc_) {
-	c = argv_[i][1];
-	if (c != T(':') && c != OPTION_CHAR
-	    && (cp = search(c)) != 0
-	    && cp[1] == T(':') && argv_[i][2] == 0 && i < argc_ - 1) {
-	  int j;
-	  T *temp1 = argv_[i];
-	  T *temp2 = argv_[i + 1];
-	  for (j = i - 1; j >= ind_; j--)
-	    argv_[j+2] = argv_[j];
-	  argv_[ind_] = temp1;
-	  argv_[ind_ + 1] = temp2;
-	}
-	else {
-	  int j;
-	  T *temp = argv_[i];
-	  for (j = i - 1; j >= ind_; j--)
-	    argv_[j+1] = argv_[j];
-	  argv_[ind_] = temp;
-	}
-      }
-      else
-#endif
-	return false;
-    }
-    if ((argv_[ind_][0] == OPTION_CHAR && argv_[ind_][1] == OPTION_CHAR
-	 && argv_[ind_][2] == 0)
-#ifdef OTHER_OPTION_CHAR
-	|| (argv_[ind_][0] == OTHER_OPTION_CHAR
-	    && argv_[ind_][1] == OTHER_OPTION_CHAR
-	    && argv_[ind_][2] == 0)
-#endif
-	) {
-      ind_++;
-      return false;
-    }
-  }
-  opt_ = c = argv_[ind_][sp_];
-  if (c == T(':') || (cp = search(c)) == 0) {
-    if (argv_[ind_][++sp_] == 0) {
-      ind_++;
-      sp_ = 1;
-    }
-    c = T('?');
-    return true;
-  }
-  if (*++cp == T(':')) {
-    if (argv_[ind_][sp_ + 1] != 0)
-      arg_ = &argv_[ind_++][sp_ + 1];
-    else if (++ind_ >= argc_) {
-      sp_ = 1;
-      c = (*opts_ == T(':') ? T(':') : T('?'));
-      return true;
-    }
-    else
-      arg_ = argv_[ind_++];
-    sp_ = 1;
-  } 
-  else {
-    if (argv_[ind_][++sp_] == 0) {
-      sp_ = 1;
-      ind_++;
-    }
-    arg_ = 0;
-  }
-  return true;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Options_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Options.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Options_INCLUDED
-#define Options_INCLUDED 1
-
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-// This is a mildly C++ified version of getopt().
-// It never prints any message.
-
-template<class T>
-class Options {
-public:
-  Options(int argc, T *const *, const T *);
-  // Returns false if there are no more options.
-  bool get(T &);
-  T *arg() const { return arg_; } // optarg
-  T opt() const { return opt_; }  // optopt
-  int ind() const { return ind_; } // optind
-private:
-  const T *search(T) const;
-  const T *opts_;
-  T *const *argv_;
-  int argc_;
-  int ind_;
-  T opt_;
-  T *arg_;
-  int sp_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Options_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "Options.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/OutputByteStream.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef OutputByteStream_INCLUDED
-#define OutputByteStream_INCLUDED 1
-
-#include "StringOf.h"
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API OutputByteStream {
-public:
-  OutputByteStream();
-  virtual ~OutputByteStream();
-  virtual void flush() = 0;
-  void sputc(char c);
-  void sputn(const char *, size_t);
-  OutputByteStream &operator<<(char);
-  OutputByteStream &operator<<(unsigned char);
-  OutputByteStream &operator<<(const char *);
-  OutputByteStream &operator<<(int);
-  OutputByteStream &operator<<(unsigned);
-  OutputByteStream &operator<<(long);
-  OutputByteStream &operator<<(unsigned long);
-  OutputByteStream &operator<<(const String<char> &);
-  char *getBufferPtr() const;
-  size_t getBufferSize() const;
-  void usedBuffer(size_t);
-  virtual void flushBuf(char) = 0;
-protected:
-  char *ptr_;
-  char *end_;
-};
-
-inline
-char *OutputByteStream::getBufferPtr() const
-{
-  return ptr_;
-}
-
-inline
-size_t OutputByteStream::getBufferSize() const
-{
-  return end_ - ptr_;
-}
-
-inline
-void OutputByteStream::usedBuffer(size_t n)
-{
-  ptr_ += n;
-}
-
-inline
-void OutputByteStream::sputc(char c)
-{
-  if (ptr_ < end_)
-    *ptr_++ = c;
-  else
-    flushBuf(c);
-}
-
-inline
-OutputByteStream &OutputByteStream::operator<<(char c)
-{
-  sputc(c);
-  return *this;
-}
-
-inline
-OutputByteStream &OutputByteStream::operator<<(unsigned char c)
-{
-  sputc(char(c));
-  return *this;
-}
-
-inline
-OutputByteStream &OutputByteStream::operator<<(int n)
-{
-  return *this << long(n);
-}
-
-inline
-OutputByteStream &OutputByteStream::operator<<(unsigned n)
-{
-  return *this << (unsigned long)n;
-}
-
-inline
-OutputByteStream &OutputByteStream::operator<<(const String<char> &s)
-{
-  sputn(s.data(), s.size());
-  return *this;
-}
-
-class SP_API StrOutputByteStream : public OutputByteStream {
-public:
-  StrOutputByteStream();
-  void extractString(String<char> &);
-protected:
-  StrOutputByteStream(const StrOutputByteStream &); // undefined
-  void operator=(const StrOutputByteStream &); // undefined
-  void flush();
-  void flushBuf(char);
-  String<char> buf_;
-};
-
-class SP_API FileOutputByteStream : public OutputByteStream {
-public:
-  FileOutputByteStream();
-  FileOutputByteStream(int fd, Boolean closeFd = 1);
-  ~FileOutputByteStream();
-#ifdef SP_WIDE_SYSTEM
-  Boolean open(const wchar_t *);
-#else
-  Boolean open(const char *);
-#endif
-  Boolean attach(int fd, Boolean closeFd = 1);
-  Boolean close();
-private:
-  FileOutputByteStream(const FileOutputByteStream &); // undefined
-  void operator=(const FileOutputByteStream &); // undefined
-  void flush();
-  void flushBuf(char);
-  String<char> buf_;
-  int fd_;
-  Boolean closeFd_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not OutputByteStream_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/OutputCharStream.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef OutputCharStream_INCLUDED
-#define OutputCharStream_INCLUDED 1
-
-#include "types.h"
-#include <stddef.h>
-#include "StringC.h"
-#include "Owner.h"
-#include "CodingSystem.h"
-#include "OutputByteStream.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API OutputCharStream {
-public:
-  enum Newline { newline };
-  typedef void (*Escaper)(OutputCharStream &, Char);
-  OutputCharStream();
-  virtual ~OutputCharStream();
-  OutputCharStream &put(Char);
-  OutputCharStream &write(const Char *, size_t);
-  virtual void flush() = 0;
-  virtual void setEscaper(Escaper);
-
-  OutputCharStream &operator<<(char);
-  OutputCharStream &operator<<(const char *);
-  OutputCharStream &operator<<(const StringC &);
-  OutputCharStream &operator<<(unsigned long);
-  OutputCharStream &operator<<(int);
-  OutputCharStream &operator<<(Newline);
-private:
-  OutputCharStream(const OutputCharStream &);	// undefined
-  void operator=(const OutputCharStream &);	// undefined
-
-  virtual void flushBuf(Char) = 0;
-protected:
-  Char *ptr_;
-  Char *end_;
-};
-
-class SP_API EncodeOutputCharStream : public OutputCharStream,
-                            private Encoder::Handler {
-public:
-  EncodeOutputCharStream();
-  // the OutputByteStream will not be deleted
-  EncodeOutputCharStream(OutputByteStream *, const OutputCodingSystem *);
-  ~EncodeOutputCharStream();
-  void open(OutputByteStream *, const OutputCodingSystem *);
-  void flush();
-  void setEscaper(Escaper);
-private:
-  EncodeOutputCharStream(const EncodeOutputCharStream &); // undefined
-  void operator=(const EncodeOutputCharStream &);	    // undefined
-  EncodeOutputCharStream(OutputByteStream *, Encoder *);
-  void allocBuf(int bytesPerChar);
-  void flushBuf(Char);
-  void handleUnencodable(Char c, OutputByteStream *);
-  Char *buf_;
-  OutputByteStream *byteStream_;
-  Encoder *encoder_;
-  Owner<Encoder> ownedEncoder_;
-  Escaper escaper_;
-};
-
-class SP_API StrOutputCharStream : public OutputCharStream {
-public:
-  StrOutputCharStream();
-  ~StrOutputCharStream();
-  void extractString(StringC &);
-  void flush();
-private:
-  void flushBuf(Char);
-  void sync(size_t);
-  StrOutputCharStream(const StrOutputCharStream &); // undefined
-  void operator=(const StrOutputCharStream &);	    // undefined
-  Char *buf_;
-  size_t bufSize_;
-};
-
-class SP_API RecordOutputCharStream : public OutputCharStream {
-public:
-  RecordOutputCharStream(OutputCharStream *);
-  ~RecordOutputCharStream();
-  void flush();
-  void setEscaper(Escaper);
-private:
-  RecordOutputCharStream(const RecordOutputCharStream &); // undefined
-  void operator=(const RecordOutputCharStream &);	  // undefined
-  void flushBuf(Char);
-  void outputBuf();
-
-  OutputCharStream *os_;
-  enum { bufSize_ = 1024 };
-  Char buf_[bufSize_];
-};
-
-inline
-OutputCharStream &OutputCharStream::put(Char c)
-{
-  if (ptr_ < end_)
-    *ptr_++ = c;
-  else
-    flushBuf(c);
-  return *this;
-}
-
-inline
-OutputCharStream &OutputCharStream::operator<<(char c)
-{
-  return put(Char(c));
-}
-
-inline
-OutputCharStream &OutputCharStream::operator<<(Newline)
-{
-  put(Char(SP_LINE_TERM1));
-#ifdef SP_LINE_TERM2
-  put(Char(SP_LINE_TERM2));
-#endif
-  return *this;
-}
-
-inline
-OutputCharStream &OutputCharStream::operator<<(const StringC &str)
-{
-  return write(str.data(), str.size());
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not OutputCharStream_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Owner.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Owner_DEF_INCLUDED
-#define Owner_DEF_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-Owner<T>::~Owner()
-{
-  if (p_)
-    delete p_;
-}
-
-template<class T>
-void Owner<T>::del()
-{
-  delete p_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Owner_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Owner.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Owner_INCLUDED
-#define Owner_INCLUDED 1
-
-// A pointer that owns the object pointed to.
-// T must be of class type.
-// This is coded so that T need not yet have been defined.
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class Owner {
-public:
-  Owner() : p_(0) { }
-  Owner(T *p) : p_(p) { }
-  ~Owner();
-  void operator=(T *p) {
-    if (p_) del();
-    p_ = p;
-  }
-  operator int() const { return p_ != 0; }
-  T *pointer() const { return p_; }
-  T *operator->() const { return p_; }
-  T &operator*() const { return *p_; }
-  void swap(Owner<T> &x) {
-    T *tem = p_;
-    p_ = x.p_;
-    x.p_ = tem;
-  }
-  T *extract() {
-    T *tem = p_;
-    p_ = 0;
-    return tem;
-  }
-  void clear() {
-    if (p_) {
-      del();
-      p_ = 0;
-    }
-  }
-private:
-  Owner(const Owner<T> &);	// undefined
-  void operator=(const Owner<T> &o); // undefined
-  void del();
-  T *p_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Owner_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "Owner.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/OwnerTable.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1994 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef OwnerTable_DEF_INCLUDED
-#define	OwnerTable_DEF_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template < class T, class K, class HF, class KF >
-OwnerTable < T, K, HF, KF > ::~OwnerTable()
-{
-	for (size_t i = 0; i < this->vec_.size(); i++)
-		delete this->vec_[i];
-}
-
-template < class T, class K, class HF, class KF >
-void OwnerTable < T, K, HF, KF > ::clear()
-{
-	for (size_t i = 0; i < this->vec_.size(); i++)
-		delete this->vec_[i];
-	PointerTable < T *, K, HF, KF > ::clear();
-}
-
-template < class T, class K, class HF, class KF >
-void
-CopyOwnerTable < T, K, HF, KF > ::operator = (
-	const CopyOwnerTable < T, K, HF, KF > &t)
-{
-	this->clear();
-	PointerTable < T *, K, HF, KF > ::operator = (t);
-	// FIXME This isn't exception safe.
-	for (size_t i = 0; i < this->vec_.size(); i++)
-		if (this->vec_[i])
-			this->vec_[i] = this->vec_[i]->copy();
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not OwnerTable_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/OwnerTable.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef OwnerTable_INCLUDED
-#define OwnerTable_INCLUDED 1
-
-#include "PointerTable.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T, class K, class HF, class KF>
-class OwnerTable : public PointerTable<T *, K, HF, KF> {
-public:
-  OwnerTable() { }
-  ~OwnerTable();
-  void clear();
-  void swap(OwnerTable<T, K, HF, KF> &x) {
-    PointerTable<T *, K, HF, KF>::swap(x);
-  }
-private:
-  OwnerTable(const OwnerTable<T, K, HF, KF> &);
-  void operator=(const OwnerTable<T, K, HF, KF> &);
-};
-
-template<class T, class K, class HF, class KF>
-class OwnerTableIter : public PointerTableIter<T *, K, HF, KF> {
-public:
-  OwnerTableIter(const OwnerTable<T, K, HF, KF> &table)
-    : PointerTableIter<T *, K, HF, KF>(table) { }
-};
-
-template<class T, class K, class HF, class KF>
-class CopyOwnerTable : public OwnerTable<T, K, HF, KF> {
-public:
-  CopyOwnerTable() { }
-  CopyOwnerTable(const CopyOwnerTable<T, K, HF, KF> &tab) { *this = tab; }
-  void operator=(const CopyOwnerTable<T, K, HF, KF> &tab);
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not OwnerTable_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "OwnerTable.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ParserApp.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ParserApp_INCLUDED
-#define ParserApp_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "SgmlParser.h"
-#include "ParserOptions.h"
-#include "EntityApp.h"
-#include "StringC.h"
-#include "ErrorCountEventHandler.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API ParserApp : public EntityApp {
-public:
-  ParserApp(const char *requiredInternalCode = 0);
-  void processOption(AppChar opt, const AppChar *arg);
-  int processSysid(const StringC &);
-  virtual ErrorCountEventHandler *makeEventHandler() = 0;
-  Boolean enableWarning(const AppChar *s);
-  void initParser(const StringC &sysid);
-  SgmlParser &parser();
-  // This calls the ArcEngine if the options have enabled that.
-  void parseAll(SgmlParser &, EventHandler &,
-		const volatile sig_atomic_t *cancelPtr);
-  virtual void allLinkTypesActivated();
-protected:
-  virtual int generateEvents(ErrorCountEventHandler *);
-  ParserOptions options_;
-  SgmlParser parser_;
-  unsigned errorLimit_;
-  Vector<StringC> arcNames_;
-  Vector<const AppChar *> activeLinkTypes_;
-};
-
-inline
-SgmlParser &ParserApp::parser()
-{
-  return parser_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ParserApp_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ParserOptions.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ParserOptions_INCLUDED
-#define ParserOptions_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "EventsWanted.h"
-#include "Vector.h"
-#include "StringC.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct Warnings {
-  Warnings();
-  PackedBoolean warnSgmlDecl;
-  PackedBoolean warnDuplicateEntity;
-  PackedBoolean warnShould;
-  PackedBoolean warnUndefinedElement;
-  PackedBoolean warnDefaultEntityReference;
-  PackedBoolean warnMixedContent;
-  PackedBoolean warnEmptyTag;
-  PackedBoolean warnUnusedMap;
-  PackedBoolean warnUnusedParam;
-  PackedBoolean warnNotationSystemId;
-  PackedBoolean warnInclusion;
-  PackedBoolean warnExclusion;
-  PackedBoolean warnRcdataContent;
-  PackedBoolean warnCdataContent;
-  PackedBoolean warnPsComment;
-  PackedBoolean warnElementGroupDecl;
-  PackedBoolean warnAttlistGroupDecl;
-  PackedBoolean warnPiEntity;
-  PackedBoolean warnInternalSdataEntity;
-  PackedBoolean warnInternalCdataEntity;
-  PackedBoolean warnExternalSdataEntity;
-  PackedBoolean warnExternalCdataEntity;
-  PackedBoolean warnBracketEntity;
-  PackedBoolean warnDataAttributes;
-  PackedBoolean warnMissingSystemId;
-  PackedBoolean warnConref;
-  PackedBoolean warnCurrent;
-  PackedBoolean warnNutokenDeclaredValue;
-  PackedBoolean warnNumberDeclaredValue;
-  PackedBoolean warnNameDeclaredValue;
-  PackedBoolean warnNamedCharRef;
-  PackedBoolean warnRefc;
-  PackedBoolean warnTempMarkedSection;
-  PackedBoolean warnRcdataMarkedSection;
-  PackedBoolean warnInstanceIncludeMarkedSection;
-  PackedBoolean warnInstanceIgnoreMarkedSection;
-  PackedBoolean warnAndGroup;
-  PackedBoolean warnRank;
-  PackedBoolean warnEmptyCommentDecl;
-  PackedBoolean warnAttributeValueNotLiteral;
-  PackedBoolean warnMissingAttributeName;
-  PackedBoolean warnCommentDeclS;
-  PackedBoolean warnCommentDeclMultiple;
-  PackedBoolean warnMissingStatusKeyword;
-  PackedBoolean warnMultipleStatusKeyword;
-  PackedBoolean warnInstanceParamEntityRef;
-  PackedBoolean warnMinimizationParam;
-  PackedBoolean warnMixedContentRepOrGroup;
-  PackedBoolean warnNameGroupNotOr;
-  PackedBoolean warnPiMissingName;
-  PackedBoolean warnInstanceStatusKeywordSpecS;
-  PackedBoolean warnExternalDataEntityRef;
-  PackedBoolean warnAttributeValueExternalEntityRef;
-  PackedBoolean warnDataDelim;
-  PackedBoolean warnExplicitSgmlDecl;
-  PackedBoolean warnInternalSubsetMarkedSection;
-  PackedBoolean warnDefaultEntityDecl;
-  PackedBoolean warnNonSgmlCharRef;
-  PackedBoolean warnInternalSubsetPsParamEntityRef;
-  PackedBoolean warnInternalSubsetTsParamEntityRef;
-  PackedBoolean warnInternalSubsetLiteralParamEntityRef;
-};
-
-struct SP_API ParserOptions : public Warnings {
-  ParserOptions();
-  EventsWanted eventsWanted;
-  PackedBoolean datatag;
-  PackedBoolean omittag;
-  PackedBoolean rank;
-  PackedBoolean shorttag;
-  PackedBoolean emptynrm;
-  Number linkSimple;
-  PackedBoolean linkImplicit;
-  Number linkExplicit;
-  Number concur;
-  Number subdoc;
-  PackedBoolean formal;
-  PackedBoolean shortref;
-  enum { sgmlDeclTypeValid = -1 };
-  short typeValid;
-  enum Quantity {
-    ATTCNT,
-    ATTSPLEN,
-    BSEQLEN,
-    DTAGLEN,
-    DTEMPLEN,
-    ENTLVL,
-    GRPCNT,
-    GRPGTCNT,
-    GRPLVL,
-    LITLEN,
-    NAMELEN,
-    NORMSEP,
-    PILEN,
-    TAGLEN,
-    TAGLVL
-  };
-  enum { nQuantity = TAGLVL + 1 };
-  Number quantity[nQuantity];
-  PackedBoolean errorIdref;
-  PackedBoolean errorSignificant;
-  PackedBoolean errorAfdr;	// error if AFDR extensions are used
-  // These override what was specified in the SGML declaration.
-  PackedBoolean noUnclosedTag;
-  PackedBoolean noNet;
-  Vector<StringC> includes;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ParserOptions_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/PointerTable.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef PointerTable_DEF_INCLUDED
-#define PointerTable_DEF_INCLUDED 1
-
-#include <stdlib.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class P, class K, class HF, class KF>
-PointerTable<P, K, HF, KF>::PointerTable()
-: used_(0), usedLimit_(0), null_(0)
-{
-}
-
-template<class P, class K, class HF, class KF>
-void PointerTable<P, K, HF, KF>::clear()
-{
-  vec_.clear();
-  used_ = 0;
-  usedLimit_ = 0;
-}
-
-template<class P, class K, class HF, class KF>
-P PointerTable<P, K, HF, KF>::insert(P p, Boolean replace)
-{
-  size_t h;
-  if (vec_.size() == 0) {
-    vec_.assign(8, P(0));
-    usedLimit_ = 4;
-    h = startIndex(KF::key(*p));
-  }
-  else {
-    for (h = startIndex(KF::key(*p)); vec_[h] != 0 ; h = nextIndex(h))
-      if (KF::key(*vec_[h]) == KF::key(*p)) {
-	if (replace) {
-	  P tem(vec_[h]);
-	  vec_[h] = p;
-	  return tem;
-	}
-	else
-	  return vec_[h];
-      }
-    if (used_ >= usedLimit_) {
-      if (vec_.size() > size_t(-1)/2) {
-	if (usedLimit_ == vec_.size() - 1)
-	  abort();		// FIXME throw an exception
-	else
-	  usedLimit_ = vec_.size() - 1;
-      }
-      else {
-	// rehash
-	Vector<P> oldVec(vec_.size()*2, P(0));
-	vec_.swap(oldVec);
-	usedLimit_ = vec_.size() / 2;
-	for (size_t i = 0; i < oldVec.size(); i++)
-	  if (oldVec[i] != 0) {
-	    size_t j;
-	    for (j = startIndex(KF::key(*oldVec[i]));
-		 vec_[j] != 0;
-		 j = nextIndex(j))
-	      ;
-	    vec_[j] = oldVec[i];
-	  }
-	for (h = startIndex(KF::key(*p)); vec_[h] != 0; h = nextIndex(h))
-	  ;
-      }
-    }
-  }
-  used_++;
-  vec_[h] = p;
-  return 0;
-}
-
-template<class P, class K, class HF, class KF>
-const P &PointerTable<P, K, HF, KF>::lookup(const K &k) const
-{
-  if (used_ > 0) {
-    for (size_t i = startIndex(k); vec_[i] != 0; i = nextIndex(i))
-      if (KF::key(*vec_[i]) == k)
-	return vec_[i];
-  }
-  return null_;
-}
-
-template<class P, class K, class HF, class KF>
-P PointerTable<P, K, HF, KF>::remove(const K &k)
-{
-  if (used_ > 0) {
-    for (size_t i = startIndex(k); vec_[i] != 0; i = nextIndex(i))
-      if (KF::key(*vec_[i]) == k) {
-	P p = vec_[i];
-	do {
-	  vec_[i] = P(0);
-	  size_t j = i;
-	  size_t r;
-	  do {
-	    i = nextIndex(i);
-	    if (vec_[i] == 0)
-	      break;
-	    r = startIndex(KF::key(*vec_[i]));
-	  } while ((i <= r && r < j) || (r < j && j < i) || (j < i && i <= r));
-	  vec_[j] = vec_[i];
-	} while (vec_[i] != 0);
-	--used_;
-	return p;
-      }
-  }
-  return 0;
-}
-
-template<class P, class K, class HF, class KF>
-void PointerTable<P, K, HF, KF>::swap(PointerTable<P, K, HF, KF> &to)
-{
-  vec_.swap(to.vec_);
-  size_t tem = to.used_;
-  to.used_ = used_;
-  used_ = tem;
-  tem = to.usedLimit_;
-  to.usedLimit_ = usedLimit_;
-  usedLimit_ = tem;
-}
-
-template<class P, class K, class HF, class KF>
-PointerTableIter<P, K, HF, KF>::PointerTableIter(const PointerTable<P, K, HF, KF> &table)
-: tablePtr_(&table), i_(0)
-{
-}
-
-template<class P, class K, class HF, class KF>
-const P &PointerTableIter<P, K, HF, KF>::next()
-{
-  for (; i_ < tablePtr_->vec_.size(); i_++)
-    if (tablePtr_->vec_[i_] != 0)
-      return tablePtr_->vec_[i_++];
-  return tablePtr_->null_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not PointerTable_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/PointerTable.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef PointerTable_INCLUDED
-#define PointerTable_INCLUDED 1
-
-#include "Vector.h"
-#include "Boolean.h"
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class P, class K, class HF, class KF> class PointerTableIter;
-
-template<class P, class K, class HF, class KF>
-class PointerTable {
-  void constraints() {
-    P p(0);
-    const K &key = KF::key(*p);
-    unsigned long n = HF::hash(key);
-    n = 0;			// prevent warning
-  }
-public:
-  PointerTable();
-  P insert(P, Boolean replace = 0);
-  // Return a reference so that it is possible to do
-  // lookups into a table of smart-pointers from multiple threads.
-  const P &lookup(const K &) const;
-  P remove(const K &);
-  size_t count() const { return used_; }
-  void clear();
-  void swap(PointerTable<P, K, HF, KF> &);
-protected:
-  size_t used_;
-  size_t usedLimit_;
-  Vector<P> vec_;
-  P null_;
-
-  size_t startIndex(const K &k) const {
-    return size_t(HF::hash(k) & (vec_.size() - 1));
-  }
-  size_t nextIndex(size_t i) const {
-    return i == 0 ? vec_.size() - 1 : i - 1;
-  }
-  friend class PointerTableIter<P, K, HF, KF>;
-};
-
-template<class P, class K, class HF, class KF>
-class PointerTableIter {
-public:
-  PointerTableIter(const PointerTable<P, K, HF, KF> &);
-  const P &next();
-private:
-  const PointerTable<P, K, HF, KF> *tablePtr_;
-  size_t i_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not PointerTable_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "PointerTable.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/PosixStorage.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef PosixStorage_INCLUDED
-#define PosixStorage_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "StorageManager.h"
-#include "DescriptorManager.h"
-#include "Vector.h"
-#include "StringC.h"
-#include "CharsetInfo.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Messenger;
-class CharsetInfo;
-class UnivCharsetDesc;
-class Filename;
-class OutputCodingSystem;
-
-class SP_API PosixStorageManager : public IdStorageManager {
-public:
-  PosixStorageManager(const char *type,
-		      const CharsetInfo *filenameCharset,
-#ifndef SP_WIDE_SYSTEM
-		      const OutputCodingSystem *filenameCodingSystem,
-#endif
-		      int maxFDs);
-  StorageObject *makeStorageObject(const StringC &id,
-				   const StringC &baseId,
-				   Boolean search,
-				   Boolean mayRewind,
-				   Messenger &,
-				   StringC &foundId);
-  Boolean resolveRelative(const StringC &, StringC &, Boolean syntactic = 0)
-    const;
-  const char *type() const;
-  void addSearchDir(const StringC &);
-  Boolean transformNeutral(StringC &, Boolean fold, Messenger &) const;
-private:
-  Boolean isAbsolute(const StringC &) const;
-  StringC extractDir(const StringC &) const;
-  StringC combineDir(const StringC &, const StringC &) const;
-  PosixStorageManager(const PosixStorageManager &); // undefined
-  void operator=(const PosixStorageManager &);	    // undefined
-  DescriptorManager descriptorManager_;
-#ifndef SP_WIDE_SYSTEM
-  const OutputCodingSystem *filenameCodingSystem_;
-#endif
-  const char *type_;
-  Vector<StringC> searchDirs_;
-};
-
-class SP_API PosixFdStorageManager : public IdStorageManager {
-public:
-  PosixFdStorageManager(const char *type,
-			const CharsetInfo *filenameCharset);
-  StorageObject *makeStorageObject(const StringC &id,
-				   const StringC &baseId,
-				   Boolean,
-				   Boolean mayRewind,
-				   Messenger &mgr,
-				   StringC &foundId);
-  const char *type() const;
-  Boolean inheritable() const;
-private:
-  PosixFdStorageManager(const PosixFdStorageManager &); // undefined
-  void operator=(const PosixFdStorageManager &);	    // undefined
-  const char *type_;
-
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not PosixStorage_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Ptr.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Ptr_DEF_INCLUDED
-#define Ptr_DEF_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-Ptr<T>::Ptr(T *ptr) : ptr_(ptr)
-{
-  if (ptr_)
-    ptr_->ref();
-}
-
-template<class T>
-Ptr<T>::~Ptr()
-{
-  if (ptr_) {
-    if (ptr_->unref())
-      delete ptr_;
-    ptr_ = 0;
-  }
-}
-
-template<class T>
-Ptr<T>::Ptr(const Ptr<T> &p)
-: ptr_(p.ptr_)
-{
-  if (p.ptr_)
-    p.ptr_->ref();
-}
-
-template<class T>
-Ptr<T> &Ptr<T>::operator=(const Ptr<T> &p)
-{
-  if (p.ptr_)
-    p.ptr_->ref();
-  if (ptr_ && ptr_->unref())
-    delete ptr_;
-  ptr_ = p.ptr_;
-  return *this;
-}
-
-template<class T>
-Ptr<T> &Ptr<T>::operator=(T *p)
-{
-  if (p)
-    p->ref();
-  if (ptr_ && ptr_->unref())
-    delete ptr_;
-  ptr_ = p;
-  return *this;
-}
-
-template<class T>
-void Ptr<T>::clear()
-{
-  if (ptr_) {
-    if (ptr_->unref())
-      delete ptr_;
-    ptr_ = 0;
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Ptr_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Ptr.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Ptr_INCLUDED
-#define Ptr_INCLUDED 1
-
-#include "Boolean.h"
-
-// T must have Resource as a public base class
-// T may be an incomplete type
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class Ptr {
-public:
-  Ptr() : ptr_(0) { }
-  Ptr(T *ptr);
-  ~Ptr();
-  Ptr(const Ptr<T> &);
-  Ptr<T> &operator=(const Ptr<T> &);
-  Ptr<T> &operator=(T *);
-  T *pointer() const { return ptr_; }
-  T *operator->() const { return ptr_; }
-  T &operator*() const { return *ptr_; }
-  void swap(Ptr<T> &p) {
-    T *tem = p.ptr_;
-    p.ptr_ = ptr_;
-    ptr_ = tem;
-  }
-  Boolean isNull() const { return ptr_ == 0; }
-  // operator const void *() const { return ptr_; }
-  void clear();
-  Boolean operator==(const Ptr<T> &p) const {
-    return ptr_ == p.ptr_;
-  }
-  Boolean operator!=(const Ptr<T> &p) const {
-    return ptr_ != p.ptr_;
-  }
-  Boolean operator==(const T *p) const {
-    return ptr_ == p;
-  }
-  Boolean operator!=(const T *p) const {
-    return ptr_ != p;
-  }
-private:
-  T *ptr_;
-};
-
-template<class T>
-class ConstPtr : private Ptr<T> {
-public:
-  ConstPtr() { }
-  ConstPtr(T *ptr) : Ptr<T>(ptr) { }
-  ConstPtr(const Ptr<T> &p) : Ptr<T>(p) { }
-  ConstPtr(const ConstPtr<T> &p) : Ptr<T>(p) { }
-  ConstPtr<T> &operator=(const Ptr<T> &p) {
-    Ptr<T>::operator=(p); return *this;
-  }
-  ConstPtr<T> &operator=(const ConstPtr<T> &p) {
-    Ptr<T>::operator=(p); return *this;
-  }
-  ConstPtr<T> &operator=(T *p) {
-    Ptr<T>::operator=(p); return *this;
-  }
-  const T *pointer() const { return Ptr<T>::pointer(); }
-  const T *operator->() const { return Ptr<T>::pointer(); }
-  const T &operator*() const { return *Ptr<T>::pointer(); }
-  void swap(ConstPtr<T> &p) { Ptr<T>::swap(p); }
-  Ptr<T>::isNull;
-  Ptr<T>::clear;
-  Boolean operator==(const Ptr<T> &p) const { return Ptr<T>::operator==(p); }
-  Boolean operator!=(const Ptr<T> &p) const { return Ptr<T>::operator!=(p); }
-  Boolean operator==(const ConstPtr<T> &p) const {
-    return Ptr<T>::operator==(p);
-  }
-  Boolean operator!=(const ConstPtr<T> &p) const {
-    return Ptr<T>::operator!=(p);
-  }
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Ptr_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "Ptr.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/RangeMap.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef RangeMap_DEF_INCLUDED
-#define RangeMap_DEF_INCLUDED 1
-
-#include "RangeMap.h"
-#include "ISet.h"
-#include "types.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class From, class To>
-RangeMap<From, To>::RangeMap()
-{
-}
-
-template<class From, class To>
-Boolean RangeMap<From, To>::map(From from, To &to, From &alsoMax) const
-{
-  // FIXME use binary search
-  for (size_t i = 0; i < ranges_.size(); i++) {
-    const RangeMapRange<From,To> &r = ranges_[i];
-    if (r.fromMin <= from && from <= r.fromMax) {
-      to = r.toMin + (from - r.fromMin);
-      alsoMax = r.fromMax;
-      return 1;
-    }
-    if (r.fromMin > from) {
-      alsoMax = r.fromMin - 1;
-      return 0;
-    }
-  }
-  alsoMax = From(-1);
-  return 0;
-}
-
-
-typedef ISet<WideChar> RangeMap_dummy;
-
-template<class From, class To>
-unsigned RangeMap<From, To>::inverseMap(To to, From &from,
-					ISet<WideChar> &fromSet,
-					WideChar &count) const
-{
-  // FIXME use binary search
-  unsigned ret = 0;
-  count = WideChar(-1);
-  for (size_t i = 0; i < ranges_.size(); i++) {
-    const RangeMapRange<From,To> &r = ranges_[i];
-    if (r.toMin <= to && to <= r.toMin + (r.fromMax - r.fromMin)) {
-      From n = r.fromMin + (to - r.toMin);
-      WideChar thisCount = r.fromMax - n + 1;
-      if (ret > 1) {
-	fromSet.add(n);
-	if (thisCount < count)
-	  count = thisCount;
-      }
-      else if (ret == 1) {
-	fromSet.add(from);
-	fromSet.add(n);
-	ret = 2;
-	if (thisCount < count)
-	  count = thisCount;
-      }
-      else {
-	count = thisCount;
-	from = n;
-	ret = 1;
-      }
-    }
-    else if (ret == 0 && r.toMin > to && (r.toMin - to < count))
-      count = r.toMin - to;
-  }
-  return ret;
-}
-
-template<class From, class To>
-RangeMapIter<From, To>::RangeMapIter(const RangeMap<From, To> &map)
-: count_(map.ranges_.size()), ptr_(map.ranges_.begin())
-{
-}
-
-// If the new range overlaps an existing one, the new
-// one takes precedence.
-
-template<class From, class To>
-void RangeMap<From, To>::addRange(From fromMin, From fromMax, To toMin)
-{
-  // FIXME use binary search
-  size_t i;
-  for (i = ranges_.size(); i > 0; i--)
-    if (fromMin > ranges_[i - 1].fromMax)
-      break;
-  // fromMin <= ranges[i].fromMax
-  Boolean coalesced = 0;
-  if (i > 0
-      && ranges_[i - 1].fromMax + 1 == fromMin
-      && ranges_[i - 1].toMin + (fromMin - ranges_[i - 1].fromMin) == toMin) {
-    // coalesce with previous
-    ranges_[i - 1].fromMax = fromMax;
-    i--;
-    coalesced = 1;
-  }
-  else if (i < ranges_.size() && fromMax >= ranges_[i].fromMin - 1) {
-    // overlap
-    if (fromMin <= ranges_[i].fromMin) {
-      if (toMin + (ranges_[i].fromMin - fromMin) == ranges_[i].toMin) {
-	ranges_[i].fromMin = fromMin;
-	if (fromMax <= ranges_[i].fromMax)
-	  return;
-	ranges_[i].fromMax = fromMax;
-	coalesced = 1;
-      }
-    }
-    else {
-      // fromMin > ranges_[i].fromMin
-      if (ranges_[i].toMin + (fromMin - ranges_[i].fromMin) == toMin) {
-	if (fromMax < ranges_[i].fromMax)
-	  return;
-	ranges_[i].fromMax = fromMax;
-	coalesced = 1;
-      }
-    }
-  }
-  if (!coalesced) {
-    // insert
-    ranges_.resize(ranges_.size() + 1);
-    for (size_t j = ranges_.size() - 1; j > i; j--)
-      ranges_[j] = ranges_[j - 1];
-    ranges_[i].fromMin = fromMin;
-    ranges_[i].fromMax = fromMax;
-    ranges_[i].toMin = toMin;
-  }
-  // Delete overlapping ranges starting at i + 1.
-  size_t j;
-  for (j = i + 1; j < ranges_.size(); j++) {
-    if (fromMax < ranges_[j].fromMax) {
-      if (fromMax >= ranges_[j].fromMin)
-	ranges_[j].fromMin = fromMax + 1;
-      break;
-    }
-  }
-  if (j > i + 1) {
-    // delete i + 1 ... j - 1
-    // j -> i + 1
-    // j - 1 -> i + 2
-    size_t count = ranges_.size() - j;
-    for (size_t k = 0; k < count; k++)
-      ranges_[i + 1 + count] = ranges_[j + count];
-    ranges_.resize(ranges_.size() - (j - (i + 1)));
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not RangeMap_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/RangeMap.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1994 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef _RANGEMAP_H
-#define	_RANGEMAP_H
-
-#ifndef RangeMap_INCLUDED
-#define	RangeMap_INCLUDED 1
-
-#include "Vector.h"
-#include "Boolean.h"
-#include "ISet.h"
-#include "types.h"
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template < class From, class To >
-struct RangeMapRange {
-	From fromMin;
-	From fromMax;
-	To toMin;
-};
-
-template < class From, class To > class RangeMapIter;
-template < class From, class To > class RangeMap;
-
-template < class From, class To >
-class RangeMap {
-public:
-	RangeMap();
-	Boolean map(From, To &, From &alsoMax) const;
-	// Return 0 for no matches, 1 for 1, 2 for more than 1.
-	unsigned inverseMap(To, From &, ISet < WideChar > &, \
-		WideChar &count) const;
-	void addRange(From, From, To);
-private:
-	Vector < RangeMapRange < From, To > > ranges_;
-	friend class RangeMapIter < From, To >\
-;
-};
-
-template < class From, class To >
-class RangeMapIter {
-public:
-	RangeMapIter(const RangeMap < From, To > &map);
-	Boolean next(From &fromMin, From &fromMax, To &toMin) {
-		if (!count_)
-			return (0);
-		else {
-			fromMin = ptr_->fromMin;
-			fromMax = ptr_->fromMax;
-			toMin = ptr_->toMin;
-			ptr_++;
-			count_--;
-			return (1);
-		}
-	}
-private:
-	size_t count_;
-	typename Vector < RangeMapRange < From, To > >\
-::const_iterator ptr_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not RangeMap_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "RangeMap.cxx"
-#endif
-
-#endif /* _RANGEMAP_H */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Resource.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Resource_INCLUDED
-#define Resource_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API Resource {
-public:
-  Resource();
-  Resource(const Resource &);
-  int unref();			// return 1 if it should be deleted
-  void ref();
-  int count() const;
-private:
-  int count_;
-};
-
-inline
-Resource::Resource()
-: count_(0)
-{
-}
-
-inline
-Resource::Resource(const Resource &)
-: count_(0)
-{
-}
-
-inline
-int Resource::count() const
-{
-  return count_;
-}
-
-inline
-int Resource::unref()
-{
-  return --count_ <= 0;
-}
-
-inline
-void Resource::ref()
-{
-  ++count_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Resource_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/RewindStorageObject.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-#ifndef RewindStorageObject_INCLUDED
-#define RewindStorageObject_INCLUDED 1
-
-#include "StorageManager.h"
-#include "Boolean.h"
-#include "StringOf.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Messenger;
-
-class SP_API RewindStorageObject : public StorageObject {
-public:
-  RewindStorageObject(Boolean mayRewind, Boolean canSeek);
-protected:
-  PackedBoolean mayRewind_;
-
-  void saveBytes(const char *, size_t);
-  Boolean readSaved(char *, size_t, size_t &);
-  Boolean rewind(Messenger &);
-  void willNotRewind();
-  void unread(const char *s, size_t n);
-  virtual Boolean seekToStart(Messenger &) = 0;
-private:
-  PackedBoolean savingBytes_;
-  PackedBoolean readingSaved_;
-  PackedBoolean canSeek_;
-  String<char> savedBytes_;
-  size_t nBytesRead_;
-};
-
-inline
-void RewindStorageObject::saveBytes(const char *s, size_t n)
-{
-  if (savingBytes_)
-    savedBytes_.append(s, n);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not RewindStorageObject_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/SJISCodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef SJISCodingSystem_INCLUDED
-#define SJISCodingSystem_INCLUDED 1
-
-#include "CodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API SJISCodingSystem : public CodingSystem {
-public:
-  Decoder *makeDecoder() const;
-  Encoder *makeEncoder() const;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not SJISCodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/SOEntityCatalog.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef SOEntityCatalog_INCLUDED
-#define SOEntityCatalog_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "ExtendEntityManager.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API SOCatalogManager : public ExtendEntityManager::CatalogManager {
-public:
-  static ExtendEntityManager::CatalogManager *
-    make(const Vector<StringC> &sysids,
-	 size_t nSysidsMustExist,
-	 const CharsetInfo *sysidCharset,
-	 const CharsetInfo *catalogCharset,
-	 Boolean useDocCatalog);
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not SOEntityCatalog_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Sd.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,583 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Sd_INCLUDED
-#define Sd_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "Boolean.h"
-#include "Resource.h"
-#include "CharsetInfo.h"
-#include "ExternalId.h"
-#include "ISet.h"
-#include "Syntax.h"
-#include "CharsetDecl.h"
-#include "HashTable.h"
-#include "EntityManager.h"
-#include "Ptr.h"
-
-// Information about the SGML declaration that is not syntax specific.
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API Sd : public Resource {
-public:
-  // These must be in the same order as in the SGML declaration.
-  enum BooleanFeature {
-    fDATATAG,
-    fOMITTAG,
-    fRANK,
-    fSTARTTAGEMPTY,
-    fSTARTTAGUNCLOSED,
-    fENDTAGEMPTY,
-    fENDTAGUNCLOSED,
-    fATTRIBDEFAULT,
-    fATTRIBOMITNAME,
-    fATTRIBVALUE,
-    fEMPTYNRM,
-    fIMPLYDEFATTLIST,
-    fIMPLYDEFDOCTYPE,
-    fIMPLYDEFELEMENT,
-    fIMPLYDEFENTITY,
-    fIMPLYDEFNOTATION,
-    fIMPLICIT,
-    fFORMAL,
-    fURN,
-    fKEEPRSRE
-    };
-  enum {
-    nBooleanFeature = fKEEPRSRE + 1,
-    fSHORTTAG_FIRST = fSTARTTAGEMPTY,
-    fSHORTTAG_LAST = fATTRIBVALUE
-  };
-  // These must be in the same order as in the SGML declaration.
-  enum NumberFeature {
-    fSIMPLE,
-    fEXPLICIT,
-    fCONCUR,
-    fSUBDOC
-  };
-  enum { nNumberFeature = fSUBDOC + 1 };
-  enum NetEnable {
-    netEnableNo,
-    netEnableImmednet,
-    netEnableAll
-  };
-  enum EntityRef {
-    entityRefAny,
-    entityRefInternal,
-    entityRefNone
-  };
-  // These are names used in the SGML declaration.
-  enum ReservedName {
-    rALL,
-    rANY,
-    rAPPINFO,
-    rATTLIST,
-    rATTRIB,
-    rBASESET,
-    rCAPACITY,
-    rCHARSET,
-    rCONCUR,
-    rCONTROLS,
-    rDATATAG,
-    rDEFAULT,
-    rDELIM,
-    rDESCSET,
-    rDOCTYPE,
-    rDOCUMENT,
-    rELEMENT,
-    rEMPTY,
-    rEMPTYNRM,
-    rENDTAG,
-    rENTITIES,
-    rENTITY,
-    rEXPLICIT,
-    rFEATURES,
-    rFORMAL,
-    rFUNCHAR,
-    rFUNCTION,
-    rGENERAL,
-    rIMMEDNET,
-    rIMPLICIT,
-    rIMPLYDEF,
-    rINSTANCE,
-    rINTEGRAL,
-    rINTERNAL,
-    rKEEPRSRE,
-    rLCNMCHAR,
-    rLCNMSTRT,
-    rLINK,
-    rMINIMIZE,
-    rMSICHAR,
-    rMSOCHAR,
-    rMSSCHAR,
-    rNAMECASE,
-    rNAMECHAR,
-    rNAMES,
-    rNAMESTRT,
-    rNAMING,
-    rNETENABL,
-    rNO,
-    rNOASSERT,
-    rNONE,
-    rNOTATION,
-    rOMITNAME,
-    rOMITTAG,
-    rOTHER,
-    rPUBLIC,
-    rQUANTITY,
-    rRANK,
-    rRE,
-    rREF,
-    rRS,
-    rSCOPE,
-    rSEEALSO,
-    rSEPCHAR,
-    rSGML,
-    rSGMLREF,
-    rSHORTREF,
-    rSHORTTAG,
-    rSHUNCHAR,
-    rSIMPLE,
-    rSPACE,
-    rSTARTTAG,
-    rSUBDOC,
-    rSWITCHES,
-    rSYNTAX,
-    rSYSTEM,
-    rTYPE,
-    rUCNMCHAR,
-    rUCNMSTRT,
-    rUNCLOSED,
-    rUNUSED,
-    rURN,
-    rVALIDITY,
-    rVALUE,
-    rYES
-  };
-  enum Capacity {
-    TOTALCAP,
-    ENTCAP,
-    ENTCHCAP,
-    ELEMCAP,
-    GRPCAP,
-    EXGRPCAP,
-    EXNMCAP,
-    ATTCAP,
-    ATTCHCAP,
-    AVGRPCAP,
-    NOTCAP,
-    NOTCHCAP,
-    IDCAP,
-    IDREFCAP,
-    MAPCAP,
-    LKSETCAP,
-    LKNMCAP
-  };
-  enum { nCapacity = LKNMCAP + 1 };
-  Sd(const Ptr<EntityManager> &);
-  void setDocCharsetDesc(const UnivCharsetDesc &);
-  Boolean matchesReservedName(const StringC &, ReservedName) const;
-  int digitWeight(Char) const;
-  int hexDigitWeight(Char) const;
-  Boolean link() const;
-  Number simpleLink() const;
-  Boolean implicitLink() const;
-  Number explicitLink() const;
-  Boolean startTagEmpty() const;
-  Boolean startTagUnclosed() const;
-  NetEnable startTagNetEnable() const;
-  void setStartTagNetEnable(NetEnable);
-  Boolean endTagEmpty() const;
-  Boolean endTagUnclosed() const;
-  Boolean attributeDefault() const;
-  Boolean attributeValueNotLiteral() const;
-  Boolean attributeOmitName() const;
-  Boolean emptyElementNormal() const;
-  Boolean implydefAttlist() const;
-  Boolean implydefDoctype() const;
-  Boolean implydefElement() const;
-  Boolean implydefEntity() const;
-  Boolean implydefNotation() const;
-  Number concur() const;
-  Boolean omittag() const;
-  Boolean rank() const;
-  Boolean datatag() const;
-  Boolean formal() const;
-  Boolean keeprsre() const;
-  Number subdoc() const;
-  StringC reservedName(int) const;
-  Boolean lookupQuantityName(const StringC &, Syntax::Quantity &) const;
-  Boolean lookupGeneralDelimiterName(const StringC &, Syntax::DelimGeneral &)
-       const;
-  Boolean lookupCapacityName(const StringC &, Sd::Capacity &) const;
-  StringC quantityName(Syntax::Quantity) const;
-  Boolean internalCharsetIsDocCharset() const;
-  const CharsetInfo &internalCharset() const;
-  const CharsetInfo &docCharset() const;
-  Char execToInternal(char) const;
-  StringC execToInternal(const char *) const;
-  Number capacity(int) const;
-  void setCapacity(int, Number);
-  StringC capacityName(int) const;
-  Boolean scopeInstance() const;
-  void setScopeInstance();
-  void setDocCharsetDecl(CharsetDecl &);
-  const CharsetDecl &docCharsetDecl() const;
-  void setBooleanFeature(BooleanFeature, Boolean);
-  void setShorttag(Boolean);
-  void setNumberFeature(NumberFeature, Number);
-  StringC generalDelimiterName(Syntax::DelimGeneral) const;
-  UnivChar nameToUniv(const StringC &);
-  Boolean www() const;
-  void setWww(Boolean);
-  EntityRef entityRef() const;
-  void setEntityRef(EntityRef);
-  Boolean typeValid() const;
-  void setTypeValid(Boolean);
-  Boolean integrallyStored() const;
-  void setIntegrallyStored(Boolean);
-private:
-  PackedBoolean booleanFeature_[nBooleanFeature];
-  Number numberFeature_[nNumberFeature];
-  Number capacity_[nCapacity];
-  PackedBoolean internalCharsetIsDocCharset_;
-  // if null, use docCharset_
-  const CharsetInfo *internalCharsetPtr_;
-  CharsetInfo docCharset_;
-  CharsetDecl docCharsetDecl_;
-  Boolean scopeInstance_;
-  Boolean www_;
-  NetEnable netEnable_;
-  EntityRef entityRef_;
-  Boolean typeValid_;
-  Boolean integrallyStored_;
-  HashTable<StringC,int> namedCharTable_;
-  Ptr<EntityManager> entityManager_;
-  static const char *const reservedName_[];
-  static const char *const generalDelimiterName_[];
-  static const char *const capacityName_[];
-  static const char *const quantityName_[];
-};
-
-inline
-Boolean Sd::link() const
-{
-  return (numberFeature_[fSIMPLE]
-	  || booleanFeature_[fIMPLICIT]
-	  || numberFeature_[fEXPLICIT]);
-}
-
-inline
-Number Sd::explicitLink() const
-{
-  return numberFeature_[fEXPLICIT];
-}
-
-inline
-Boolean Sd::implicitLink() const
-{
-  return booleanFeature_[fIMPLICIT];
-}
-
-inline
-Number Sd::simpleLink() const
-{
-  return numberFeature_[fSIMPLE];
-}
-
-inline
-Boolean Sd::startTagEmpty() const
-{
-  return booleanFeature_[fSTARTTAGEMPTY];
-}
-
-inline
-Boolean Sd::startTagUnclosed() const
-{
-  return booleanFeature_[fSTARTTAGUNCLOSED];
-}
-
-inline
-Sd::NetEnable Sd::startTagNetEnable() const
-{
-  return netEnable_;
-}
-
-inline
-void Sd::setStartTagNetEnable(NetEnable e)
-{
-  netEnable_ = e;
-}
-
-inline
-Boolean Sd::endTagEmpty() const
-{
-  return booleanFeature_[fENDTAGEMPTY];
-}
-
-inline
-Boolean Sd::endTagUnclosed() const
-{
-  return booleanFeature_[fENDTAGUNCLOSED];
-}
-
-inline
-Boolean Sd::attributeDefault() const
-{
-  return booleanFeature_[fATTRIBDEFAULT];
-}
-
-inline
-Boolean Sd::attributeValueNotLiteral() const
-{
-  return booleanFeature_[fATTRIBVALUE];
-}
-
-inline
-Boolean Sd::attributeOmitName() const
-{
-  return booleanFeature_[fATTRIBOMITNAME];
-}
-
-inline
-Boolean Sd::emptyElementNormal() const
-{
-  return booleanFeature_[fEMPTYNRM];
-}
-
-inline
-Boolean Sd::implydefAttlist() const
-{
-  return booleanFeature_[fIMPLYDEFATTLIST];
-}
-
-inline
-Boolean Sd::implydefDoctype() const
-{
-  return booleanFeature_[fIMPLYDEFDOCTYPE];
-}
-
-inline
-Boolean Sd::implydefElement() const
-{
-  return booleanFeature_[fIMPLYDEFELEMENT];
-}
-
-inline
-Boolean Sd::implydefEntity() const
-{
-  return booleanFeature_[fIMPLYDEFENTITY];
-}
-
-inline
-Boolean Sd::implydefNotation() const
-{
-  return booleanFeature_[fIMPLYDEFNOTATION];
-}
-
-inline
-Number Sd::concur() const
-{
-  return numberFeature_[fCONCUR];
-}
-
-inline
-Number Sd::subdoc() const
-{
-  return numberFeature_[fSUBDOC];
-}
-
-
-inline
-Boolean Sd::omittag() const
-{
-  return booleanFeature_[fOMITTAG];
-}
-
-inline
-Boolean Sd::rank() const
-{
-  return booleanFeature_[fRANK];
-}
-
-inline
-Boolean Sd::datatag() const
-{
-  return booleanFeature_[fDATATAG];
-}
-
-inline
-Boolean Sd::formal() const
-{
-  return booleanFeature_[fFORMAL];
-}
-
-inline
-Boolean Sd::keeprsre() const
-{
-  return booleanFeature_[fKEEPRSRE];
-}
-
-inline
-const CharsetInfo &Sd::internalCharset() const
-{
-  return internalCharsetPtr_ ? *internalCharsetPtr_ : docCharset_;
-}
-
-inline
-Char Sd::execToInternal(char c) const
-{
-  return internalCharset().execToDesc(c);
-}
-
-inline
-StringC Sd::execToInternal(const char *s) const
-{
-  return internalCharset().execToDesc(s);
-}
-
-inline
-StringC Sd::reservedName(int i) const
-{
-  return execToInternal(reservedName_[i]);
-}
-
-inline
-Boolean Sd::internalCharsetIsDocCharset() const
-{
-  return internalCharsetIsDocCharset_;
-}
-
-inline
-const CharsetInfo &Sd::docCharset() const
-{
-  return docCharset_;
-}
-
-inline
-int Sd::digitWeight(Char c) const
-{
-  return internalCharset().digitWeight(c);
-}
-
-inline
-int Sd::hexDigitWeight(Char c) const
-{
-  return internalCharset().hexDigitWeight(c);
-}
-
-inline
-Number Sd::capacity(int i) const
-{
-  return capacity_[i];
-}
-
-inline
-void Sd::setCapacity(int i, Number n)
-{
-  capacity_[i] = n;
-}
-
-inline
-StringC Sd::capacityName(int i) const
-{
-  return execToInternal(capacityName_[i]);
-}
-
-inline
-Boolean Sd::scopeInstance() const
-{
-  return scopeInstance_;
-}
-
-inline
-void Sd::setScopeInstance()
-{
-  scopeInstance_ = 1;
-}
-
-inline
-void Sd::setDocCharsetDecl(CharsetDecl &decl)
-{
-  decl.swap(docCharsetDecl_);
-}
-
-inline
-const CharsetDecl &Sd::docCharsetDecl() const
-{
-  return docCharsetDecl_;
-}
-
-inline
-void Sd::setBooleanFeature(BooleanFeature i, Boolean b)
-{
-  booleanFeature_[i] = b;
-}
-
-inline
-void Sd::setNumberFeature(NumberFeature i, Number n)
-{
-  numberFeature_[i] = n;
-}
-
-inline
-Boolean Sd::www() const
-{
-  return www_;
-}
-
-inline
-void Sd::setWww(Boolean b)
-{
-  www_ = b;
-}
-
-inline
-Sd::EntityRef Sd::entityRef() const
-{
-  return entityRef_;
-}
-
-inline
-void Sd::setEntityRef(EntityRef r)
-{
-  entityRef_ = r;
-}
-
-inline
-Boolean Sd::typeValid() const
-{
-  return typeValid_;
-}
- 
-inline
-void Sd::setTypeValid(Boolean b)
-{
-  typeValid_ = b;
-}
-
-inline
-Boolean Sd::integrallyStored() const
-{
-  return integrallyStored_;
-}
-
-inline
-void Sd::setIntegrallyStored(Boolean b)
-{
-  integrallyStored_ = b;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* Sd_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/SdText.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef SdText_INCLUDED
-#define SdText_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "StringOf.h"
-#include "Vector.h"
-#include "Location.h"
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct SP_API SdTextItem {
-  SdTextItem();
-  Location loc;
-  size_t index;
-};
-
-class SP_API SdText {
-public:
-  SdText();
-  SdText(const Location &loc, Boolean lita);
-  void swap(SdText &);
-  void addChar(SyntaxChar, const Location &);
-  const String<SyntaxChar> &string() const;
-  Boolean lita() const;
-  Location endDelimLocation() const;
-private:
-  Boolean lita_;
-  String<SyntaxChar> chars_;
-  Vector<SdTextItem> items_;
-  friend class SdTextIter;
-};
-
-class SP_API SdTextIter {
-public:
-  SdTextIter(const SdText &);
-  Boolean next(const SyntaxChar *&, size_t &, Location &);
-private:
-  const SdText *ptr_;
-  size_t itemIndex_;
-};
-
-inline
-Boolean SdText::lita() const
-{
-  return lita_;
-}
-
-inline
-const String<SyntaxChar> &SdText::string() const
-{
-  return chars_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not SdText_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/SearchResultMessageArg.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef SearchResultMessageArg_INCLUDED
-#define SearchResultMessageArg_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "MessageArg.h"
-#include "StringC.h"
-#include "Vector.h"
-#include "Vector.h"
-#include "rtti.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API SearchResultMessageArg : public OtherMessageArg {
-  RTTI_CLASS
-public:
-  SearchResultMessageArg();
-  void add(StringC &, int);
-  MessageArg *copy() const;
-  size_t nTried() const;
-  const StringC &filename(size_t) const;
-  int errnum(size_t) const;
-private:
-  Vector<StringC> filename_;
-  Vector<unsigned int> errno_;
-};
-
-inline
-size_t SearchResultMessageArg::nTried() const
-{
-  return filename_.size();
-}
-
-inline
-const StringC &SearchResultMessageArg::filename(size_t i) const
-{
-  return filename_[i];
-}
-
-inline
-int SearchResultMessageArg::errnum(size_t i) const
-{
-  return errno_[i];
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not SearchResultMessageArg_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/SgmlParser.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef SgmlParser_INCLUDED
-#define SgmlParser_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "StringC.h"
-#include "Ptr.h"
-#include "Location.h"
-#include "EntityManager.h"
-
-#include <signal.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Event;
-class Parser;
-class UnivCharsetDesc;
-class EventHandler;
-struct ParserOptions;
-template<class T> class Ptr;
-template<class T> class ConstPtr;
-class InputSourceOrigin;
-class Sd;
-class Syntax;
-class Dtd;
-
-class SP_API SgmlParser {
-public:
-  struct SP_API Params {
-    enum EntityType {
-      document,
-      subdoc,
-      dtd
-    };
-    Params();
-    EntityType entityType;	// defaults to document
-    StringC sysid;		// must be specified
-    Ptr<InputSourceOrigin> origin;
-    Ptr<EntityManager> entityManager;
-    const SgmlParser *parent;
-    ConstPtr<Sd> sd;
-    ConstPtr<Syntax> prologSyntax;
-    ConstPtr<Syntax> instanceSyntax;
-    unsigned subdocLevel;
-    const ParserOptions *options;
-    PackedBoolean subdocInheritActiveLinkTypes;
-    // referenced subdocs count against SUBDOC limit in SGML declaration
-    PackedBoolean subdocReferenced;
-    StringC doctypeName;
-  };
-  SgmlParser();			// must call init
-  SgmlParser(const Params &params);
-  void init(const Params &params);
-  ~SgmlParser();
-  Event *nextEvent();
-  void parseAll(EventHandler &, const volatile sig_atomic_t *cancelPtr = 0);
-  ConstPtr<Sd> sd() const;
-  ConstPtr<Syntax> instanceSyntax() const;
-  ConstPtr<Syntax> prologSyntax() const;
-  EntityManager &entityManager() const;
-  const EntityCatalog &entityCatalog() const;
-  const ParserOptions &options() const;
-  // Only to be called after the parse has ended.
-  Ptr<Dtd> baseDtd();
-  void activateLinkType(const StringC &);
-  void allLinkTypesActivated();
-  void swap(SgmlParser &);
-  friend class Parser;
-private:
-  SgmlParser(const SgmlParser &);
-  void operator=(const SgmlParser &);
-  Parser *parser_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not SgmlParser_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/ShortReferenceMap.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ShortReferenceMap_INCLUDED
-#define ShortReferenceMap_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Vector.h"
-#include "Vector.h"
-#include "StringC.h"
-#include "Named.h"
-#include "Boolean.h"
-#include "Entity.h"
-#include "Ptr.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API ShortReferenceMap : public Named {
-public:
-  ShortReferenceMap();
-  ShortReferenceMap(const StringC &);
-  Boolean defined() const;
-  void setNameMap(Vector<StringC> &map);
-  void setEntityMap(Vector<ConstPtr<Entity> > &map);
-  Boolean lookup(int i, const StringC *&) const;
-  const StringC *entityName(size_t i) const;
-  const ConstPtr<Entity> &entity(size_t i) const;
-  Boolean used() const;
-  void setUsed();
-  const Location &defLocation() const;
-  void setDefLocation(const Location &);
-private:
-  ShortReferenceMap(const ShortReferenceMap &);	// undefined
-  void operator=(const ShortReferenceMap &);	// undefined
-  Vector<StringC> nameMap_;
-  Vector<ConstPtr<Entity> > entityMap_;
-  ConstPtr<Entity> nullEntity_;
-  Boolean used_;
-  Location defLocation_;
-};
-
-inline
-Boolean ShortReferenceMap::defined() const
-{
-  return nameMap_.size() > 0;
-}
-
-inline
-const StringC *ShortReferenceMap::entityName(size_t i) const
-{
-  if (i < nameMap_.size() && nameMap_[i].size() != 0)
-    return &nameMap_[i];
-  else
-    return 0;
-}
-
-inline
-const ConstPtr<Entity> &ShortReferenceMap::entity(size_t i) const
-{
-  if (i < entityMap_.size())
-    return entityMap_[i];
-  else
-    return nullEntity_;
-}
-
-inline
-void ShortReferenceMap::setEntityMap(Vector<ConstPtr<Entity> > &map)
-{
-  map.swap(entityMap_);
-}
-
-inline
-Boolean ShortReferenceMap::used() const
-{
-  return used_;
-}
-
-inline
-void ShortReferenceMap::setUsed()
-{
-  used_ = 1;
-}
-
-inline
-void ShortReferenceMap::setDefLocation(const Location &loc)
-{
-  defLocation_ = loc;
-}
-
-inline
-const Location &ShortReferenceMap::defLocation() const
-{
-  return defLocation_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ShortReferenceMap_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/StdioStorage.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef StdioStorage_INCLUDED
-#define StdioStorage_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "StorageManager.h"
-#include "DescriptorManager.h"
-#include "StringC.h"
-#include "CharsetInfo.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Messenger;
-class CharsetInfo;
-class UnivCharsetDesc;
-class OutputCodingSystem;
-
-class SP_API StdioStorageManager : public IdStorageManager {
-public:
-  StdioStorageManager(const char *type,
-		      const CharsetInfo *filenameCharset,
-		      const OutputCodingSystem *filenameCodingSystem);
-  StorageObject *makeStorageObject(const StringC &id,
-				   const StringC &baseId,
-				   Boolean,
-				   Boolean mayRewind,
-				   Messenger &,
-				   StringC &foundId);
-  const char *type() const;
-private:
-  StdioStorageManager(const StdioStorageManager &); // undefined
-  void operator=(const StdioStorageManager &);	    // undefined
-  const OutputCodingSystem *filenameCodingSystem_;
-  const char *type_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not StdioStorage_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/StorageManager.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef StorageManager_INCLUDED
-#define StorageManager_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "StringC.h"
-#include "types.h"
-#include "CharsetInfo.h"
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class StorageManager;
-class CharsetInfo;
-class Messenger;
-class InputCodingSystem;
-
-class SP_API StorageObject {
-public:
-  StorageObject();
-  virtual ~StorageObject();
-  virtual Boolean read(char *buf, size_t bufSize, Messenger &,
-		       size_t &nread) = 0;
-  virtual Boolean rewind(Messenger &) = 0;
-  virtual void willNotRewind();
-  virtual size_t getBlockSize() const;
-private:
-  StorageObject(const StorageObject &);	// undefined
-  void operator=(const StorageObject &); // undefined
-};
-
-class SP_API StorageManager {
-public:
-  StorageManager();
-  virtual StorageObject *makeStorageObject(const StringC &specId,
-					   const StringC &baseId,
-					   Boolean search,
-					   Boolean mayRewind,
-					   Messenger &mgr,
-					   StringC &actualId) = 0;
-  virtual const char *type() const = 0;
-  virtual Boolean inheritable() const;
-  virtual Boolean transformNeutral(StringC &, Boolean fold, Messenger &) const;
-  // Resolve a possibly relative ID by examining the base and specified IDs.
-  // Put the resolved ID in specID.
-  // Return 0 if it cannot be resolved yet becase the specified ID is relative
-  // and physical searching is required to resolve it and search is true;
-  // in this case the base will be passed to makeStorageObject.
-  // Otherwise return 1; in this case the base will be discarded, and the
-  // resolved ID will be passed to makeStorageObject.
-  virtual Boolean resolveRelative(const StringC &base,
-				  StringC &specId,
-				  Boolean search) const;
-  virtual Boolean guessIsId(const StringC &, const CharsetInfo &) const;
-  virtual const InputCodingSystem *requiredCodingSystem() const;
-  virtual Boolean requiresCr() const;
-  virtual ~StorageManager();
-  virtual const CharsetInfo *idCharset() const;
-  virtual const StringC *reString() const;
-private:
-  StorageManager(const StorageManager &); // undefined
-  void operator=(const StorageManager &); // undefined
-};
-
-class SP_API IdStorageManager : public StorageManager {
-public:
-  IdStorageManager(const CharsetInfo *idCharset);
-  const CharsetInfo *idCharset() const;
-  const StringC *reString() const;
-protected:
-  StringC reString_;
-private:
-  IdStorageManager(const IdStorageManager &); // undefined
-  void operator=(const IdStorageManager &); // undefined
-
-  const CharsetInfo *idCharset_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not StorageManager_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/StringC.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef StringC_INCLUDED
-#define StringC_INCLUDED 1
-
-#include "types.h"
-#include "StringOf.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-typedef String<Char> StringC;
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not StringC_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/StringOf.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-// Copyright (c) 1994, 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef StringOf_DEF_INCLUDED
-#define StringOf_DEF_INCLUDED 1
-
-#include <string.h>
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-String<T>::String(const T *ptr, size_t length)
-: length_(length), alloc_(length)
-{
-  if (length) {
-    ptr_ = new T[length];
-    memcpy(ptr_, ptr, length*sizeof(T));
-  }
-  else
-    ptr_ = 0;
-}
-
-template<class T>
-String<T>::String()
-: ptr_(0), length_(0), alloc_(0)
-{
-}
-
-template<class T>
-String<T>::String(const String<T> &s)
-: length_(s.length_), alloc_(s.length_)
-{
-  if (length_) {
-    ptr_ = new T[length_];
-    memcpy(ptr_, s.ptr_, length_*sizeof(T));
-  }
-  else
-    ptr_ = 0;
-}
-
-template<class T>
-String<T> &String<T>::operator=(const String<T> &s)
-{
-  if (&s != this) {
-    if (s.length_ > alloc_) {
-      T *oldPtr = ptr_;
-      ptr_ = new T[alloc_ = s.length_];
-      if (oldPtr)
-	delete [] oldPtr;
-    }
-    memcpy(ptr_, s.ptr_, s.length_*sizeof(T));
-    length_ = s.length_;
-  }
-  return *this;
-}
-
-template<class T>
-String<T> &String<T>::insert(size_t i, const String<T> &s)
-{
-  if (length_ + s.length_ > alloc_)
-    grow(s.length_);
-  for (size_t n = length_ - i; n > 0; n--)
-    ptr_[i + n - 1 + s.length_] = ptr_[i + n - 1];
-  length_ += s.length_;
-  memcpy(ptr_ + i, s.ptr_, s.length_*sizeof(T));
-  return *this;
-}
-
-template<class T>
-String<T> &String<T>::append(const T *p, size_t length)
-{
-  if (length_ + length > alloc_)
-    grow(length);
-  memcpy(ptr_ + length_, p, length*sizeof(T));
-  length_ += length;
-  return *this;
-}
-
-template<class T>
-void String<T>::grow(size_t n)
-{
-  size_t newAlloc = alloc_;
-  if (alloc_ < n)
-    newAlloc += n + 16;
-  else
-    newAlloc += alloc_;
-  T *s = new T[newAlloc];
-  memcpy(s, ptr_, length_*sizeof(T));
-  delete [] ptr_;
-  ptr_ = s;
-  alloc_ = newAlloc;
-}
-
-template<class T>
-void String<T>::swap(String<T> &to)
-{
-  {
-    T *tem = to.ptr_;
-    to.ptr_ = ptr_;
-    ptr_ = tem;
-  }
-  {
-    size_t tem = to.length_;
-    to.length_ = length_;
-    length_ = tem;
-  }
-  {
-    size_t tem = to.alloc_;
-    to.alloc_ = alloc_;
-    alloc_ = tem;
-  }
-}
-
-template<class T>
-String<T> &String<T>::assign(const T *p, size_t n)
-{
-  if (alloc_ < n) {
-    T *oldPtr = ptr_;
-    ptr_ = new T[n];
-    alloc_ = n;
-    if (oldPtr)
-      delete [] oldPtr;
-  }
-  length_ = n;
-  for(T *to = ptr_; n > 0; n--, to++, p++)
-    *to = *p;
-  return *this;
-}
-
-template<class T>
-void String<T>::resize(size_t n)
-{
-  if (alloc_ < n) {
-    T *oldPtr = ptr_;
-    ptr_ = new T[n];
-    alloc_ = n;
-    if (length_ > 0) {
-      memcpy(ptr_, oldPtr, length_*sizeof(T));
-      delete [] oldPtr;
-    }
-  }
-  length_ = n;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not StringOf_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/StringOf.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-// Copyright (c) 1994, 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef StringOf_INCLUDED
-#define StringOf_INCLUDED 1
-
-// The file is called StringOf to distinguish it from string.h on
-// case-insensitive file systems.
-
-// This offers a subset of the interface offered by the standard C++
-// basic_string class as defined in the Jan 96 WP.
-// Code in SP currently assumes that size_type is size_t.
-
-#include <stddef.h>
-#include <string.h>
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class String {
-public:
-  typedef size_t size_type;
-  typedef T *iterator;
-  typedef const T *const_iterator;
-  String();
-  ~String() { if (ptr_) delete [] ptr_; }
-  String(const T *, size_t);
-  String(const String<T> &);
-  String<T> &operator=(const String<T> &);
-  size_t size() const { return length_; }
-  String<T> &assign(const T *, size_t);
-  String<T> &insert(size_t i, const String<T> &s);
-  void swap(String<T> &str);
-  T operator[](size_t i) const { return ptr_[i]; }
-  T &operator[](size_t i) { return ptr_[i]; }
-  iterator begin() { return ptr_; }
-  const_iterator begin() const { return ptr_; }
-  const T *data() const { return ptr_; }
-  String<T> &operator+=(T c) {
-    if (length_ >= alloc_)
-      grow(1);
-    ptr_[length_++] = c;
-    return *this;
-  }
-  String<T> &operator+=(const String<T> &s) {
-    append(s.ptr_, s.length_);
-    return *this;
-  }
-  String<T> &append(const T *, size_t);
-  Boolean operator==(const String<T> &s) const {
-    return (length_ == s.length_
-	    && (length_ == 0
-		|| (*ptr_ == *s.ptr_
-		    && (memcmp(ptr_ + 1, s.ptr_ + 1, (length_ - 1)*sizeof(T))
-			== 0))));
-  }
-  Boolean operator!=(const String<T> &str) const {
-    return !(*this == str);
-  }
-  void resize(size_t n);
-private:
-  void grow(size_t);
-  T *ptr_;
-  size_t length_;
-  size_t alloc_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not StringOf_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "StringOf.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/StringResource.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef StringResource_INCLUDED
-#define StringResource_INCLUDED 1
-
-#include "StringOf.h"
-#include "Resource.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class StringResource : public String<T>, public Resource {
-public:
-  StringResource(const String<T> &s) : String<T>(s) { }
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not StringResource_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/SubstTable.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef SubstTable_DEF_INCLUDED
-#define SubstTable_DEF_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-SubstTable<T>::SubstTable()
-: pairsValid_(1)
-{
-}
-
-template<class T>
-void SubstTable<T>::addSubst(T from, T to)
-{
-  if (table_.size() == 0) {
-    table_.resize(T(-1) + 1);
-#if _MSC_VER == 1100
-    // Workaround for Visual C++ 5.0 bug.
-    T n = 0;
-    int i = 0;
-    while (i < T(-1) + 1)
-      table_[i++] = n++;
-#else
-    for (int i = 0; i < T(-1) + 1; i++)
-      table_[i] = i;
-#endif
-  }
-  if (table_[from] != to)
-    pairsValid_ = 0;
-  table_[from] = to;
-}
-
-template<class T>
-String<T> SubstTable<T>::inverse(T ch) const
-{
-  if (!pairsValid_) {
-    const T *p = table_.data();
-    size_t length = table_.size();
-    for (size_t i = 0; i < length; i++)
-      if (p[i] != i) {
-	// FIXME use mutable if available
-	((SubstTable<T> *)this)->pairs_ += T(i);
-	((SubstTable<T> *)this)->pairs_ += p[i];
-      }
-    ((SubstTable<T> *)this)->pairsValid_ = 1;
-  }
-  const T *p = pairs_.data();
-  if (!p)
-    return String<T>(&ch, 1);
-  String<T> result;
-  if (table_[ch] == ch)
-    result += ch;
-  for (size_t n = pairs_.size(); n > 0; n -= 2, p += 2)
-    if (p[1] == ch)
-      result += p[0];
-  return result;
-}
-
-template<class T>
-void SubstTable<T>::inverseTable(SubstTable<T> &inv) const
-{
-  if (table_.size() == 0) {
-    inv.table_.resize(0);
-    inv.pairs_.resize(0);
-    inv.pairsValid_ = 1;
-  }
-  else {
-    if (inv.table_.size() == 0)
-      inv.table_.resize(T(-1) + 1);
-    int i;
-    for (i = 0; i < T(-1) + 1; i++)
-      inv.table_[i] = i;
-    inv.pairs_.resize(0);
-    inv.pairsValid_ = 0;
-    for (i = 0; i < T(-1) + 1; i++)
-      if (table_[i] != i)
-	inv.table_[table_[i]] = i;
-  }
-}
-
-template<class T>
-void SubstTable<T>::subst(String<T> &str) const
-{
-  for (size_t i = 0; i < str.size(); i++)
-    subst(str[i]);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not SubstTable_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/SubstTable.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef SubstTable_INCLUDED
-#define SubstTable_INCLUDED
-
-#include <limits.h>
-#include "StringOf.h"
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class SubstTable {
-public:
-  SubstTable();
-  void addSubst(T from, T to);
-  void subst(T &c) const { if (table_.size() > 0) c = table_[c]; }
-  void subst(String<T> &) const;
-  T operator[](T c) const { return table_.size() > 0 ? table_[c] : c; }
-  String<T> inverse(T) const;
-  void inverseTable(SubstTable<T> &) const;
-private:
-  String<T> table_;
-  String<T> pairs_;		// mutable
-  Boolean pairsValid_;		// mutable
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* SubstTable_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "SubstTable.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Syntax.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,528 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Syntax_INCLUDED
-#define Syntax_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "Boolean.h"
-#include "ISet.h"
-#include "StringC.h"
-#include "SubstTable.h"
-#include "HashTable.h"
-#include "Vector.h"
-#include "Resource.h"
-#include "XcharMap.h"
-#include "EntityCatalog.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Sd;
-class CharsetInfo;
-
-class SP_API Syntax : public Resource, public EntityCatalog::Syntax {
-public:
-  enum ReservedName {
-    rALL,
-    rANY,
-    rATTLIST,
-    rCDATA,
-    rCONREF,
-    rCURRENT,
-    rDATA,
-    rDEFAULT,
-    rDOCTYPE,
-    rELEMENT,
-    rEMPTY,
-    rENDTAG,
-    rENTITIES,
-    rENTITY,
-    rFIXED,
-    rID,
-    rIDLINK,
-    rIDREF,
-    rIDREFS,
-    rIGNORE,
-    rIMPLICIT,
-    rIMPLIED,
-    rINCLUDE,
-    rINITIAL,
-    rLINK,
-    rLINKTYPE,
-    rMD,
-    rMS,
-    rNAME,
-    rNAMES,
-    rNDATA,
-    rNMTOKEN,
-    rNMTOKENS,
-    rNOTATION,
-    rNUMBER,
-    rNUMBERS,
-    rNUTOKEN,
-    rNUTOKENS,
-    rO,
-    rPCDATA,
-    rPI,
-    rPOSTLINK,
-    rPUBLIC,
-    rRCDATA,
-    rRE,
-    rREQUIRED,
-    rRESTORE,
-    rRS,
-    rSDATA,
-    rSHORTREF,
-    rSIMPLE,
-    rSPACE,
-    rSTARTTAG,
-    rSUBDOC,
-    rSYSTEM,
-    rTEMP,
-    rUSELINK,
-    rUSEMAP
-  };
-  enum { nNames = rUSEMAP + 1 };
-  enum Quantity {
-    qATTCNT,
-    qATTSPLEN,
-    qBSEQLEN,
-    qDTAGLEN,
-    qDTEMPLEN,
-    qENTLVL,
-    qGRPCNT,
-    qGRPGTCNT,
-    qGRPLVL,
-    qLITLEN,
-    qNAMELEN,
-    qNORMSEP,
-    qPILEN,
-    qTAGLEN,
-    qTAGLVL
-  };
-  enum { nQuantity = qTAGLVL + 1 };
-  enum { unlimited = 100000000 };
-  enum DelimGeneral {
-    dAND,
-    dCOM,
-    dCRO,
-    dDSC,
-    dDSO,
-    dDTGC,
-    dDTGO,
-    dERO,
-    dETAGO,
-    dGRPC,
-    dGRPO,
-    dHCRO, // WWW TC addition
-    dLIT,
-    dLITA,
-    dMDC,
-    dMDO,
-    dMINUS,
-    dMSC,
-    dNET,
-    dNESTC, // WWW TC addition
-    dOPT,
-    dOR,
-    dPERO,
-    dPIC,
-    dPIO,
-    dPLUS,
-    dREFC,
-    dREP,
-    dRNI,
-    dSEQ,
-    dSTAGO,
-    dTAGC,
-    dVI
-  };
-  enum { nDelimGeneral = dVI + 1 };
-  enum StandardFunction {
-    fRE,
-    fRS,
-    fSPACE
-  };
-  enum FunctionClass {
-    cFUNCHAR,
-    cSEPCHAR,
-    cMSOCHAR,
-    cMSICHAR,
-    cMSSCHAR
-  };
-  enum Set {
-    nameStart,
-    digit,
-    hexDigit,
-    nmchar,			// LCNMCHAR or UCNMCHAR
-    s,
-    blank,
-    sepchar,
-    minimumData,
-    significant,
-    functionChar,		// function character
-    sgmlChar
-  };
-  enum { nSet = sgmlChar + 1 };
-  enum Category {
-    otherCategory = 0,
-    sCategory = 01,
-    nameStartCategory = 02,
-    digitCategory = 04,
-    otherNameCategory = 010
-    };
-
-  Syntax(const Sd &);
-  Boolean lookupFunctionChar(const StringC &, Char *) const;
-  Boolean charFunctionName(Char c, const StringC *&name) const;
-  Boolean lookupReservedName(const StringC &, ReservedName *) const;
-  const StringC &reservedName(ReservedName) const;
-  StringC rniReservedName(ReservedName) const;
-  Number quantity(Quantity) const;
-  Char standardFunction(int) const;
-  Boolean getStandardFunction(int, Char &) const;
-  const StringC &delim() const;
-  const ISet<Char> *charSet(int i) const;
-  const SubstTable<Char> *generalSubstTable() const;
-  const SubstTable<Char> *entitySubstTable() const;
-  const SubstTable<Char> &upperSubstTable() const;
-  Boolean namecaseGeneral() const;
-  Boolean namecaseEntity() const;
-  const StringC &peroDelim() const;
-  const StringC &delimGeneral(int) const;
-  const StringC &delimShortrefComplex(size_t) const;
-  const ISet<Char> &delimShortrefSimple() const;
-  int nDelimShortrefComplex() const;
-  Boolean isValidShortref(const StringC &) const;
-  Boolean hasShortrefs() const;
-  Boolean isNameCharacter(Xchar) const;
-  Boolean isNameStartCharacter(Xchar) const;
-  Boolean isDigit(Xchar) const;
-  Boolean isHexDigit(Xchar) const;
-  Boolean isS(Xchar) const;
-  Boolean isB(Xchar c) const;
-  Category charCategory(Xchar) const;
-  Boolean isSgmlChar(Xchar) const;
-  size_t attcnt() const;
-  size_t attsplen() const;
-  size_t namelen() const;
-  size_t penamelen() const;
-  size_t litlen() const;
-  size_t normsep() const;
-  size_t dtemplen() const;
-  size_t grpcnt() const;
-  size_t grpgtcnt() const;
-  size_t grplvl() const;
-  size_t taglvl() const;
-  size_t taglen() const;
-  size_t entlvl() const;
-  size_t pilen() const;
-  Char space() const;
-  
-  void setStandardFunction(StandardFunction, Char);
-  void enterStandardFunctionNames();
-  void addFunctionChar(const StringC &, FunctionClass, Char);
-  void setNamecaseGeneral(Boolean);
-  void setNamecaseEntity(Boolean);
-  void setDelimGeneral(int, const StringC &);
-  void addDelimShortref(const StringC &, const CharsetInfo &);
-  void addDelimShortrefs(const ISet<Char> &shortrefChars,
-			 const CharsetInfo &charset);
-  void addNameCharacters(const ISet<Char> &);
-  void addNameStartCharacters(const ISet<Char> &);
-  void addSubst(Char lc, Char uc);
-  void addShunchar(Char);
-  void setShuncharControls();
-  void setQuantity(int, Number);
-  void setName(int, const StringC &);
-  void setSgmlChar(const ISet<Char> &);
-  void implySgmlChar(const Sd &);
-  // :: is for Watcom 10.0a
-  void checkSgmlChar(const Sd &,
-		     const ::SP_NAMESPACE_SCOPE Syntax *otherSyntax,
-		     Boolean invalidUseDocumentCharset,
-		     ISet<WideChar> &invalid)
-       const;
-  static int referenceQuantity(Quantity);
-  const XcharMap<unsigned char> &markupScanTable() const;
-  Boolean multicode() const;
-  void addEntity(const StringC &, Char);
-  size_t nEntities() const;
-  const StringC &entityName(size_t) const;
-  Char entityChar(size_t) const;
-private:
-  void subst(Char, Char);
-  void checkUnivControlChar(UnivChar univChar,
-			    const CharsetInfo &docCharset,
-			    const ::SP_NAMESPACE_SCOPE Syntax *otherSyntax,
-			    ISet<WideChar> &invalid) const;
-
-  ISet<Char> shunchar_;
-  PackedBoolean shuncharControls_;
-  ISet<Char> set_[nSet];
-  Char standardFunction_[3];
-  PackedBoolean standardFunctionValid_[3];
-  Boolean namecaseGeneral_;
-  Boolean namecaseEntity_;
-  StringC delimGeneral_[nDelimGeneral];
-  Vector<StringC> delimShortrefComplex_;
-  ISet<Char> delimShortrefSimple_;
-  StringC names_[nNames];
-  Number quantity_[nQuantity];
-  HashTable<StringC,int> nameTable_;
-  HashTable<StringC,Char> functionTable_;
-  SubstTable<Char> upperSubst_;
-  SubstTable<Char> identitySubst_;
-  const SubstTable<Char> *generalSubst_;
-  const SubstTable<Char> *entitySubst_;
-  XcharMap<unsigned char> categoryTable_;
-  Boolean multicode_;
-  XcharMap<unsigned char> markupScanTable_;
-  Vector<StringC> entityNames_;
-  StringC entityChars_;
-  static const int referenceQuantity_[];
-};
-
-inline Number Syntax::quantity(Quantity q) const
-{
-  return quantity_[q];
-}
-
-inline void Syntax::setQuantity(int i, Number n)
-{
-  quantity_[i] = n;
-}
-
-inline const SubstTable<Char> *Syntax::generalSubstTable() const
-{
-  return generalSubst_;
-}
-
-inline const SubstTable<Char> *Syntax::entitySubstTable() const
-{
-  return entitySubst_;
-}
-
-inline int Syntax::nDelimShortrefComplex() const
-{
-  return int(delimShortrefComplex_.size());
-}
-
-inline const StringC &Syntax::delimGeneral(int i) const
-{
-  return delimGeneral_[i];
-}
-
-inline const StringC &Syntax::delimShortrefComplex(size_t i) const
-{
-  return delimShortrefComplex_[i];
-}
-
-inline const ISet<Char> &Syntax::delimShortrefSimple() const
-{
-  return delimShortrefSimple_;
-}
-
-inline Boolean Syntax::hasShortrefs() const
-{
-  return delimShortrefComplex_.size() > 0 || !delimShortrefSimple_.isEmpty();
-}
-
-inline Char Syntax::standardFunction(int i) const
-{
-  return standardFunction_[i];
-}
-
-inline Boolean Syntax::getStandardFunction(int i, Char &result) const
-{
-  if (standardFunctionValid_[i]) {
-    result = standardFunction_[i];
-    return 1;
-  }
-  else
-    return 0;
-}
-
-inline const ISet<Char> *Syntax::charSet(int i) const
-{
-  return &set_[i];
-}
-
-inline Boolean Syntax::isNameCharacter(Xchar c) const
-{
-  return categoryTable_[c] >= nameStartCategory;
-}
-
-inline Boolean Syntax::isNameStartCharacter(Xchar c) const
-{
-  return categoryTable_[c] == nameStartCategory;
-}
-
-inline Boolean Syntax::isDigit(Xchar c) const
-{
-  return categoryTable_[c] == digitCategory;
-}
-
-inline Boolean Syntax::isS(Xchar c) const
-{
-  return categoryTable_[c] == sCategory;
-}
-
-inline Boolean Syntax::isB(Xchar c) const
-{
-  return (categoryTable_[c] == sCategory
-	  && !(standardFunctionValid_[fRE] && c == standardFunction_[fRE])
-	  && !(standardFunctionValid_[fRS] && c == standardFunction_[fRS]));
-}
-
-inline Syntax::Category Syntax::charCategory(Xchar c) const
-{
-  return Category(categoryTable_[c]);
-}
-
-inline Boolean Syntax::isSgmlChar(Xchar c) const
-{
-  return c >= 0 && set_[sgmlChar].contains(Char(c));
-}
-
-inline const StringC &Syntax::reservedName(ReservedName i) const
-{
-  return names_[i];
-}
-
-inline size_t Syntax::attcnt() const
-{
-  return quantity(Syntax::qATTCNT);
-}
-
-inline size_t Syntax::attsplen() const
-{
-  return quantity(Syntax::qATTSPLEN);
-}
-
-inline size_t Syntax::namelen() const
-{
-  return quantity(Syntax::qNAMELEN);
-}
-
-inline size_t Syntax::penamelen() const
-{
-  return quantity(Syntax::qNAMELEN) - delimGeneral(Syntax::dPERO).size();
-}
-
-inline size_t Syntax::litlen() const
-{
-  return quantity(Syntax::qLITLEN);
-}
-
-inline size_t Syntax::normsep() const
-{
-  return quantity(Syntax::qNORMSEP);
-}
-
-inline size_t Syntax::dtemplen() const
-{
-  return quantity(Syntax::qDTEMPLEN);
-}
-
-inline size_t Syntax::grpcnt() const
-{
-  return quantity(Syntax::qGRPCNT);
-}
-
-inline size_t Syntax::grpgtcnt() const
-{
-  return quantity(Syntax::qGRPGTCNT);
-}
-
-inline size_t Syntax::grplvl() const
-{
-  return quantity(Syntax::qGRPLVL);
-}
-
-inline size_t Syntax::taglvl() const
-{
-  return quantity(Syntax::qTAGLVL);
-}
-
-inline size_t Syntax::taglen() const
-{
-  return quantity(Syntax::qTAGLEN);
-}
-
-inline size_t Syntax::entlvl() const
-{
-  return quantity(Syntax::qENTLVL);
-}
-
-inline size_t Syntax::pilen() const
-{
-  return quantity(Syntax::qPILEN);
-}
-
-inline Char Syntax::space() const
-{
-  return standardFunction(Syntax::fSPACE);
-}
-
-inline void Syntax::setSgmlChar(const ISet<Char> &set)
-{
-  set_[sgmlChar] = set;
-}
-
-inline int Syntax::referenceQuantity(Quantity i)
-{
-  return referenceQuantity_[i];
-}
-
-inline void Syntax::setShuncharControls()
-{
-  shuncharControls_ = 1;
-}
-
-inline const XcharMap<unsigned char> &Syntax::markupScanTable() const
-{
-  return markupScanTable_;
-}
-
-inline Boolean Syntax::multicode() const
-{
-  return multicode_;
-}
-
-inline Boolean Syntax::namecaseGeneral() const
-{
-  return namecaseGeneral_;
-}
-
-inline Boolean Syntax::namecaseEntity() const
-{
-  return namecaseEntity_;
-}
-
-inline size_t Syntax::nEntities() const
-{
-  return entityNames_.size();
-}
-
-inline const StringC &Syntax::entityName(size_t i) const
-{
-  return entityNames_[i];
-}
-
-inline Char Syntax::entityChar(size_t i) const
-{
-  return entityChars_[i];
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* Syntax_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Text.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Text_INCLUDED
-#define Text_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "StringC.h"
-#include "Vector.h"
-#include "Location.h"
-#include "SubstTable.h"
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class InternalEntity;
-
-struct SP_API TextItem {
-  TextItem();
-  enum Type {
-    data,
-    cdata,
-    sdata,
-    nonSgml,
-    entityStart,
-    entityEnd,
-    startDelim,
-    endDelim,
-    endDelimA,
-    ignore
-    };
-  Type type;
-  // char that was ignored
-  Char c;
-  // location of this item
-  // data - location of first char
-  // (c/sdata)entityStart - location of first char of entity
-  // (c/sdata)entityEnd - location of entity end in entity
-  // ignore - location of ignored character
-  // startDelim - location of first char of delimiter
-  // endDelim(A) - location of first char of delimiter
-  Location loc;
-  // index of character in chars_ to which this applies
-  size_t index;
-};
-
-// This is used to represent literals and attribute values.
-
-class SP_API Text {
-public:
-  Text();
-  void clear();
-  void swap(Text &to);
-  void addChar(Char c, const Location &);
-  void addChars(const StringC &, const Location &);
-  void addChars(const Char *, size_t, const Location &);
-  void insertChars(const StringC &, const Location &);
-  void ignoreChar(Char, const Location &);
-  void ignoreLastChar();
-  void addNonSgmlChar(Char c, const Location &);
-  void addEntityStart(const Location &);
-  void addEntityEnd(const Location &);
-  void addCdata(const InternalEntity *, const ConstPtr<Origin> &);
-  void addSdata(const InternalEntity *, const ConstPtr<Origin> &);
-  void addStartDelim(const Location &loc);
-  void addEndDelim(const Location &loc, Boolean lita);
-  void subst(const SubstTable<Char> &, Char space);
-  void addCharsTokenize(const Char *, size_t, const Location &loc, Char space);
-  void addCharsTokenize(const StringC &, const Location &loc, Char space);
-  void tokenize(Char space, Text &text) const;
-  Location charLocation(size_t i) const;
-  Boolean charLocation(size_t, const Origin *&, Index &) const;
-  Boolean charLocation(size_t i, const ConstPtr<Origin> *&, Index &) const;
-  size_t size() const;
-  Char lastChar() const;
-  const StringC &string() const;
-  size_t normalizedLength(size_t normsep) const;
-  Boolean fixedEqual(const Text &) const;
-  // Location of first char of start delimiter.
-  Boolean startDelimLocation(Location &) const;
-  // Location of first char of end delimiter
-  Boolean endDelimLocation(Location &) const;
-  // Is delimiter a lit or lita?
-  Boolean delimType(Boolean &lita) const;
-private:
-  void addSimple(TextItem::Type, const Location &);
-  StringC chars_;
-  Vector<TextItem> items_;
-  friend class TextIter;
-};
-
-class SP_API TextIter {
-public:
-  TextIter(const Text &);
-  void rewind();
-  Boolean next(TextItem::Type &, const Char *&, size_t &,
-	       const Location *&);
-  // Alternative interface to next()
-  Boolean valid() const;
-  void advance();
-  TextItem::Type type() const;
-  const Location &location() const;
-  const Char *chars(size_t &length) const;
-private:
-  const TextItem *ptr_;
-  const Text *text_;
-};
-
-inline
-size_t Text::size() const
-{
-  return chars_.size();
-}
-
-inline
-Char Text::lastChar() const
-{
-  return chars_[chars_.size() - 1];
-}
-
-inline
-const StringC &Text::string() const
-{
-  return chars_;
-}
-
-inline
-void Text::addEntityStart(const Location &loc)
-{
-  addSimple(TextItem::entityStart, loc);
-}
-
-inline
-void Text::addEntityEnd(const Location &loc)
-{
-  addSimple(TextItem::entityEnd, loc);
-}
-
-inline
-void Text::addChars(const StringC &s, const Location &loc)
-{
-  addChars(s.data(), s.size(), loc);
-}
-
-inline
-void Text::addStartDelim(const Location &loc)
-{
-  addSimple(TextItem::startDelim, loc);
-}
-
-inline
-void Text::addEndDelim(const Location &loc, Boolean lita)
-{
-  addSimple(lita ? TextItem::endDelimA : TextItem::endDelim,
-	    loc);
-}
-
-inline
-void Text::addCharsTokenize(const StringC &str, const Location &loc,
-			    Char space)
-{
-  addCharsTokenize(str.data(), str.size(), loc, space);
-}
-
-inline
-Location Text::charLocation(size_t i) const
-{
-  const ConstPtr<Origin> *originP;
-  Index index;
-  if (charLocation(i, originP, index))
-    return Location(*originP, index);
-  else
-    return Location();
-}
-
-inline
-Boolean Text::charLocation(size_t i, const Origin *&origin, Index &index) const
-{
-  const ConstPtr<Origin> *originP;
-  if (charLocation(i, originP, index)) {
-    origin = originP->pointer();
-    return 1;
-  }
-  else
-    return 0;
-}
-
-inline
-void TextIter::rewind()
-{
-  ptr_ = text_->items_.begin();
-}
-
-inline
-void TextIter::advance()
-{
-  ptr_++;
-}
-
-inline
-Boolean TextIter::valid() const
-{
-  return ptr_ != (text_->items_.begin() + text_->items_.size());
-}
-
-inline
-const Location &TextIter::location() const
-{
-  return ptr_->loc;
-}
-
-inline
-TextItem::Type TextIter::type() const
-{
-  return ptr_->type;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Text_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/TranslateCodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef TranslateCodingSystem_INCLUDED
-#define TranslateCodingSystem_INCLUDED 1
-
-#include "CodingSystem.h"
-#include "Ptr.h"
-#include "CharMap.h"
-#include "CharsetRegistry.h"
-#include "types.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API TranslateCodingSystem : public CodingSystem {
-public:
-  struct Desc {
-    CharsetRegistry::ISORegistrationNumber number;
-    // How much to add to the values in the base set.
-    Char add;
-  };
-  // codingSystem is the underlying BCTF
-  // desc describes the meaning of the bit combinations produced by that BCTF
-  // charset is the system character set
-  // replacementChar is character in systemCharset that should be used to represent
-  // characters that do not exist in the systemCharset.
-  // illegalChar is a code that can never be produced by the underlying BCTF.
-  TranslateCodingSystem(const CodingSystem *codingSystem,
-			const Desc *desc,
-			const CharsetInfo *charset,
-			Char illegalChar,
-			Char replacementChar);
-  Decoder *makeDecoder() const;
-  Encoder *makeEncoder() const;
-  unsigned fixedBytesPerChar() const;
-private:
-  ConstPtr<CharMapResource<Char> > decodeMap_;
-  ConstPtr<CharMapResource<Char> > encodeMap_;
-  const CodingSystem *sub_;
-  const Desc *desc_;
-  const CharsetInfo *charset_;
-  Char illegalChar_;
-  Char replacementChar_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not TranslateCodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/TranslateInputCodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-#pragma ident	"@(#)TranslateInputCodingSystem.h	1.2	97/04/24 SMI"
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef TranslateInputCodingSystem_INCLUDED
-#define TranslateInputCodingSystem_INCLUDED 1
-
-#include "CodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API TranslateInputCodingSystem : public InputCodingSystem {
-public:
-  TranslateInputCodingSystem(const Char *table);
-  Decoder *makeDecoder() const;
-private:
-  const Char *table_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not TranslateInputCodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/TypeId.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef TypeId_INCLUDED
-#define TypeId_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API TypeId {
-public:
-  TypeId(const void *const *bases) : bases_(bases) { }
-  // Is this object of type ti?
-  int isA(TypeId ti) const;
-  // Can an object with this dynamic type be cast from a static type FROM
-  // to a static type TO?
-  int canCast(TypeId to, TypeId from) const;
-  int operator==(TypeId ti) const { return bases_ == ti.bases_; }
-  int operator!=(TypeId ti) const { return bases_ != ti.bases_; }
-private:
-  const void *const *bases_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not TypeId_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/URLStorage.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef URLStorage_INCLUDED
-#define URLStorage_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "StorageManager.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API URLStorageManager : public IdStorageManager {
-public:
-  URLStorageManager(const char *type);
-  StorageObject *makeStorageObject(const StringC &id,
-				   const StringC &baseId,
-				   Boolean search,
-				   Boolean mayRewind,
-				   Messenger &,
-				   StringC &found); 
-  const char *type() const;
-  Boolean guessIsId(const StringC &, const CharsetInfo &) const;
-  Boolean transformNeutral(StringC &, Boolean fold, Messenger &) const;
-private:
-  Boolean resolveRelative(const StringC &base, StringC &specId, Boolean) const;
-  URLStorageManager(const URLStorageManager &); // undefined
-  void operator=(const URLStorageManager &);	// undefined
-  const char *type_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not URLStorage_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/UTF8CodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef UTF8CodingSystem_INCLUDED
-#define UTF8CodingSystem_INCLUDED 1
-
-#include "CodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API UTF8CodingSystem : public CodingSystem {
-public:
-  Decoder *makeDecoder() const;
-  Encoder *makeEncoder() const;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not UTF8CodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/UnicodeCodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef UnicodeCodingSystem_INCLUDED
-#define UnicodeCodingSystem_INCLUDED 1
-
-#include "CodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API UnicodeCodingSystem : public CodingSystem {
-public:
-  UnicodeCodingSystem(const InputCodingSystem *sub = 0);
-  Decoder *makeDecoder() const;
-  Encoder *makeEncoder() const;
-  unsigned fixedBytesPerChar() const;
-private:
-  const InputCodingSystem *sub_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not UnicodeCodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/UnivCharsetDesc.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-// Copyright (c) 1994, 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef UnivCharsetDesc_INCLUDED
-#define UnivCharsetDesc_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <stddef.h>
-#include "types.h"
-#include "CharMap.h"
-#include "RangeMap.h"
-#include "Boolean.h"
-#include "ISet.h"
-#include "constant.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API UnivCharsetDesc {
-public:
-  struct SP_API Range {
-    WideChar descMin;
-    // Note that this is a count, as in the SGML declaration,
-    // rather than a maximum.
-    unsigned long count;
-    UnivChar univMin;
-  };
-  enum {
-    zero = 48,
-    A = 65,
-    a = 97,
-    tab = 9,
-    rs = 10,
-    re = 13,
-    space = 32,
-    exclamation = 33,
-    lessThan = 60,
-    greaterThan = 62
-    };
-  UnivCharsetDesc();
-  UnivCharsetDesc(const Range *, size_t);
-  void set(const Range *, size_t);
-  Boolean descToUniv(WideChar from, UnivChar &to) const;
-  Boolean descToUniv(WideChar from, UnivChar &to, WideChar &alsoMax) const;
-  // Return 0 for no matches, 1 for 1, 2 for more than 1
-  unsigned univToDesc(UnivChar from, WideChar &to, ISet<WideChar> &toSet)
-       const;
-  unsigned univToDesc(UnivChar from, WideChar &to, ISet<WideChar> &toSet,
-		      WideChar &count)
-       const;
-  void addRange(WideChar descMin, WideChar descMax, UnivChar univMin);
-  void addBaseRange(const UnivCharsetDesc &baseSet,
-		    WideChar descMin,
-		    WideChar descMax,
-		    WideChar baseMin,
-		    ISet<WideChar> &baseMissing);
-private:
-  static Boolean noDesc(Unsigned32 n) {
-    return (n & (unsigned(1) << 31));
-  }
-  static UnivChar extractChar(Unsigned32 n, Char ch) {
-    return UnivChar((n + ch) & ((unsigned(1) << 31) - 1));
-  }
-  static Unsigned32 wrapChar(UnivChar univ, Char ch) {
-    return Unsigned32((univ - ch) & ((unsigned(1) << 31) - 1));
-  }
-  // For characters <= charMax.<
-  CharMap<Unsigned32> charMap_;
-  // For characters > charMax.
-  RangeMap<WideChar,UnivChar> rangeMap_;
-  friend class UnivCharsetDescIter;
-};
-
-class SP_API UnivCharsetDescIter {
-public:
-  UnivCharsetDescIter(const UnivCharsetDesc &);
-  Boolean next(WideChar &descMin, WideChar &descMax, UnivChar &univMin);
-  void skipTo(WideChar);
-private:
-  const CharMap<Unsigned32> *charMap_;
-  Char nextChar_;
-  Boolean doneCharMap_;
-  RangeMapIter<WideChar,UnivChar> rangeMapIter_;
-};
-
-inline
-Boolean UnivCharsetDesc::descToUniv(WideChar from, UnivChar &to) const
-{
-  if (from > charMax) {
-    WideChar tem;
-    return rangeMap_.map(from, to, tem);
-  }
-  else {
-    Unsigned32 tem = charMap_[from];
-    if (noDesc(tem))
-      return 0;
-    else {
-      to = extractChar(tem, from);
-      return 1;
-    } 
-  }
-}
-
-inline
-Boolean UnivCharsetDesc::descToUniv(WideChar from, UnivChar &to,
-				    WideChar &alsoMax) const
-{
-  if (from > charMax)
-    return rangeMap_.map(from, to, alsoMax);
-  else {
-    Char max;
-    Unsigned32 tem = charMap_.getRange(from, max);
-    alsoMax = max;
-    if (noDesc(tem))
-      return 0;
-    else {
-      to = extractChar(tem, from);
-      return 1;
-    }
-  }
-}
-
-inline
-unsigned UnivCharsetDesc::univToDesc(UnivChar from, WideChar &to,
-				     ISet<WideChar> &toSet) const
-{
-  WideChar tem;
-  return univToDesc(from, to, toSet, tem);
-}
-
-inline
-void UnivCharsetDescIter::skipTo(WideChar ch)
-{
-  if (ch > charMax)
-    doneCharMap_ = 1;
-  else
-    nextChar_ = ch;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not UnivCharsetDesc_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Vector.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-// Copyright (c) 1994, 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Vector_DEF_INCLUDED
-#define Vector_DEF_INCLUDED 1
-
-#include <stddef.h>
-#include <string.h>
-
-#ifdef SP_QUAL_TEMPLATE_DTOR_BROKEN
-#define DTOR(T) ~T
-#else
-#define DTOR(T) T::~T
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-Vector<T>::~Vector()
-{
-  if (ptr_) {
-    erase(ptr_, ptr_ + size_);
-    ::operator delete((void *)ptr_);
-  }
-}
-
-#ifndef NC
-
-template<class T>
-Vector<T>::Vector(const Vector<T> &v)
-: ptr_(0), size_(0), alloc_(0)
-{
-  insert(ptr_ + size_, v.ptr_, v.ptr_ + v.size_);
-}
-
-template<class T>
-Vector<T>::Vector(size_t n, const T &t)
-: ptr_(0), size_(0), alloc_(0)
-{
-  insert(ptr_ + size_, n, t);
-}
-
-template<class T>
-Vector<T> &Vector<T>::operator=(const Vector<T> &v)
-{
-  if (&v != this) {
-    size_t n = v.size_;
-    if (n > size_) {
-      n = size_;
-      insert(ptr_ + size_, v.ptr_ + size_, v.ptr_ + v.size_);
-    }
-    else if (n < size_)
-      erase(ptr_ + n, ptr_ + size_);
-    while (n-- > 0)
-      ptr_[n] = v.ptr_[n];
-  }
-  return *this;
-}
-
-template<class T>
-void Vector<T>::assign(size_t n, const T &t)
-{
-  size_t sz = n;
-  if (n > size_) {
-    sz = size_;
-    insert(ptr_ + size_, n - size_, t);
-  }
-  else if (n < size_)
-    erase(ptr_ + n, ptr_ + size_);
-  while (sz-- > 0)
-    ptr_[sz] = t;
-}
-
-template<class T>
-void Vector<T>::insert(const T *p, size_t n, const T &t)
-{
-  size_t i = p - ptr_;
-  reserve(size_ + n);
-  if (i != size_)
-    memmove(ptr_ + i + n, ptr_ + i, (size_ - i)*sizeof(T));
-  for (T *pp = ptr_ + i; n-- > 0; pp++) {
-    (void)new (pp) T(t);
-    size_++;
-  }
-}
-
-template<class T>
-void Vector<T>::insert(const T *p, const T *q1, const T *q2)
-{
-  size_t i = p - ptr_;
-  size_t n = q2 - q1;
-  reserve(size_ + n);
-  if (i != size_)
-    memmove(ptr_ + i + n, ptr_ + i, (size_ - i)*sizeof(T));
-  for (T *pp = ptr_ + i; q1 != q2; q1++, pp++) {
-    (void)new (pp) T(*q1);
-    size_++;
-  }
-}
-
-#endif
-
-template<class T>
-void Vector<T>::swap(Vector<T> &v)
-{
-  {
-    T *tem = ptr_;
-    ptr_ = v.ptr_;
-    v.ptr_ = tem;
-  }
-  {
-    size_t tem = size_;
-    size_ = v.size_;
-    v.size_ = tem;
-  }
-  {
-    size_t tem = alloc_;
-    alloc_ = v.alloc_;
-    v.alloc_ = tem;
-  }
-}
-
-template<class T>
-void Vector<T>::append(size_t n)
-{
-  reserve(size_ + n);
-  while (n-- > 0)
-    (void)new (ptr_ + size_++) T;
-}
-
-template<class T>
-T *Vector<T>::erase(const T *p1, const T *p2)
-{
-  typedef T X;
-  for (const T *p = p1; p != p2; p++)
-    ((X *)p)->~X();
-  if (p2 != ptr_ + size_)
-    memmove((T *)p1, p2, ((const T *)(ptr_ + size_) - p2)*sizeof(T));
-  size_ -= p2 - p1;
-  return (T *)p1;
-}
-
-template<class T>
-void Vector<T>::reserve1(size_t size)
-{
-  // Try to preserve a consistent start in the
-  // event of an out of memory exception.
-  size_t newAlloc = alloc_*2;
-  if (size > newAlloc)
-    newAlloc += size;
-  void *p = ::operator new(newAlloc * sizeof(T));
-  alloc_ = newAlloc;
-  if (ptr_) {
-    memcpy(p, ptr_, size_*sizeof(T));
-    ::operator delete((void *)ptr_);
-  }
-  ptr_ = (T *)p;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Vector_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Vector.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-// Copyright (c) 1994, 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Vector_INCLUDED
-#define Vector_INCLUDED 1
-
-#include <stddef.h>
-#include "xnew.h"
-
-// This offers a subset of the interface offered by the standard C++
-// vector class as defined in the Jan 96 WP.
-// Code in SP currently assumes that size_type is size_t.
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class Vector {
-public:
-  typedef size_t size_type;
-  typedef T *iterator;
-  typedef const T *const_iterator;
-  Vector() : ptr_(0), size_(0), alloc_(0) { }
-  Vector(size_t n) : ptr_(0), size_(0), alloc_(0) { append(n); }
-  ~Vector();
-  void resize(size_t n) {
-    if (n < size_)
-      erase(ptr_ + n, ptr_ + size_);
-    else if (n > size_)
-      append(n - size_);
-  }
-#ifndef NC
-  Vector(size_t, const T &);
-  Vector(const Vector<T> &);
-  Vector<T> &operator=(const Vector<T> &);
-  void assign(size_t, const T &);
-  void push_back(const T &t) {
-    reserve(size_ + 1);
-    (void)new (ptr_ + size_) T(t);
-    size_++;
-  }
-  void insert(const_iterator p, size_t n, const T &t);
-  void insert(const_iterator p, const_iterator q1, const_iterator q2);
-#endif
-  void swap(Vector<T> &);
-  void clear() { erase(ptr_, ptr_ + size_); }
-  size_t size() const { return size_; }
-  T &operator[](size_t i) { return ptr_[i]; }
-  const T &operator[](size_t i) const { return ptr_[i]; }
-  iterator begin() { return ptr_; }
-  const_iterator begin() const { return ptr_; }
-  T &back() { return ptr_[size_ - 1]; }
-  const T &back() const { return ptr_[size_ - 1]; }
-  void reserve(size_t n) {  if (n > alloc_) reserve1(n); }
-  iterator erase(const_iterator, const_iterator);
-private:
-#ifdef NC
-  Vector(const Vector<T> &);
-  void operator=(const Vector<T> &);
-#endif
-  void append(size_t);
-  void reserve1(size_t);
-  
-  size_t size_;
-  T *ptr_;
-  size_t alloc_;		// allocated size
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Vector_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "Vector.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/Win32CodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Win32CodingSystem_INCLUDED
-#define Win32CodingSystem_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "CodingSystem.h"
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API Win32CodingSystem : public CodingSystem {
-public:
-  enum SpecialCodePage {
-    codePageOEM,
-    codePageAnsi
-    };
-  Win32CodingSystem(unsigned int codePage, Char defaultChar = 0xfffd);
-  Win32CodingSystem(SpecialCodePage, Char defaultChar = 0xfffd);
-  Boolean isValid() const;
-  Decoder *makeDecoder() const;
-  Encoder *makeEncoder() const;
-private:
-  unsigned int codePage_;
-  Char defaultChar_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Win32CodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/WinApp.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef WinApp_INCLUDED
-#define WinApp_INCLUDED 1
-
-#include "Event.h"
-#include "Vector.h"
-#include "StringC.h"
-#include "CharsetInfo.h"
-#include "ParserOptions.h"
-#include "SgmlParser.h"
-#include "Ptr.h"
-#include "CodingSystemKit.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API WinApp {
-public:
-  WinApp();
-  ParserOptions options;
-  Boolean setEncoding(StringC &tem);
-  const StringC &encoding() const;
-  Boolean setDefaultEncoding(StringC &tem);
-  const StringC &defaultEncoding() const;
-  // These are semi-colon delimited lists of system identifiers.
-  void setExtraCatalogs(StringC &tem);
-  const StringC &extraCatalogs() const;
-  void setDefaultCatalogs(StringC &tem);
-  const StringC &defaultCatalogs() const;
-  void setExtraDirectories(StringC &tem);
-  const StringC &extraDirectories() const;
-  void setDefaultDirectories(StringC &tem);
-  const StringC &defaultDirectories() const;
-  void initParser(const StringC &, SgmlParser &);
-  void initParser(const StringC &sysid, SgmlParser &, Ptr<EntityManager> &);
-private:
-  static void setRegistry(const char *name, const StringC &value);
-  static Boolean getRegistry(const char *name, StringC &value);
-  const InputCodingSystem *getCodingSystem(const StringC &name);
-
-  StringC extraCatalogs_;
-  StringC defaultCatalogs_;
-  StringC extraDirectories_;
-  StringC defaultDirectories_;
-  StringC encoding_;
-  StringC defaultEncoding_;
-  ConstPtr<InputCodingSystemKit> codingSystemKit_;
-};
-
-inline
-const StringC &WinApp::encoding() const
-{
-  return encoding_;
-}
-
-inline
-const StringC &WinApp::defaultEncoding() const
-{
-  return defaultEncoding_;
-}
-
-inline
-const StringC &WinApp::extraCatalogs() const
-{
-  return extraCatalogs_;
-}
-
-inline
-void WinApp::setExtraCatalogs(StringC &str)
-{
-  str.swap(extraCatalogs_);
-}
-
-inline
-const StringC &WinApp::defaultCatalogs() const
-{
-  return defaultCatalogs_;
-}
-
-inline
-const StringC &WinApp::extraDirectories() const
-{
-  return extraDirectories_;
-}
-
-inline
-void WinApp::setExtraDirectories(StringC &str)
-{
-  str.swap(extraDirectories_);
-}
-
-inline
-const StringC &WinApp::defaultDirectories() const
-{
-  return defaultDirectories_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not WinApp_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/WinInetStorage.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef WinInetStorage_INCLUDED
-#define WinInetStorage_INCLUDED 1
-
-#include "StorageManager.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SP_API WinInetStorageManager : public IdStorageManager {
-public:
-  WinInetStorageManager(const char *type);
-  ~WinInetStorageManager();
-  StorageObject *makeStorageObject(const StringC &id,
-				   const StringC &baseId,
-				   Boolean search,
-				   Boolean mayRewind,
-				   Messenger &,
-				   StringC &found); 
-  const char *type() const;
-  Boolean guessIsId(const StringC &, const CharsetInfo &) const;
-  Boolean transformNeutral(StringC &, Boolean fold, Messenger &) const;
-private:
-  Boolean resolveRelative(const StringC &base, StringC &specId, Boolean) const;
-  WinInetStorageManager(const WinInetStorageManager &); // undefined
-  void operator=(const WinInetStorageManager &);	// undefined
-  Boolean initSession();
-  const char *type_;
-  void *session_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not WinInetStorage_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/XMLCodingSystem.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef XMLCodingSystem_INCLUDED
-#define XMLCodingSystem_INCLUDED 1
-
-#include "CodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class InputCodingSystemKit;
-
-class SP_API XMLCodingSystem : public CodingSystem {
-public:
-  XMLCodingSystem(const InputCodingSystemKit *);
-  Decoder *makeDecoder() const;
-  Encoder *makeEncoder() const;
-private:
-  const InputCodingSystemKit *kit_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not XMLCodingSystem_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/XcharMap.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef XcharMap_DEF_INCLUDED
-#define XcharMap_DEF_INCLUDED 1
-
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-SharedXcharMap<T>::SharedXcharMap()
-{
-}
-
-template<class T>
-SharedXcharMap<T>::SharedXcharMap(T defaultValue)
-{
-  for (size_t i = 0; i < sizeof(v)/sizeof(v[0]); i++)
-    v[i] = defaultValue;
-}
-
-template<class T>
-XcharMap<T>::XcharMap()
-: ptr_(0)
-{
-}
-
-template<class T>
-XcharMap<T>::XcharMap(T defaultValue)
-: sharedMap_(new SharedXcharMap<T>(defaultValue))
-{
-  ptr_ = sharedMap_->ptr();
-}
-
-template<class T>
-void XcharMap<T>::setRange(Char min, Char max, T val)
-{
-  if (min <= max) {
-    do {
-      ptr_[min] = val;
-    } while (min++ != max);
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not XcharMap_DEF_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/XcharMap.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef XcharMap_INCLUDED
-#define XcharMap_INCLUDED 1
-
-#include "types.h"
-#include "Resource.h"
-#include "Ptr.h"
-#include "constant.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-template<class T>
-class SharedXcharMap : public Resource {
-public:
-  SharedXcharMap();
-  SharedXcharMap(T defaultValue);
-  T *ptr() { return v + 1; }
-private:
-  T v[2 + charMax];
-};
-
-template<class T>
-class XcharMap {
-public:
-  XcharMap();
-  XcharMap(T defaultValue);
-  T operator[](Xchar c) const { return ptr_[c]; }
-  void setRange(Char min, Char max, T val);
-  void setChar(Char c, T val) { ptr_[c] = val; }
-  void setEe(T val) { ptr_[-1] = val; }
-  void clear() { ptr_ = 0; sharedMap_.clear(); }
-private:
-  T *ptr_;
-  Ptr<SharedXcharMap<T> > sharedMap_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not XcharMap_INCLUDED */
-
-#ifdef SP_DEFINE_TEMPLATES
-#include "XcharMap.cxx"
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/config.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,298 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1994, 1995, 1996 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef _CONFIG_H
-#define	_CONFIG_H
-
-#ifndef config_INCLUDED
-#define	config_INCLUDED 1
-
-#define	SP_INCLUDE_UNISTD_H
-#define	SP_POSIX_FILENAMES
-
-#ifdef __GNUG__
-// It's not missing, but it pulls in libg++
-#define	SP_NEW_H_MISSING
-#ifndef SP_MANUAL_INST
-#define	SP_MANUAL_INST
-#endif
-#ifndef SP_ANSI_CLASS_INST
-#define	SP_ANSI_CLASS_INST
-#endif
-#ifndef SP_HAVE_BOOL
-#define	SP_HAVE_BOOL
-#endif
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
-#define	SP_ANSI_FOR_SCOPE
-#endif
-
-#endif /* __GNUG__ */
-
-#if defined(sun) || defined(__sun)
-// struct stat has st_blksize member
-#define	SP_STAT_BLKSIZE
-#endif
-
-#ifdef __MACH__
-#define	SP_MUTEX_MACH
-#endif
-
-#ifdef __EMX__
-// EMX 0.9a for OS/2
-#undef SP_POSIX_FILENAMES
-#define	SP_MSDOS_FILENAMES
-#endif
-
-#ifdef _MSC_VER
-// Microsoft Visual C++ 4.0
-#undef SP_INCLUDE_UNISTD_H
-#define	SP_INCLUDE_IO_H
-#ifndef SP_ANSI_CLASS_INST
-#define	SP_ANSI_CLASS_INST
-#endif
-#undef SP_POSIX_FILENAMES
-#define	SP_MSDOS_FILENAMES
-#define	SP_SHORT_HEADERS
-#pragma warning(disable : 4660) // already instantiated
-#pragma warning(disable : 4661) // missing def for decl member
-#pragma warning(disable : 4786) // debug symbol truncated (>255 chars)
-#pragma warning(disable : 4018) // signed/unsigned mismatch
-#pragma warning(disable : 4251) // __declspec(dllexport)
-#pragma warning(disable : 4275)
-#pragma warning(disable : 4237) // future reserved keyword
-#define	huge verybig
-#if _MSC_VER == 900
-#define	SP_DECLARE_PLACEMENT_OPERATOR_NEW
-#endif
-#define	set_new_handler _set_new_handler
-// Function passed to set_new_handler() returns int and takes size_t argument.
-#define	SP_FANCY_NEW_HANDLER
-
-#if _MSC_VER >= 1100
-// Visual C++ 5.0
-#define	SP_HAVE_BOOL
-#define	SP_SIZEOF_BOOL_1
-#pragma warning(disable : 4800) // forcing value to bool 'true' or
-	// 'false' (performance warning)
-#endif
-
-#define	SP_HAVE_SETMODE
-#define	SP_DLLEXPORT __declspec(dllexport)
-#define	SP_DLLIMPORT __declspec(dllimport)
-
-#ifdef _DLL
-#define	SP_USE_DLL
-#endif
-
-#ifdef SP_USE_DLL
-#ifndef BUILD_LIBSP
-// It's not possible to export templates using __declspec(dllexport),
-// so instead we include the template definitions in the headers,
-// which allows Visual C++ to instantiate any needed templates
-// in the client.
-#define	SP_DEFINE_TEMPLATES
-#endif
-#endif /* SP_USE_DLL */
-
-#ifndef SP_MANUAL_INST
-#ifndef SP_DEFINE_TEMPLATES
-#define	SP_MANUAL_INST
-#endif
-#endif /* not SP_MANUAL_INST */
-
-#ifdef SP_MULTI_BYTE
-#define	SP_WIDE_SYSTEM
-#endif
-
-// wchar_t's base type is an unsigned short
-#define	SP_WCHAR_T_USHORT
-
-// Enable precompiled header support.
-#define	SP_PCH
-// Don't compile in message text.
-#define	SP_NO_MESSAGE_TEXT
-#ifdef _MT
-// Use Win32 critical section facilities
-#define	SP_MUTEX_WIN32
-// Use the new Standard C++ library
-#define	SP_ANSI_LIB
-#if _MSC_VER < 1100
-// Versions prior to 5.0 don't use the std namespace
-#define	SP_NO_STD_NAMESPACE
-#endif
-#endif /* _MT */
-#endif /* _MSC_VER */
-
-#ifdef __WATCOMC__
-// Watcom C++ 10.0a
-#define	SP_MANUAL_INST
-#undef SP_POSIX_FILENAMES
-#define	SP_MSDOS_FILENAMES
-#undef SP_INCLUDE_UNISTD_H
-#define	SP_INCLUDE_IO_H
-#pragma warning 004 9
-#undef huge
-// Cannot handle T::~T in template.
-#define	SP_QUAL_TEMPLATE_DTOR_BROKEN
-#define	SP_HAVE_SETMODE
-#define	_setmode setmode
-#if __WATCOMC__ < 1050
-#define	_O_BINARY O_BINARY
-#endif
-#define	SP_WCHAR_T_USHORT
-#if __WATCOMC__ >= 1100
-#define	SP_HAVE_BOOL
-// #define SP_SIZEOF_BOOL_1
-#endif
-#endif /* __WATCOMC__ */
-
-#ifdef __BORLANDC__
-// Borland C++ 5.0
-#define	SP_ANSI_FOR_SCOPE
-#define	SP_HAVE_RTTI
-#define	SP_HAVE_SETMODE
-#undef SP_INCLUDE_UNISTD_H
-#define	SP_INCLUDE_IO_H
-#undef SP_POSIX_FILENAMES
-#define	SP_MSDOS_FILENAMES
-#define	SP_HAVE_BOOL
-#define	SP_SHORT_HEADERS
-#define	_O_BINARY O_BINARY
-#define	_setmode setmode
-#define	SP_ANSI_CLASS_INST
-#define	SP_MANUAL_INST
-// Building as a DLL doesn't work with Borland C++ yet.
-#define	SP_DLLEXPORT __declspec(dllexport)
-#define	SP_DLLIMPORT __declspec(dllimport)
-#ifdef SP_USE_DLL
-#ifndef BUILD_LIBSP
-#define	SP_DEFINE_TEMPLATES
-#endif
-#endif /* SP_USE_DLL */
-#define	SP_WCHAR_T_USHORT
-#endif /* __BORLANDC__ */
-
-#ifdef __IBMCPP__
-// IBM CSet++ 2.1 from Horst Szillat <[email protected]>.
-#undef SP_POSIX_FILENAMES
-#define	SP_MANUAL_INST
-#define	SP_SHORT_HEADERS
-#define	SP_MSDOS_FILENAMES
-#undef SP_INCLUDE_UNISTD_H
-#define	SP_INCLUDE_IO_H
-#define	S_IFMT (S_IFDIR|S_IFCHR|S_IFREG)
-#endif
-
-#ifdef __xlC__
-// IBM CSet++ 3.1 on AIX 4.1.
-// Use CXX=xlC and CC=xlC in the Makefile.
-// Note that -g creates massive executables and that -O
-// takes ages to compile and creates core dumping executables!
-// I havn't tried the socket stuff.
-// <[email protected]>
-#define	SP_MANUAL_INST
-#define	SP_HAVE_LOCALE
-#define	SP_STAT_BLKSIZE
-#endif /* __xlC__ */
-
-#ifdef macintosh
-// Apple MacOS. Tested only with Metrowerks CW10.
-// From Ashley Colin Yakeley <[email protected]>
-#undef SP_POSIX_FILENAMES
-#define	SP_MAC_FILENAMES
-#define	SP_LINE_TERM1 '\r'
-
-#ifdef __MWERKS__
-// Metrowerks for some platform (MacOS in this case)
-
-#pragma mpwc_newline off
-#define	SP_DEFINE_TEMPLATES
-// #define SP_USE_DLL -- __declspec doesn't work with classes (yet)
-#ifdef SP_USE_DLL
-#define	SP_DLLEXPORT __declspec(export)
-#define	SP_DLLIMPORT __declspec(import)
-#endif // SP_USE_DLL
-
-#if __MWERKS__ >= 0x1000
-// bool option only defined for CW10 and later (note __MWERKS__ is BCD)
-#if __option(bool)
-#define	SP_HAVE_BOOL
-#endif // __option(bool)
-#endif // __MWERKS__ >= 0x1000
-#endif // __MWERKS__
-
-#if ('\n' != 10) || ('\r' != 13)
-#error "newlines incorrect"
-#endif
-
-#endif /* macintosh */
-
-#ifdef SP_HAVE_SETMODE
-#ifndef SP_LINE_TERM1
-#define	SP_LINE_TERM1 '\r'
-#define	SP_LINE_TERM2 '\n'
-#endif
-#endif /* not SP_HAVE_SETMODE */
-
-#ifndef SP_LINE_TERM1
-#define	SP_LINE_TERM1 '\n'
-#endif
-
-#ifndef SP_ANSI_FOR_SCOPE
-// This simulates the new ANSI "for" scope rules
-#define	for if (0); else for
-#endif
-
-#ifndef SP_DLLEXPORT
-#define	SP_DLLEXPORT /* as nothing */
-#endif
-
-#ifndef SP_DLLIMPORT
-#define	SP_DLLIMPORT /* as nothing */
-#endif
-
-#ifdef SP_USE_DLL
-
-#ifdef BUILD_LIBSP
-#define	SP_API SP_DLLEXPORT
-#else
-#define	SP_API SP_DLLIMPORT
-#endif
-
-#else /* not SP_USE_DLL */
-
-#define	SP_API /* as nothing */
-
-#endif /* not SP_USE_DLL */
-
-// SP_WIDE_SYSTEM says that your OS provides wide character interfaces
-// SP_WIDE_SYSTEM currently works only with Visual C++ and Windows NT/95
-// SP_WIDE_SYSTEM implies SP_MULTI_BYTE
-#ifdef SP_WIDE_SYSTEM
-#ifndef SP_MULTI_BYTE
-#define	SP_MULTI_BYTE
-#endif
-#endif
-
-#ifdef SP_NAMESPACE
-#define	SP_NAMESPACE_SCOPE SP_NAMESPACE::
-#else
-#define	SP_NAMESPACE_SCOPE
-#endif
-#ifdef __GNUC__
-using namespace std;
-#endif
-
-
-#endif /* not config_INCLUDED */
-
-#endif /* _CONFIG_H */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/constant.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-#ifndef constant_INCLUDED
-#define constant_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const Char charMax = Char(-1);
-const WideChar wideCharMax = WideChar(-1);
-const UnivChar univCharMax = UnivChar(-1);
-const SyntaxChar syntaxCharMax = SyntaxChar(-1);
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not constant_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/macros.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef macros_INCLUDED
-#define macros_INCLUDED 1
-
-#ifndef __GNUG__
-#define __attribute__(args) /* as nothing */
-#endif
-
-#ifdef NDEBUG
-
-#include <stdlib.h>
-#define ASSERT(expr) ((void)0)
-#define CANNOT_HAPPEN() ((void)abort())
-
-#else /* not NDEBUG */
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-extern SP_API void assertionFailed(const char *, const char *, int)
-     __attribute__((noreturn));
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#define ASSERT(expr) \
-  ((void)((expr) || \
-  (::SP_NAMESPACE_SCOPE assertionFailed(# expr, __FILE__, __LINE__), 0)))
-#define CANNOT_HAPPEN() ASSERT(0)
-
-#endif /* not NDEBUG */
-
-#define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
-
-#endif /* not macros_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/rtti.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef rtti_INCLUDED
-#define rtti_INCLUDED 1
-
-#ifdef SP_HAVE_RTTI
-
-#define DYNAMIC_CAST_PTR(T, p) dynamic_cast<T *>(p)
-#define DYNAMIC_CAST_CONST_PTR(T, p) dynamic_cast<const T *>(p)
-
-#define RTTI_CLASS
-
-#define RTTI_DEF0(T)
-#define RTTI_DEF1(T, B1)
-#define RTTI_DEF2(T, B1, B2)
-#define RTTI_DEF3(T, B1, B2, B3)
-
-#else /* not SP_HAVE_RTTI */
-
-#include "TypeId.h"
-
-#define RTTI_CLASS \
-public: \
-  virtual TypeId dynamicType() const; \
-  static inline TypeId staticType() { return TypeId(RTTI_bases_); } \
-protected: \
-  static const void *RTTI_bases_[]; \
-private:
-
-#define RTTI_DEF0(T) \
-  const void *T::RTTI_bases_[] = { 0 }; \
-  TypeId T::dynamicType() const { return staticType(); }
-
-#define RTTI_DEF1(T, B1) \
-  const void *T::RTTI_bases_[] = { B1::RTTI_bases_, 0 }; \
-  TypeId T::dynamicType() const { return staticType(); }
-
-#define RTTI_DEF2(T, B1, B2) \
-  const void *T::RTTI_bases_[] = { B1::RTTI_bases_, B2::RTTI_bases_, 0 }; \
-  TypeId T::dynamicType() const { return staticType(); }
-
-#define RTTI_DEF3(T, B1, B2, B3) \
-  const void *T::RTTI_bases_[] = { \
-    B1::RTTI_bases_, B2::RTTI_bases_, B3::RTTI_bases_, 0 }; \
-  TypeId T::dynamicType() const { return staticType(); }
-
-#define DYNAMIC_CAST_PTR(T, p) \
-((p) && (p)->dynamicType().canCast(T::staticType(), (p)->staticType()) \
- ? (T *)(p) \
- : 0)
-#define DYNAMIC_CAST_CONST_PTR(T, p) \
-((p) && (p)->dynamicType().canCast(T::staticType(), (p)->staticType()) \
- ? (const T *)p \
- : 0)
-
-#endif /* not SP_HAVE_RTTI */
-
-#endif /* not rtti_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/sptchar.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef sptchar_INCLUDED
-#define sptchar_INCLUDED 1
-
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <ctype.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-#ifdef SP_WIDE_SYSTEM
-
-typedef wchar_t SP_TCHAR;
-typedef wchar_t SP_TUCHAR;
-
-#define SP_T(x) L ## x
-
-inline
-wchar_t *tgetenv(const wchar_t *s)
-{
-  return _wgetenv(s);
-}
-
-inline
-int tcscmp(const wchar_t *s1, const wchar_t *s2)
-{
-  return wcscmp(s1, s2);
-}
-
-inline
-int tcsncmp(const wchar_t *s1, const wchar_t *s2, size_t n)
-{
-  return wcsncmp(s1, s2, n);
-}
-
-inline
-unsigned long tcstoul(const wchar_t *s, const wchar_t **sp, int base)
-{
-  return wcstoul((wchar_t *)s, (wchar_t **)sp, base);
-}
-
-inline
-unsigned long tcstoul(wchar_t *s, wchar_t **sp, int base)
-{
-  return wcstoul(s, sp, base);
-}
-
-inline
-const wchar_t *tcschr(const wchar_t *s, wint_t c)
-{
-  return wcschr(s, c);
-}
-
-inline
-wchar_t *tcschr(wchar_t *s, wint_t c)
-{
-  return wcschr(s, c);
-}
-
-inline
-size_t tcslen(const wchar_t *s)
-{
-  return wcslen(s);
-}
-
-inline
-int fputts(const wchar_t *s, FILE *fp)
-{
-  return fputws(s, fp);
-}
-
-inline
-int totupper(wint_t c)
-{
-  return towupper(c);
-}
-
-#else /* not SP_WIDE_SYSTEM */
-
-typedef char SP_TCHAR;
-typedef unsigned char SP_TUCHAR;
-
-#define SP_T(x) x
-
-inline
-char *tgetenv(const char *s)
-{
-  return getenv(s);
-}
-
-inline
-int tcscmp(const char *s1, const char *s2)
-{
-  return strcmp(s1, s2);
-}
-
-inline
-int tcsncmp(const char *s1, const char *s2, size_t n)
-{
-  return strncmp(s1, s2, n);
-}
-
-inline
-unsigned long tcstoul(const char *s, const char **sp, int base)
-{
-  return strtoul((char *)s, (char **)sp, base);
-}
-
-inline
-unsigned long tcstoul(char *s, char **sp, int base)
-{
-  return strtoul(s, sp, base);
-}
-
-inline
-const char *tcschr(const char *s, int c)
-{
-  return strchr(s, c);
-}
-
-inline
-char *tcschr(char *s, int c)
-{
-  return strchr(s, c);
-}
-
-inline
-size_t tcslen(const char *s)
-{
-  return strlen(s);
-}
-
-inline
-int fputts(const char *s, FILE *fp)
-{
-  return fputs(s, fp);
-}
-
-inline
-int totupper(int c)
-{
-  return toupper(c);
-}
-
-#endif /* not SP_WIDE_SYSTEM */
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not sptchar_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/types.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef types_INCLUDED
-#define types_INCLUDED 1
-
-#include <limits.h>
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-#if UINT_MAX >= 0xffffffffL /* 2^32 - 1 */
-typedef unsigned int Unsigned32;
-#else
-typedef unsigned long Unsigned32;
-#endif
-
-// Number holds values between 0 and 99999999 (eight nines).
-typedef Unsigned32 Number;
-typedef Unsigned32 Offset;
-typedef Unsigned32 Index;
-
-#ifdef SP_MULTI_BYTE
-
-#ifdef SP_WCHAR_T_USHORT
-typedef wchar_t Char;
-#else
-typedef unsigned short Char;
-#endif
-
-#if INT_MAX > 65535L
-typedef int Xchar;
-#else /* INT_MAX <= 65535L */
-typedef long Xchar;
-#endif /* INT_MAX <= 65535L */
-
-#else /* not SP_MULTI_BYTE */
-
-typedef unsigned char Char;
-// This holds any value of type Char plus InputSource:eE (= -1).
-typedef int Xchar;
-
-#endif /* not SP_MULTI_BYTE */
-
-typedef Unsigned32 UnivChar;
-typedef Unsigned32 WideChar;
-
-// A character in a syntax reference character set.
-// We might want to compile with wide syntax reference characters
-// (since they're cheap) but not with wide document characters.
-typedef Unsigned32 SyntaxChar;
-
-typedef unsigned short CharClassIndex;
-
-typedef unsigned Token;
-
-#ifdef SP_MULTI_BYTE
-typedef unsigned short EquivCode;
-#else
-typedef unsigned char EquivCode;
-#endif
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not types_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/include/xnew.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef _XNEW_H
-#define	_XNEW_H
-
-#ifndef xnew_INCLUDED
-#define	xnew_INCLUDED 1
-
-#ifdef SP_NEW_H_MISSING
-
-typedef void (*VFP)();
-
-#ifdef SP_SET_NEW_HANDLER_EXTERN_C
-extern "C"
-#endif
-
-namespace std {
-    void set_new_handler(VFP);
-}
-
-#ifndef SP_DECLARE_PLACEMENT_OPERATOR_NEW
-#define	SP_DECLARE_PLACEMENT_OPERATOR_NEW
-#endif
-
-#else /* not SP_NEW_H_MISSING */
-
-#ifdef SP_ANSI_LIB
-#include <new>
-#else
-#include <new.h>
-#endif
-
-#endif /* not SP_NEW_H_MISSING */
-
-#ifdef SP_DECLARE_PLACEMENT_OPERATOR_NEW
-
-inline
-void
-*operator new(size_t, void *p)
-{
-	return (p);
-}
-
-#endif /* SP_DECLARE_PLACEMENT_OPERATOR_NEW */
-
-#endif /* not xnew_INCLUDED */
-
-#endif /* _XNEW_H */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Allocator.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "Allocator.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Allocator::Allocator(size_t maxSize, unsigned blocksPerSegment)
-: objectSize_(maxSize),
-  blocksPerSegment_(blocksPerSegment),
-  freeList_(0),
-  segments_(0)
-{
-}
-
-Allocator::~Allocator()
-{
-  SegmentHeader *p = segments_;
-  while (p) {
-    SegmentHeader *tem = p->next;
-    if (p->liveCount == 0)
-      ::operator delete(p);
-    else
-      p->freeList = 0;
-    p = tem;
-  }
-}
-
-void *Allocator::alloc(size_t sz)
-{
-  if (sz > objectSize_)
-    tooBig(sz);
-  Block *tem = freeList_;
-  if (tem) {
-    tem->header.seg->liveCount += 1;
-    freeList_ = tem->next;
-    return &(tem->next);
-  }
-  else
-    return alloc1();
-}
-
-void *Allocator::allocSimple(size_t sz)
-{
-  BlockHeader *p = (BlockHeader *)::operator new(sz + sizeof(BlockHeader));
-  p->seg = 0;
-  return p + 1;
-}
-
-void Allocator::free(void *p)
-{
-  BlockHeader *b = ((BlockHeader *)p) - 1;
-  SegmentHeader *seg = b->seg;
-  if (seg == 0)
-    ::operator delete(b);
-  else {
-    Block **freeList = seg->freeList;
-    if (freeList == 0) {
-      seg->liveCount -= 1;
-      if (seg->liveCount == 0)
-	::operator delete(seg);
-    }
-    else {
-      ((Block *)b)->next = *freeList;
-      *freeList = (Block *)b;
-      seg->liveCount -= 1;
-    }
-  }
-}
-
-void *Allocator::alloc1()
-{
-  SegmentHeader *seg
-    = (SegmentHeader *)::operator new(sizeof(SegmentHeader)
-				      + ((objectSize_ + sizeof(BlockHeader))
-					 * blocksPerSegment_));
-  seg->next = segments_;
-  segments_ = seg;
-  seg->liveCount = 1;
-  seg->freeList = &freeList_;
-  char *p = (char *)(seg + 1);
-  Block *head = 0;
-  for (size_t n = blocksPerSegment_; n > 0; n--) {
-    ((Block *)p)->next = head;
-    ((Block *)p)->header.seg = seg;
-    head = (Block *)p;
-    p += sizeof(BlockHeader) + objectSize_;
-  }
-  freeList_ = head->next;
-  return &(head->next);
-}
-
-void Allocator::tooBig(size_t sz)
-{
-  ASSERT(sz <= objectSize_);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ArcEngine.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1758 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "ArcEngine.h"
-#include "ArcProcessor.h"
-#include "Vector.h"
-#include "NCVector.h"
-#include "IQueue.h"
-#include "ArcEngineMessages.h"
-#include "MessageArg.h"
-#include "ParserOptions.h"
-#include "SgmlParser.h"
-#include "Allocator.h"
-#include "LinkProcess.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-static const size_t sizes[] = {
-  sizeof(StartElementEvent),
-  sizeof(EndElementEvent),
-  sizeof(ImmediateDataEvent),
-  sizeof(SdataEntityEvent),
-  sizeof(EndPrologEvent),
-  sizeof(CdataEntityEvent),
-  sizeof(SdataEntityEvent),
-  sizeof(ExternalDataEntityEvent),
-  sizeof(OpenElement)
-};
-
-static
-size_t maxSize(const size_t *v, size_t n)
-{
-  size_t max = 0;
-  for (size_t i = 0; i < n; i++) {
-    if (v[i] > max)
-      max = v[i];
-  }
-  return max;
-}
-
-const unsigned invalidAtt = unsigned(-1);
-const unsigned contentPseudoAtt = unsigned(-2);
-
-class DelegateEventHandler : public EventHandler {
-public:
-#define EVENT(C, f) void f(C *ev) { delegateTo_->f(ev); }
-#include "events.h"
-#undef EVENT
-protected:
-  EventHandler *delegateTo_;
-};
-
-class QueueEventHandler : public EventHandler, public IQueue<Event> {
-public:
-#define EVENT(C, f) void f(C *ev) { ev->copyData(); append(ev); }
-#include "events.h"
-#undef EVENT
-};
-
-// This just passes through messages.
-
-class NullEventHandler : public EventHandler {
-public:
-  NullEventHandler(Messenger &mgr) : mgr_(&mgr) { }
-  void message(MessageEvent *event) {
-    mgr_->dispatchMessage(event->message());
-  }
-private:
-  Messenger *mgr_;
-};
-
-class ArcEngineImpl : public DelegateEventHandler, private Messenger {
-public:
-  ArcEngineImpl(Messenger &mgr,
-		const SgmlParser *parser,
-		ArcDirector &director,
-		const volatile sig_atomic_t *cancelPtr,
-		const Notation *,
-		const Vector<StringC> &name,
-		const SubstTable<Char> *table);
-  ~ArcEngineImpl();
-  void sgmlDecl(SgmlDeclEvent *);
-  void appinfo(AppinfoEvent *);
-  void startElement(StartElementEvent *);
-  void endElement(EndElementEvent *);
-  void data(DataEvent *);
-  void sdataEntity(SdataEntityEvent *);
-  void externalDataEntity(ExternalDataEntityEvent *);
-  void pi(PiEvent *);
-  void endProlog(EndPrologEvent *);
-  void startDtd(StartDtdEvent *);
-  void endDtd(EndDtdEvent *);
-  void startLpd(StartLpdEvent *);
-  void endLpd(EndLpdEvent *);
-  void uselink(UselinkEvent *);
-  size_t nBases() const { return arcProcessors_.size(); }
-  EventHandler *delegateHandler() { return eventHandler_; }
-private:
-  void dispatchMessage(const Message &);
-  void dispatchMessage(Message &);
-  void initMessage(Message &);
-
-  EventHandler *eventHandler_;
-  NCVector<ArcProcessor> arcProcessors_;
-  ConstPtr<Sd> sd_;
-  ConstPtr<Syntax> syntax_;
-  StringC arcBase_;
-  StringC is10744_;
-  int stage_;
-  QueueEventHandler eventQueue_;
-  NullEventHandler nullHandler_;
-  const SgmlParser *parser_;
-  Location currentLocation_;
-  unsigned gatheringContent_;
-  Text content_;
-  unsigned startAgain_;
-  Allocator alloc_;
-  StringC appinfo_;
-  const AttributeList *linkAttributes_;
-  LinkProcess linkProcess_;
-  Boolean haveLinkProcess_;
-  Vector<StringC> docName_;
-  ArcDirector *director_;
-  Messenger *mgr_;
-  const volatile sig_atomic_t *cancelPtr_;
-};
-
-
-void ArcEngine::parseAll(SgmlParser &parser,
-			 Messenger &mgr,
-			 ArcDirector &director,
-			 const volatile sig_atomic_t *cancelPtr)
-{
-  ArcEngineImpl wrap(mgr, &parser, director, cancelPtr,
-		     0, Vector<StringC>(), 0);
-  parser.parseAll(wrap, cancelPtr);
-}
-
-EventHandler *
-SelectOneArcDirector::arcEventHandler(const Notation *,
-				      const Vector<StringC> &name,
-				      const SubstTable<Char> *table)
-{
-  if (name.size() != select_.size())
-    return 0;
-  for (size_t i = 0; i < name.size(); i++) {
-    StringC tem(select_[i]);
-    table->subst(tem);
-    if (name[i] != tem)
-      return 0;
-  }
-  return eh_;
-}
-
-void SelectOneArcDirector::dispatchMessage(const Message &msg)
-{
-  eh_->message(new MessageEvent(msg));
-}
-
-void SelectOneArcDirector::dispatchMessage(Message &msg)
-{
-  eh_->message(new MessageEvent(msg));
-}
-
-ArcEngineImpl::ArcEngineImpl(Messenger &mgr,
-			     const SgmlParser *parser,
-			     ArcDirector &director,
-			     const volatile sig_atomic_t *cancelPtr,
-			     const Notation *notation,
-			     const Vector<StringC> &docName,
-			     const SubstTable<Char> *table)
-
-: director_(&director), mgr_(&mgr), cancelPtr_(cancelPtr),
-  parser_(parser), stage_(0),
-  gatheringContent_(0), startAgain_(0), haveLinkProcess_(0),
-  alloc_(maxSize(sizes, SIZEOF(sizes)), 50),
-  nullHandler_(mgr), docName_(docName)
-{
-  eventHandler_ = director.arcEventHandler(notation, docName, table);
-  if (!eventHandler_)
-    eventHandler_ = &nullHandler_;
-  delegateTo_ = eventHandler_;
-}
-
-ArcEngineImpl::~ArcEngineImpl()
-{
-  for (size_t i = 0; i < arcProcessors_.size(); i++)
-    if (arcProcessors_[i].valid())
-      arcProcessors_[i].checkIdrefs();
-}
-
-void ArcEngineImpl::appinfo(AppinfoEvent *event)
-{
-  const StringC *str;
-  if (event->literal(str))
-    appinfo_ = *str;
-  DelegateEventHandler::appinfo(event);
-}
-
-void ArcEngineImpl::pi(PiEvent *event)
-{
-  currentLocation_ = event->location();
-  if (stage_ == 1
-      && arcBase_.size()
-      && event->dataLength() > is10744_.size() + 1) {
-    Boolean match = 1;
-    size_t i = 0;
-    for (size_t j = 0; j < is10744_.size() && match; i++, j++)
-      if ((*syntax_->generalSubstTable())[event->data()[i]] != is10744_[j])
-	match = 0;
-    if (!syntax_->isS(event->data()[i]))
-      match = 0;
-    do {
-      i++;
-    } while (i < event->dataLength() && syntax_->isS(event->data()[i]));
-    for (size_t j = 0; j < arcBase_.size() && match; i++, j++)
-      if (i >= event->dataLength()
-          || (*syntax_->generalSubstTable())[event->data()[i]] != arcBase_[j])
-	match = 0;
-    if (i >= event->dataLength() || !syntax_->isS(event->data()[i]))
-      match = 0;
-    if (match) {
-      size_t dataLength = event->dataLength();
-      const Char *data = event->data();
-      for (;;) {
-	while (i < dataLength && syntax_->isS(data[i]))
-	  i++;
-	if (i >= dataLength)
-	  break;
-	size_t start = i++;
-	while (i < dataLength && !syntax_->isS(data[i]))
-	  i++;
-	StringC name(data + start, i - start);
-	syntax_->generalSubstTable()->subst(name);
-	arcProcessors_.resize(arcProcessors_.size() + 1);
-	arcProcessors_.back().setName(name);
-      }
-    }
-  }
-  DelegateEventHandler::pi(event);
-}
-
-void ArcEngineImpl::endProlog(EndPrologEvent *event)
-{
-  currentLocation_ = event->location();
-  for (size_t i = 0; i < arcProcessors_.size(); i++)
-    arcProcessors_[i].init(*event,
-			   sd_,
-			   syntax_,
-			   parser_,
-			   this,
-			   docName_,
-			   *director_,
-			   cancelPtr_);
-  if (!event->lpdPointer().isNull()) {
-    haveLinkProcess_ = 1;
-    linkProcess_.init(event->lpdPointer());
-  }
-  DelegateEventHandler::endProlog(event);
-}
-
-void ArcEngineImpl::startDtd(StartDtdEvent *event)
-{
-  stage_++;
-  DelegateEventHandler::startDtd(event);
-}
-
-void ArcEngineImpl::endDtd(EndDtdEvent *event)
-{
-  stage_++;
-  DelegateEventHandler::endDtd(event);
-}
-
-void ArcEngineImpl::startLpd(StartLpdEvent *event)
-{
-  if (event->active())
-    stage_ = 1;
-  DelegateEventHandler::startLpd(event);
-}
-
-void ArcEngineImpl::endLpd(EndLpdEvent *event)
-{
-  stage_++;
-  DelegateEventHandler::endLpd(event);
-}
-
-void ArcEngineImpl::sgmlDecl(SgmlDeclEvent *event)
-{
-  currentLocation_ = event->location();
-  sd_ = event->sdPointer();
-  syntax_ = event->instanceSyntaxPointer();
-  arcBase_ = sd_->execToInternal("ArcBase");
-  syntax_->generalSubstTable()->subst(arcBase_);
-  is10744_ = sd_->execToInternal("IS10744");
-  Boolean atStart = 1;
-  for (size_t i = 0; i < appinfo_.size(); i++)
-    if (syntax_->isS(appinfo_[i]))
-      atStart = 1;
-    else if (atStart) {
-      if (i + 7 > appinfo_.size())
-	break;
-      StringC tem(appinfo_.data() + i, 7);
-      syntax_->generalSubstTable()->subst(tem);
-      if (tem == arcBase_) {
-	if (i + 7 == appinfo_.size() || syntax_->isS(appinfo_[i + 7]))
-	  break;
-	if (appinfo_[i + 7] == sd_->execToInternal('=')) {
-	  arcBase_.resize(0);
-	  for (size_t j = i + 7; j < appinfo_.size(); j++) {
-	    if (syntax_->isS(appinfo_[j]))
-	      break;
-	    arcBase_ += appinfo_[j];
-	  }
-	  // Allow quotes around replacement name.
-	  if (arcBase_.size() > 2
-	      && (arcBase_[0] == sd_->execToInternal('"')
-	          || arcBase_[0] == sd_->execToInternal('\''))
-	      && arcBase_[arcBase_.size() - 1] == arcBase_[0]) {
-	    for (size_t j = 0; j < arcBase_.size() - 2; j++)
-	      arcBase_[j] =  arcBase_[j + 1];
-	    arcBase_.resize(arcBase_.size() - 2);
-	  }
-	  syntax_->generalSubstTable()->subst(arcBase_);
-	  break;
-	}
-      }
-      atStart = 0;
-    }
-  DelegateEventHandler::sgmlDecl(event);
-}
-
-void ArcEngineImpl::startElement(StartElementEvent *event)
-{
-  if (gatheringContent_) {
-    gatheringContent_++;
-    DelegateEventHandler::startElement(event);
-    return;
-  }
-  currentLocation_ = event->location();
-  const Text *contentP;
-  size_t start;
-  if (startAgain_) {
-    start = startAgain_ - 1;
-    contentP = &content_;
-    startAgain_ = 0;
-  }
-  else {
-    contentP = 0;
-    start = 0;
-    if (haveLinkProcess_) {
-      const ResultElementSpec *resultElementSpec;
-      linkProcess_.startElement(event->elementType(),
-				event->attributes(),
-				event->location(),
-				*this, // Messenger &
-				linkAttributes_,
-				resultElementSpec);
-    }
-    else
-      linkAttributes_ = 0;
-  }
-  for (size_t i = start; i < arcProcessors_.size(); i++) {
-    if (arcProcessors_[i].valid()) {
-      if (!arcProcessors_[i].processStartElement(*event,
-						 linkAttributes_,
-						 contentP,
-						 alloc_)) {
-	ASSERT(contentP == 0);
-	startAgain_ = i + 1;
-	gatheringContent_ = 1;
-	delegateTo_ = &eventQueue_;
-	DelegateEventHandler::startElement(event);
-	return;
-      }
-    }
-  }
-  
-  content_.clear();
-  DelegateEventHandler::startElement(event);
-}
-
-void ArcEngineImpl::data(DataEvent *event)
-{
-  const Entity *entity = event->entity();
-  if (gatheringContent_) {
-    if (entity)
-      content_.addCdata(entity->asInternalEntity(),
-			event->location().origin());
-    else {
-      // Do attribute value literal interpretation.
-      Location loc(event->location());
-      for (size_t i = 0; i < event->dataLength(); i++, loc += 1) {
-	Char ch = event->data()[i];
-	if (syntax_->isS(ch) && ch != syntax_->space()) {
-	  if (ch == syntax_->standardFunction(Syntax::fRS))
-	    content_.ignoreChar(ch, loc);
-	  else
-	    content_.addChar(syntax_->space(),
-			     Location(new ReplacementOrigin(loc, ch), 0));
-	}		 
-	else
-	  content_.addChar(ch, loc);
-      }
-    }
-  }
-  else {
-    currentLocation_ = event->location();
-    for (size_t i = 0; i < arcProcessors_.size(); i++) {
-      if (arcProcessors_[i].valid() && arcProcessors_[i].processData()) {
-	if (entity)
-	  arcProcessors_[i].docHandler()
-	    .data(new (alloc_) CdataEntityEvent(entity->asInternalEntity(),
-						    event->location().origin()));
-	else
-	  arcProcessors_[i].docHandler()
-	    .data(new (alloc_) ImmediateDataEvent(event->type(),
-						      event->data(),
-						      event->dataLength(),
-						      event->location(),
-						      0));
-      }
-    }
-  }
-  DelegateEventHandler::data(event);
-}
-
-void ArcEngineImpl::sdataEntity(SdataEntityEvent *event)
-{
-  if (gatheringContent_) {
-    content_.addSdata(event->entity()->asInternalEntity(),
-		      event->location().origin());
-    return;
-  }
-  else {
-    currentLocation_ = event->location();
-    for (size_t i = 0; i < arcProcessors_.size(); i++) {
-      if (arcProcessors_[i].valid() && arcProcessors_[i].processData()) {
-	const Entity *entity = event->entity();
-	arcProcessors_[i].docHandler()
-	  .sdataEntity(new (alloc_)
-		       SdataEntityEvent(entity->asInternalEntity(),
-					event->location().origin()));
-      }
-    }
-  }
-  DelegateEventHandler::sdataEntity(event);
-}
-
-void ArcEngineImpl::externalDataEntity(ExternalDataEntityEvent *event)
-{
-  if (!gatheringContent_) {
-    currentLocation_ = event->location();
-    for (size_t i = 0; i < arcProcessors_.size(); i++) {
-      if (arcProcessors_[i].valid()
-	  && arcProcessors_[i].processData()) {
-	ConstPtr<Entity> entity
-	  = arcProcessors_[i].dtdPointer()
-	    ->lookupEntity(0, event->entity()->name());
-	if (!entity.isNull()) {
-	  ConstPtr<EntityOrigin> oldOrigin = event->entityOrigin();
-	  Owner<Markup> markup;
-	  if (oldOrigin->markup())
-	    markup = new Markup(*oldOrigin->markup());
-	  ConstPtr<EntityOrigin> newOrigin
-	    = EntityOrigin::make(entity,
-				 oldOrigin->parent(),
-				 oldOrigin->refLength(),
-				 markup);
-	  arcProcessors_[i].docHandler()
-	    .externalDataEntity(new (alloc_)
-				ExternalDataEntityEvent(entity->asExternalDataEntity(),
-							newOrigin));
-	}
-	// otherwise entity is not architectural
-      }
-    }
-  }
-  DelegateEventHandler::externalDataEntity(event);
-}
-
-void ArcEngineImpl::endElement(EndElementEvent *event)
-{
-  while (gatheringContent_) {
-    if (--gatheringContent_ > 0) {
-      DelegateEventHandler::endElement(event);
-      return;
-    }
-    delegateTo_ = delegateHandler();
-    // Clear out eventQueue_ in case handling the events
-    // causes events to be queued again.
-    IQueue<Event> tem;
-    tem.swap(eventQueue_);
-    while (!tem.empty())
-      tem.get()->handle(*this);
-  }
-  currentLocation_ = event->location();
-  for (size_t i = 0; i < arcProcessors_.size(); i++)
-    if (arcProcessors_[i].valid())
-      arcProcessors_[i].processEndElement(*event, alloc_);
-  DelegateEventHandler::endElement(event);
-  if (haveLinkProcess_)
-    linkProcess_.endElement();
-}
-
-void ArcEngineImpl::uselink(UselinkEvent *event)
-{
-  if (!gatheringContent_)
-    linkProcess_.uselink(event->linkSet(),
-			 event->restore(),
-			 event->lpd().pointer());
-  DelegateEventHandler::uselink(event);
-}
-
-void ArcEngineImpl::dispatchMessage(const Message &msg)
-{
-  mgr_->dispatchMessage(msg);
-}
-
-void ArcEngineImpl::dispatchMessage(Message &msg)
-{
-  mgr_->dispatchMessage(msg);
-}
-
-void ArcEngineImpl::initMessage(Message &msg)
-{
-  mgr_->initMessage(msg);
-  msg.loc = currentLocation_;
-}
-
-ArcProcessor::ArcProcessor()
-: errorIdref_(1), docHandler_(0), arcAuto_(1),
-  arcDtdIsParam_(0)
-{
-}
-
-void ArcProcessor::setName(const StringC &name)
-{
-  name_ = name;
-}
-
-const Syntax &ArcProcessor::attributeSyntax() const
-{
-  return *docSyntax_;
-}
-
-ConstPtr<Notation> ArcProcessor::getAttributeNotation(const StringC &name,
-						      const Location &)
-{
-  if (!metaDtd_.isNull())
-    return metaDtd_->lookupNotation(name);
-  return 0;
-}
-
-ConstPtr<Entity> ArcProcessor::getAttributeEntity(const StringC &name,
-						  const Location &)
-{
-  // FIXME What about default entity
-  if (!metaDtd_.isNull())
-    return metaDtd_->lookupEntity(0, name);
-  return 0;
-}
-
-void ArcProcessor::noteCurrentAttribute(size_t i, AttributeValue *value)
-{
-  if (valid_)
-    currentAttributes_[i] = value;
-}
-
-ConstPtr<AttributeValue> ArcProcessor::getCurrentAttribute(size_t i) const
-{
-  return currentAttributes_[i];
-}
-
-// This code is the same as in the main parser.
-// Once handling of ID/IDREF in architectures has been clarified.
-// Maybe factor out into AttributeContext.
-
-Boolean ArcProcessor::defineId(const StringC &str, const Location &loc,
-			       Location &prevLoc)
-{
-  if (!valid_)
-    return 1;
-  Id *id = lookupCreateId(str);
-  if (id->defined()) {
-    prevLoc = id->defLocation();
-    return 0;
-  }
-  id->define(loc);
-  return 1;
-}
-
-void ArcProcessor::noteIdref(const StringC &str, const Location &loc)
-{
-  if (!valid_ || !errorIdref_)
-    return;
-  Id *id = lookupCreateId(str);
-  if (!id->defined())
-    id->addPendingRef(loc);
-}
-
-Id *ArcProcessor::lookupCreateId(const StringC &name)
-{
-  Id *id = idTable_.lookup(name);
-  if (!id) {
-    id = new Id(name);
-    idTable_.insert(id);
-  }
-  return id;
-}
-
-void ArcProcessor::checkIdrefs()
-{
-  NamedTableIter<Id> iter(idTable_);
-  Id *id;
-  while ((id = iter.next()) != 0) {
-    for (size_t i = 0; i < id->pendingRefs().size(); i++) {
-      Messenger::setNextLocation(id->pendingRefs()[i]);
-      message(ArcEngineMessages::missingId, StringMessageArg(id->name()));
-    }
-  }
-}
-
-void ArcProcessor::init(const EndPrologEvent &event,
-			const ConstPtr<Sd> &sd,
-			const ConstPtr<Syntax> &syntax,
-			const SgmlParser *parentParser,
-			Messenger *mgr,
-			const Vector<StringC> &superName,
-			ArcDirector &director,
-			const volatile sig_atomic_t *cancelPtr)
-{
-  director_ = &director;
-  mgr_ = mgr;
-  docSyntax_ = syntax;
-  docSd_ = sd;
-  mgr_ = mgr;
-  valid_ = 0;
-  docDtd_ = event.dtdPointer();
-  metaSyntax_ = docSyntax_;
-  mayDefaultAttribute_ = 1;
-  docSyntax_->generalSubstTable()->subst(name_);
-  Vector<StringC> docName(superName);
-  docName.push_back(name_);
-  ConstPtr<Notation> notation;
-  notation = docDtd_->lookupNotation(name_);
-  if (!notation.isNull()) {
-    ConstPtr<AttributeDefinitionList> notAttDef = notation->attributeDef();
-    attributeList_.init(notAttDef);
-    attributeList_.finish(*this);
-    supportAttributes(attributeList_);
-  }
-  else
-    message(ArcEngineMessages::noArcNotation, StringMessageArg(name_));
-  ArcEngineImpl *engine
-    = new ArcEngineImpl(*mgr, parentParser, director, cancelPtr,
-			notation.pointer(),
-			docName,
-			docSyntax_->generalSubstTable());
-  docHandler_ = engine;
-  ownEventHandler_ = engine;
-  if (supportAtts_[rArcDocF].size() == 0)
-    supportAtts_[rArcDocF] = name_;
-  if (supportAtts_[rArcFormA].size() == 0)
-    supportAtts_[rArcFormA] = name_;
-  rniContent_ = docSyntax_->delimGeneral(Syntax::dRNI);
-  rniContent_ += sd->execToInternal("CONTENT");
-  rniDefault_ = docSyntax_->delimGeneral(Syntax::dRNI);
-  rniDefault_ += docSyntax_->reservedName(Syntax::rDEFAULT);
-  rniArcCont_ = metaSyntax_->delimGeneral(Syntax::dRNI);
-  rniArcCont_ += sd->execToInternal("ARCCONT");
-  ConstPtr<Entity> dtdent = makeDtdEntity(notation.pointer());
-  if (dtdent.isNull())
-    return;
-  StringC sysid = dtdent->asExternalEntity()->externalId().effectiveSystemId();
-  if (sysid.size() == 0
-      && !parentParser->entityCatalog().lookup(*dtdent,
-					       *docSyntax_,
-					       sd->internalCharset(),
-					       *mgr_,
-					       sysid)) {
-    message(ArcEngineMessages::arcGenerateSystemId,
-	    StringMessageArg(name_));
-    return;
-  }
-  docHandler_->sgmlDecl(new SgmlDeclEvent(sd, syntax));
-  docHandler_->startDtd(new StartDtdEvent(dtdent->name(),
-					  dtdent,
-					  0,
-					  event.location(),
-					  0));
-  SgmlParser::Params params;
-  params.entityType = SgmlParser::Params::dtd;
-  params.sysid = sysid;
-  params.parent = parentParser;
-  ParserOptions options = parentParser->options();
-  errorIdref_ = options.errorIdref;
-  options.errorAfdr = 0;
-  options.includes = arcOpts_;
-  params.options = &options;
-  params.sd = docSd_;
-  if (metaSyntax_->reservedName(Syntax::rALL).size() == 0) {
-    Ptr<Syntax> tem(new Syntax(*metaSyntax_));
-    tem->setName(Syntax::rALL, docSd_->execToInternal("ALL"));
-    metaSyntax_ = tem;
-  }
-  params.prologSyntax = metaSyntax_;
-  params.instanceSyntax = metaSyntax_;
-  params.doctypeName = dtdent->name();
-  SgmlParser parser(params);
-  parser.parseAll(*docHandler_, cancelPtr);
-  Ptr<Dtd> baseDtd = parser.baseDtd();
-  if (baseDtd.isNull()
-      || baseDtd->documentElementType()->definition()->undefined())
-    return;
-  metaDtd_ = baseDtd;
-  metaMapCache_.resize(docDtd_->nElementTypeIndex());
-  mungeMetaDtd(*baseDtd, *docDtd_);
-  docHandler_->endDtd(new EndDtdEvent(metaDtd_, event.location(), 0));
-  startContent(*metaDtd_);
-  currentAttributes_.resize(metaDtd_->nCurrentAttribute());
-  valid_ = 1;
-  docHandler_->endProlog(new EndPrologEvent(metaDtd_, event.location()));
-  if (engine->nBases() == 0)
-    docHandler_ = engine->delegateHandler();
-}
-
-void ArcProcessor::mungeMetaDtd(Dtd &metaDtd, const Dtd &docDtd)
-{
-  if (supportAtts_[rArcDataF].size() > 0
-      && metaDtd.lookupNotation(supportAtts_[rArcDataF]).isNull()) {
-    Messenger::message(ArcEngineMessages::noArcDataF,
-		       StringMessageArg(supportAtts_[rArcDataF]));
-    metaDtd.insertNotation(new Notation(supportAtts_[rArcDataF],
-					metaDtd.namePointer(),
-					metaDtd.isBase()));
-  }
-  // FIXME check for ArcAutoF
-  Dtd::ConstEntityIter iter(docDtd.generalEntityIter());
-  for (;;) {
-    ConstPtr<Entity> ent = iter.next();
-    if (ent.isNull())
-      break;
-    Ptr<Entity> copy(ent->copy());
-    if (!copy->asExternalDataEntity()
-	|| mungeDataEntity(*(ExternalDataEntity *)copy.pointer()))
-      metaDtd.insertEntity(copy, 1);
-  }
-}
-
-Boolean ArcProcessor::mungeDataEntity(ExternalDataEntity &entity)
-{
-  const MetaMap &map = buildMetaMap(0,
-				    entity.notation(),
-				    entity.attributes(),
-				    0,
-				    0);
-  if (!map.attributed)
-    return 0;
-  AttributeList atts;
-  const Notation *notation = (const Notation *)map.attributed;
-  ConstPtr<AttributeValue> arcContent;
-  if (mapAttributes(entity.attributes(), 0, 0, atts, arcContent, map)) {
-    // FIXME check arcContent
-    entity.setNotation((Notation *)notation, atts);
-    return 1;
-  }
-  // FIXME error tried to use #CONTENT
-  return 0;
-}
-
-ConstPtr<Entity> ArcProcessor::makeDtdEntity(const Notation *)
-{
-  if (!supportAtts_[rArcDTD].size()) {
-    mgr_->message(ArcEngineMessages::noArcDTDAtt);
-    return 0;
-  }
-  ConstPtr<Entity> entity = docDtd_->lookupEntity(arcDtdIsParam_,
-						  supportAtts_[rArcDTD]);
-  if (entity.isNull()) {
-    mgr_->message(arcDtdIsParam_
-		  ? ArcEngineMessages::arcDtdNotDeclaredParameter
-		  : ArcEngineMessages::arcDtdNotDeclaredParameter,
-		  StringMessageArg(supportAtts_[rArcDTD]));
-    return 0;
-  }
-  if (!entity->asExternalEntity()) {
-    mgr_->message(ArcEngineMessages::arcDtdNotExternal,
-		  StringMessageArg(supportAtts_[rArcDTD]));
-    return 0;
-  }
-  ExternalId externalId(entity->asExternalEntity()->externalId());
-#if 0
-  // Use the public identifier of the notation to find the meta-DTD.
-  if (externalId.effectiveSystemId().size() == 0 && notation) {
-    if (notation->externalId().effectiveSystemId().size()) {
-      StringC tem(notation->externalId().effectiveSystemId());
-      externalId.setEffectiveSystem(tem);
-    }
-    else  if (!externalId.publicId()) {
-      const PublicId *pubid = notation->externalId().publicId();
-      PublicId::OwnerType ownerType;
-      if (pubid && pubid->getOwnerType(ownerType)) {
-	Text pubidText;
-	unsigned textClassPos = 2;
-	if (ownerType != PublicId::ISO)
-	  textClassPos += 3;
-	StringC owner;
-	pubid->getOwner(owner);
-	textClassPos += owner.size();
-	pubidText.addChars(pubid->string().data(),
-			   textClassPos,
-			   pubid->text().charLocation(0));
-	pubidText.addChars(docSd_->execToInternal("DTD"),
-			   pubid->text().charLocation(textClassPos));
-	for (; textClassPos < pubid->string().size(); textClassPos++)
-	  if (pubid->string()[textClassPos] == docSyntax_->space())
-	    break;
-	pubidText.addChars(pubid->string().data() + textClassPos,
-			   pubid->string().size() - textClassPos,
-			   pubid->text().charLocation(textClassPos));
-	const MessageType1 *msg;
-	externalId.setPublic(pubidText, docSd_->internalCharset(),
-			     docSyntax_->space(), msg);
-      }
-    }
-  }
-#endif
-  return new ExternalTextEntity(supportAtts_[rArcDocF],
-				Entity::doctype,
-				entity->defLocation(),
-				externalId);
-}
-
-void ArcProcessor::supportAttributes(const AttributeList &atts)
-{
-  static const char *const s[] = {
-    "ArcFormA",
-    "ArcNamrA",
-    "ArcSuprA",
-    "ArcIgnDA",
-    "ArcDocF",
-    "ArcSuprF",
-    "ArcBridF",
-    "ArcDataF",
-    "ArcAuto",
-    "ArcIndr",
-    "ArcDTD",
-    "ArcQuant",
-    };
-  for (size_t i = 0; i < SIZEOF(s); i++) {
-    StringC attName(docSd_->execToInternal(s[i]));
-    docSyntax_->generalSubstTable()->subst(attName);
-    unsigned ind;
-    if (atts.attributeIndex(attName, ind)) {
-      const AttributeValue *value = atts.value(ind);
-      if (value) {
-	const Text *textP = value->text();
-	// FIXME check for empty value
-	if (textP) {
-	  supportAtts_[i] = textP->string();
-	  switch (i) {
-	  case rArcQuant:
-	    processArcQuant(*textP);
-	    break;
-	  case rArcAuto:
-	    docSyntax_->generalSubstTable()->subst(supportAtts_[i]);
-	    if (supportAtts_[i] == docSd_->execToInternal("ARCAUTO"))
-	      arcAuto_ = 1;
-	    else if (supportAtts_[i] == docSd_->execToInternal("NARCAUTO"))
-	      arcAuto_ = 0;
-	    else
-	      Messenger::message(ArcEngineMessages::invalidArcAuto,
-				 StringMessageArg(supportAtts_[i]));
-	    break;
-	  case rArcIndr:
-	    docSyntax_->generalSubstTable()->subst(supportAtts_[i]);
-	    if (supportAtts_[i] == docSd_->execToInternal("ARCINDR")) {
-	      Messenger::setNextLocation(textP->charLocation(0));
-	      Messenger::message(ArcEngineMessages::arcIndrNotSupported);
-	    }
-	    else if (supportAtts_[i] != docSd_->execToInternal("NARCINDR")) {
-	      Messenger::setNextLocation(textP->charLocation(0));
-	      Messenger::message(ArcEngineMessages::invalidArcIndr,
-				 StringMessageArg(supportAtts_[i]));
-	    }
-	    break;
-	  case rArcFormA:
-	  case rArcNamrA:
-	  case rArcSuprA:
-	  case rArcIgnDA:
-	    docSyntax_->generalSubstTable()->subst(supportAtts_[i]);
-	    break;
-	  case rArcDocF:
-	  case rArcSuprF:
-	  case rArcBridF:
-	  case rArcDataF:
-	    metaSyntax_->generalSubstTable()->subst(supportAtts_[i]);
-	    break;
-	  case rArcDTD:
-	    {
-	      const StringC &pero = docSyntax_->delimGeneral(Syntax::dPERO);
-	      if (supportAtts_[i].size() >= pero.size()) {
-		StringC tem(supportAtts_[i].data(), pero.size());
-		docSyntax_->generalSubstTable()->subst(tem);
-		if (tem == pero) {
-		  arcDtdIsParam_ = 1;
-		  tem.assign(supportAtts_[i].data() + pero.size(),
-			     supportAtts_[i].size() - pero.size());
-		  tem.swap(supportAtts_[i]);
-		}
-	      }
-	      docSyntax_->entitySubstTable()->subst(supportAtts_[i]);
-	    }
-	    break;
-	  }
-	}
-      }
-    }
-  }
-  processArcOpts(atts);
-}
-
-void ArcProcessor::processArcOpts(const AttributeList &atts)
-{
-  StringC attName(docSd_->execToInternal("ArcOptSA"));
-  docSyntax_->generalSubstTable()->subst(attName);
-  unsigned ind;
-  Vector<StringC> arcOptA;
-  Vector<size_t> arcOptAPos;
-  const Text *arcOptAText = 0;
-  if (atts.attributeIndex(attName, ind)) {
-    const AttributeValue *value = atts.value(ind);
-    if (value) {
-      arcOptAText = value->text();
-      if (arcOptAText)
-	split(*arcOptAText, docSyntax_->space(), arcOptA, arcOptAPos);
-    }
-  }
-  if (!arcOptAText)
-    arcOptA.push_back(docSd_->execToInternal("ArcOpt"));
-  for (size_t i = 0; i < arcOptA.size(); i++) {
-    docSyntax_->generalSubstTable()->subst(arcOptA[i]);
-    if (atts.attributeIndex(arcOptA[i], ind)) {
-      const AttributeValue *value = atts.value(ind);
-      if (value) {
-	const Text *textP = value->text();
-	if (textP) {
-	  Vector<StringC> opts;
-	  Vector<size_t> optsPos;
-	  split(*textP, docSyntax_->space(), opts, optsPos);
-	  arcOpts_.insert(arcOpts_.begin(),
-			  opts.begin(), opts.begin() + opts.size());
-	}
-      }
-    }
-  }
-}
-
-void ArcProcessor::processArcQuant(const Text &text)
-{
-  Ptr<Syntax> newMetaSyntax;
-  Vector<StringC> tokens;
-  Vector<size_t> tokensPos;
-  split(text, docSyntax_->space(), tokens, tokensPos);
-  for (size_t i = 0; i < tokens.size(); i++) {
-    docSyntax_->generalSubstTable()->subst(tokens[i]);
-    Syntax::Quantity quantityName;
-    if (!docSd_->lookupQuantityName(tokens[i], quantityName)) {
-      setNextLocation(text.charLocation(tokensPos[i]));
-      Messenger::message(ArcEngineMessages::invalidQuantity,
-			 StringMessageArg(tokens[i]));
-    }
-    else if (i + 1 >= tokens.size()) {
-      setNextLocation(text.charLocation(tokensPos[i]));
-      Messenger::message(ArcEngineMessages::missingQuantityValue,
-			 StringMessageArg(tokens[i]));
-    }
-    else {
-      i++;
-      unsigned long val = 0;
-      if (tokens[i].size() > 8) {
-	setNextLocation(text.charLocation(tokensPos[i] + 8));
-	Messenger::message(ArcEngineMessages::quantityValueTooLong,
-			   StringMessageArg(tokens[i]));
-	tokens[i].resize(8);
-      }
-      for (size_t j = 0; j < tokens[i].size(); j++) {
-	int weight = docSd_->digitWeight(tokens[i][j]);
-	if (weight < 0) {
-	  setNextLocation(text.charLocation(tokensPos[i] + j));
-	  Char c = tokens[i][j];
-	  Messenger::message(ArcEngineMessages::invalidDigit,
-			     StringMessageArg(StringC(&c, 1)));
-	  val = 0;
-	  break;
-	}
-	else {
-	  val *= 10;
-	  val += weight;
-	}
-      }
-      if (val > docSyntax_->quantity(quantityName)) {
-	if (newMetaSyntax.isNull())
-	  newMetaSyntax = new Syntax(*docSyntax_);
-	newMetaSyntax->setQuantity(quantityName, val);
-      }
-    }
-  }
-  if (!newMetaSyntax.isNull())
-    metaSyntax_ = newMetaSyntax;
-}
-
-Boolean ArcProcessor::processStartElement(const StartElementEvent &event,
-					  const AttributeList *linkAttributes,
-					  const Text *content,
-					  Allocator &alloc)
-{
-  unsigned suppressFlags = (openElementFlags_.size() > 0
-			    ? (openElementFlags_.back() & ~isArc)
-			    : (unsigned)condIgnoreData);
-  if ((suppressFlags & suppressForm)
-      && (suppressFlags & suppressSupr)) {
-    // Make this case efficient.
-    openElementFlags_.push_back(suppressFlags);
-    return 1;
-  }
-  const AttributeList &atts = event.attributes();
-  const MetaMap &map = buildMetaMap(event.elementType(),
-				    0,
-				    atts,
-				    linkAttributes,
-				    suppressFlags);
-  const ElementType *metaType;
-  ConstPtr<AttributeValue> arcContent;
-  if (map.attributed == 0) {
-    if (!(tagLevel() == 0
-	  && !currentElement().isFinished())) {
-      if (!arcContent.isNull()
-	  && (currentElement().declaredEmpty()
-	      || !currentElement().tryTransitionPcdata()))
-	Messenger::message(ArcEngineMessages::invalidArcContent);
-      openElementFlags_.push_back(map.suppressFlags);
-      return 1;
-    }
-    metaType = metaDtd_->documentElementType();
-    mgr_->message(ArcEngineMessages::documentElementNotArc,
-		  StringMessageArg(metaType->name()));
-    attributeList_.init(metaType->attributeDef());
-    attributeList_.finish(*this);
-  }
-  else {
-    if (!mapAttributes(atts, linkAttributes, content, attributeList_,
-		       arcContent, map))
-      return 0;
-    metaType = (const ElementType *)map.attributed;
-    suppressFlags = map.suppressFlags;
-  }
-  StartElementEvent *genEvent
-    = new (alloc) StartElementEvent(metaType,
-					metaDtd_,
-					&attributeList_,
-					event.location(),
-					0);
-  if (metaType->definition()->undefined())
-    Messenger::message(ArcEngineMessages::undefinedElement,
-		       StringMessageArg(metaType->name()));
-  else if (elementIsExcluded(metaType))
-    Messenger::message(ArcEngineMessages::elementExcluded,
-		       StringMessageArg(metaType->name()));
-  else if (elementIsIncluded(metaType))
-    genEvent->setIncluded();
-  else if (!currentElement().tryTransition(metaType))
-    Messenger::message(ArcEngineMessages::invalidElement,
-		       StringMessageArg(metaType->name()));
-		       
-  pushElement(new (alloc) OpenElement(metaType,
-					  0,
-					  genEvent->included(),
-					  0,
-					  event.location()));
-  docHandler_->startElement(genEvent);
-  if (attributeList_.conref())
-    currentElement().setConref();
-  if (!arcContent.isNull() && arcContent->text() != 0) {
-    if (currentElement().declaredEmpty()
-	|| !currentElement().tryTransitionPcdata())
-      Messenger::message(ArcEngineMessages::invalidArcContent);
-    else
-      emitArcContent(*arcContent->text(), docHandler(), alloc);
-    suppressFlags |= (suppressForm|suppressSupr|ignoreData);
-  }
-  suppressFlags &= ~recoverData;
-  openElementFlags_.push_back(suppressFlags | isArc);
-  return 1;
-}
-
-void ArcProcessor::emitArcContent(const Text &text,
-				  EventHandler &handler,
-				  Allocator &alloc)
-{
-  TextIter iter(text);
-  TextItem::Type type;
-  const Char *s;
-  size_t n;
-  const Location *loc;
-  while (iter.next(type, s, n, loc))
-    switch (type) {
-    case TextItem::data:
-    case TextItem::cdata:
-      // +1 because first dataEvent is the non-architectural data.
-      if (type == TextItem::data)
-	handler.data(new (alloc) ImmediateDataEvent(Event::characterData,
-							s,
-							n,
-							*loc,
-							0));
-      else
-			  
-	handler.data(new (alloc)
-		     CdataEntityEvent(loc->origin()->asEntityOrigin()
-				      ->entity()->asInternalEntity(),
-				      loc->origin()));
-      break;
-    case TextItem::sdata:
-		     
-      handler.sdataEntity(new (alloc)
-			  SdataEntityEvent(loc->origin()->asEntityOrigin()
-					   ->entity()->asInternalEntity(),
-					   loc->origin()));
-      break;
-    default:
-      break;
-    }
-}
-
-Boolean ArcProcessor::processData()
-{
-  if (openElementFlags_.size() > 0
-      && (openElementFlags_.back() & ignoreData))
-    return 0;
-  if (!currentElement().declaredEmpty()
-      && currentElement().tryTransitionPcdata())
-    return 1;
-  else if (openElementFlags_.size() > 0
-	   && (openElementFlags_.back() & condIgnoreData))
-    return 0;
-  else {
-    // Only give this error once per element
-    if (openElementFlags_.size() > 0) {
-      if (openElementFlags_.back() & recoverData)
-	return 1;
-      openElementFlags_.back() |= recoverData;
-    }
-    Messenger::message(ArcEngineMessages::invalidData);
-    return 1;
-  }
-}
-
-Boolean ArcProcessor::mapAttributes(const AttributeList &from,
-				    const AttributeList *fromLink,
-				    const Text *content,
-				    AttributeList &to,
-				    ConstPtr<AttributeValue> &arcContent,
-				    const MetaMap &map)
-{
-  if (map.attributed)
-    to.init(map.attributed->attributeDef());
-  for (size_t i = 0; i < map.attMapFrom.size(); i++) {
-    unsigned fromIndex = map.attMapFrom[i];
-    const AttributeList *fromList = &from;
-    if (fromIndex != contentPseudoAtt && fromIndex >= fromList->size()) {
-      fromList = fromLink;
-      fromIndex -= from.size();
-    }
-    if (map.attMapTo[i] == contentPseudoAtt) {
-      if (fromIndex != contentPseudoAtt)
-	arcContent = fromList->valuePointer(fromIndex);
-    }
-    else {
-      const Text *fromText = 0;
-      Boolean fromTextTokenized = 0;
-      if (map.attMapFrom[i] == contentPseudoAtt) {
-	if (!content)
-	  return 0;
-	fromText = content;
-      }
-      else {
-	const AttributeValue *value = fromList->value(fromIndex);
-	if (value) {
-	  fromText = value->text();
-	  fromTextTokenized = fromList->tokenized(fromIndex);
-	  if (fromText
-	      && fromList == &from
-	      && !from.specified(fromIndex)
-	      && (map.attributed->attributeDef()->def(map.attMapTo[i])
-		  ->missingValueWouldMatch(*fromText, *this)))
-	    fromText = 0;
-	}
-      }
-      if (fromText) {
-	unsigned specLength = 0;
-	Text tem;
-	if (!fromTextTokenized && to.tokenized(map.attMapTo[i]))
-	  fromText->tokenize(docSyntax_->space(), tem);
-	else
-	  tem = *fromText;
-	to.setSpec(map.attMapTo[i], *this);
-	to.setValue(map.attMapTo[i], tem, *this, specLength);
-      }
-    }
-  }
-  if (map.attributed)
-    to.finish(*this);
-  return 1;
-}
-
-const ArcProcessor::MetaMap &
-ArcProcessor::buildMetaMap(const ElementType *docElementType,
-			   const Notation *notation,
-			   const AttributeList &atts,
-			   const AttributeList *linkAtts,
-			   unsigned suppressFlags)
-{
-  Boolean isNotation;
-  const Attributed *attributed = docElementType;
-  const StringC *nameP;
-  if (!attributed) {
-    attributed = notation;
-    isNotation = 1;
-    nameP = &notation->name();
-  }
-  else {
-    isNotation = 0;
-    nameP = &docElementType->name();
-  }
-  // Try to use cached entry.
-  Boolean inhibitCache = 0;
-  size_t cacheIndex;
-  if (isNotation || docElementType->definition()->undefined()) {
-    inhibitCache = 1;
-    cacheIndex = (unsigned)-1;
-  }
-  else {
-    cacheIndex = docElementType->index();
-    const MetaMapCache *cache = metaMapCache_[cacheIndex].pointer();
-    if (cache
-	&& cache->suppressFlags == suppressFlags
-	&& cache->linkAtts == linkAtts) {
-      for (int i = 0;; i++) {
-	if (i == MetaMapCache::nNoSpec)
-	  return cache->map;
-	unsigned attIndex = cache->noSpec[i];
-	if (attIndex != invalidAtt && atts.specified(attIndex))
-	  break;
-      }
-    }
-  }
-  // no valid cached MetaMap
-  // Handle suppression.
-  unsigned oldSuppressFlags = suppressFlags;
-  unsigned newSuppressFlags = suppressFlags;
-  unsigned arcSuprIndex;
-  if (!isNotation)
-    considerSupr(atts, linkAtts, suppressFlags, newSuppressFlags, inhibitCache,
-		 arcSuprIndex);
-  else
-    arcSuprIndex = invalidAtt;
-  // Handle ArcIgnD
-  unsigned arcIgnDIndex;
-  if (!isNotation)
-    considerIgnD(atts, linkAtts, suppressFlags, newSuppressFlags, inhibitCache,
-		 arcIgnDIndex);
-  else
-    arcIgnDIndex = invalidAtt;
-  // Handle ArcForm.
-  unsigned arcFormIndex;
-  const Attributed *metaAttributed
-    = considerForm(atts, linkAtts, *nameP, isNotation,
-		   suppressFlags, newSuppressFlags,
-		   inhibitCache, arcFormIndex);
-  // See if there's a renamer that will inhibit cacheing.
-#pragma "%Z%%M% %I% %E% SMI"
-  unsigned arcNamerIndex;
-  const Text *namerText;
-  if (metaAttributed)
-    namerText = considerNamer(atts, inhibitCache, arcNamerIndex);
-  else {
-    arcNamerIndex = invalidAtt;
-    namerText = 0;
-  }
-  MetaMap *mapP;
-  if (inhibitCache) {
-    noCacheMetaMap_.clear();
-    mapP = &noCacheMetaMap_;
-  }
-  else {
-    MetaMapCache *cache = metaMapCache_[cacheIndex].pointer();
-    if (cache)
-      cache->clear();
-    else {
-      cache = new MetaMapCache;
-      metaMapCache_[cacheIndex] = cache;
-    }
-    cache->noSpec[0] = arcFormIndex;
-    cache->noSpec[1] = arcNamerIndex;
-    cache->noSpec[2] = arcSuprIndex;
-    cache->noSpec[3] = arcIgnDIndex;
-    cache->suppressFlags = oldSuppressFlags;
-    cache->linkAtts = linkAtts;
-    mapP = &cache->map;
-  }
-  mapP->attributed = metaAttributed;
-  mapP->suppressFlags = newSuppressFlags;
-  // Build the attribute map.
-  if (metaAttributed) {
-    Vector<PackedBoolean> renamed;
-    ConstPtr<AttributeDefinitionList> metaAttDef
-      = metaAttributed->attributeDef();
-    if (!metaAttDef.isNull())
-      renamed.assign(metaAttDef->size(), PackedBoolean(0));
-    if (linkAtts) {
-      Boolean specified;
-      unsigned index;
-      const Text *linkNamerText = considerNamer(*linkAtts, specified, index);
-      if (linkNamerText)
-	buildAttributeMapRename(*mapP, *linkNamerText, atts, linkAtts, renamed);
-    }
-    if (namerText)
-      buildAttributeMapRename(*mapP, *namerText, atts, 0, renamed);
-    buildAttributeMapRest(*mapP, atts, linkAtts, renamed);
-  }
-  return *mapP;
-}
-
-void ArcProcessor::considerSupr(const AttributeList &atts,
-				const AttributeList *linkAtts,
-				unsigned &thisSuppressFlags,
-				unsigned &newSuppressFlags,
-				Boolean &inhibitCache,
-				unsigned &arcSuprIndex)
-{
-  arcSuprIndex = invalidAtt;
-  if (thisSuppressFlags & suppressSupr)
-    return;
-  if (!supportAtts_[rArcSuprA].size())
-    return;
-  const AttributeValue *val;
-  unsigned tem;
-  if (linkAtts && linkAtts->attributeIndex(supportAtts_[rArcSuprA], tem))
-    val = linkAtts->value(tem);
-  else if (atts.attributeIndex(supportAtts_[rArcSuprA], arcSuprIndex)) {
-    if (atts.current(arcSuprIndex) || atts.specified(arcSuprIndex))
-      inhibitCache = 1;
-    val = atts.value(arcSuprIndex);
-  }
-  else
-    return;
-  if (!val)
-    return;
-  const Text *textP = val->text();
-  if (!textP)
-    return;
-  StringC token = textP->string();
-  // FIXME trim spaces
-  docSyntax_->generalSubstTable()->subst(token);
-  // sArcForm suppress processing for all elements except
-  // those that have a non-implied ArcSupr attribute.
-  thisSuppressFlags &= ~suppressForm;
-  newSuppressFlags &= ~(suppressForm|suppressSupr);
-  if (matchName(token, "sArcForm"))
-    newSuppressFlags |= suppressForm;
-#if 0
-  // I don't think this is useful
-  else if (matchName(token, "sArcSupr"))
-    newSuppressFlags |= suppressSupr;
-#endif
-  else if (matchName(token, "sArcAll"))
-    newSuppressFlags |= (suppressSupr|suppressForm);
-  else if (!matchName(token, "sArcNone")) {
-    Messenger::setNextLocation(textP->charLocation(0));
-    Messenger::message(ArcEngineMessages::invalidSuppress,
-		       StringMessageArg(token));
-  }
-}
-
-void ArcProcessor::considerIgnD(const AttributeList &atts,
-				const AttributeList *linkAtts,
-				unsigned thisSuppressFlags,
-				unsigned &newSuppressFlags,
-				Boolean &inhibitCache,
-				unsigned &arcIgnDIndex)
-{
-  arcIgnDIndex = invalidAtt;
-  if (thisSuppressFlags & suppressSupr)
-    return;
-  if (!supportAtts_[rArcIgnDA].size())
-    return;
-  const AttributeValue *val;
-  unsigned tem;
-  if (linkAtts && linkAtts->attributeIndex(supportAtts_[rArcIgnDA], tem))
-    val = linkAtts->value(tem);
-  else if (atts.attributeIndex(supportAtts_[rArcIgnDA], arcIgnDIndex)) {
-    if (atts.current(arcIgnDIndex) || atts.specified(arcIgnDIndex))
-      inhibitCache = 1;
-    val = atts.value(arcIgnDIndex);
-  }
-  else
-    return;
-  if (!val)
-    return;
-  const Text *textP = val->text();
-  if (!textP)
-    return;
-  StringC token = textP->string();
-  // FIXME trim spaces
-  docSyntax_->generalSubstTable()->subst(token);
-  newSuppressFlags &= ~(ignoreData|condIgnoreData);
-  if (matchName(token, "ArcIgnD"))
-    newSuppressFlags |= ignoreData;
-  else if (matchName(token, "cArcIgnD"))
-    newSuppressFlags |= condIgnoreData;
-  else if (!matchName(token, "nArcIgnD")) {
-    Messenger::setNextLocation(textP->charLocation(0));
-    Messenger::message(ArcEngineMessages::invalidIgnD,
-		       StringMessageArg(token));
-  }
-}
-
-const Attributed *
-ArcProcessor::considerForm(const AttributeList &atts,
-			   const AttributeList *linkAtts,
-			   const StringC &name,
-			   Boolean isNotation,
-			   unsigned thisSuppressFlags,
-			   unsigned &newSuppressFlags,
-			   Boolean &inhibitCache,
-			   unsigned &arcFormIndex)
-{
-  arcFormIndex = invalidAtt;
-  if ((thisSuppressFlags & suppressForm)
-      && (supportAtts_[rArcSuprF].size() == 0
-	  || (thisSuppressFlags & suppressSupr)
-	  || isNotation))
-    return 0;
-  unsigned tem;
-  const AttributeValue *val;
-  if (linkAtts && linkAtts->attributeIndex(supportAtts_[rArcFormA], tem))
-    val = linkAtts->value(tem);
-  else if (atts.attributeIndex(supportAtts_[rArcFormA], arcFormIndex)) {
-    if (atts.current(arcFormIndex) || atts.specified(arcFormIndex))
-      inhibitCache = 1;
-    val = atts.value(arcFormIndex);
-  }
-  else
-    return autoForm(atts, name, isNotation,
-		    thisSuppressFlags, newSuppressFlags,
-		    inhibitCache, arcFormIndex);
-    
-  if (!val)
-    return 0;
-  const Text *textP = val->text();
-  if (!textP)
-    return 0;
-  StringC metaName;
-  metaName = textP->string();
-  // FIXME should trim leading and trailing spaces
-  metaSyntax_->generalSubstTable()->subst(metaName);
-  if (!isNotation) {
-    const Attributed *metaAttributed = metaDtd_->lookupElementType(metaName);
-    if (!metaAttributed) // CONSTDTD
-      metaAttributed = lookupCreateUndefinedElement(metaName, Location(), *metaDtd_);
-    if (metaName == supportAtts_[rArcSuprF]) {
-      newSuppressFlags |= suppressForm;
-      return metaAttributed;
-    }
-    if (thisSuppressFlags & suppressForm)
-      return 0;
-    return metaAttributed;
-  }
-  else
-    return metaDtd_->lookupNotation(metaName).pointer();
-}
-
-const Attributed *
-ArcProcessor::autoForm(const AttributeList &atts,
-		       const StringC &name,
-		       Boolean isNotation,
-		       unsigned thisSuppressFlags,
-		       unsigned &newSuppressFlags,
-		       Boolean &inhibitCache,
-		       unsigned &idIndex)
-{
-  if (!isNotation) {
-    const Attributed *metaAttributed;
-    if (openElementFlags_.size() == 0) {
-      metaAttributed = metaDtd_->documentElementType();
-      inhibitCache = 1;
-    }
-    else {
-      metaAttributed = 0;
-      if (arcAuto_)
-	metaAttributed = metaDtd_->lookupElementType(name);
-      if (!metaAttributed
-	  && supportAtts_[rArcBridF].size() > 0
-	  && atts.idIndex(idIndex)
-	  && atts.specified(idIndex)) {
-	inhibitCache = 1;
-	metaAttributed
-	  = metaDtd_->lookupElementType(supportAtts_[rArcBridF]);
-      }
-    }
-    if (metaAttributed
-	&& name == supportAtts_[rArcSuprF]) {
-      newSuppressFlags = suppressForm|ignoreData;
-    }
-    else if (thisSuppressFlags & suppressForm)
-      return 0;
-    return metaAttributed;
-  }
-  else if (thisSuppressFlags & suppressForm)
-    return 0;
-  else {
-    const Attributed *metaAttributed = 0;
-    if (arcAuto_)
-      metaAttributed = metaDtd_->lookupNotation(name).pointer();
-    if (!metaAttributed && supportAtts_[rArcDataF].size() > 0)
-      metaAttributed
-	= metaDtd_->lookupNotation(supportAtts_[rArcDataF]).pointer();
-    return metaAttributed;
-  }
-}
-
-
-const Text *
-ArcProcessor::considerNamer(const AttributeList &atts,
-			    Boolean &inhibitCache,
-			    unsigned &arcNamerIndex)
-{
-  arcNamerIndex = invalidAtt;
-  if (supportAtts_[rArcNamrA].size() == 0
-      || !atts.attributeIndex(supportAtts_[rArcNamrA], arcNamerIndex))
-    return 0;
-  if (atts.current(arcNamerIndex) || atts.specified(arcNamerIndex))
-    inhibitCache = 1;
-  const AttributeValue *val = atts.value(arcNamerIndex);
-  if (!val)
-    return 0;
-  return val->text();
-}
-
-void ArcProcessor::buildAttributeMapRename(MetaMap &map,
-					   const Text &rename,
-					   const AttributeList &atts,
-					   const AttributeList *linkAtts,
-					   Vector<PackedBoolean> &attRenamed)
-{
-  Vector<StringC> tokens;
-  Vector<size_t> tokensPos;
-  split(rename, docSyntax_->space(), tokens, tokensPos);
-  ConstPtr<AttributeDefinitionList> metaAttDef;
-  if (map.attributed)
-    metaAttDef = map.attributed->attributeDef();
-  // FIXME Should check that ARCCONT doesn't appear more than once.
-  for (size_t i = 0; i < tokens.size(); i += 2) {
-    unsigned fromIndex = invalidAtt;
-    unsigned toIndex = invalidAtt;
-    metaSyntax_->generalSubstTable()->subst(tokens[i]);
-    if (tokens[i] == rniArcCont_)
-      toIndex = contentPseudoAtt;
-    else if (metaAttDef.isNull()
-	     || !metaAttDef->attributeIndex(tokens[i], toIndex)) {
-      setNextLocation(rename.charLocation(tokensPos[i]));
-      Messenger::message(ArcEngineMessages::renameToInvalid,
-			 StringMessageArg(tokens[i]));
-    }
-    else if (attRenamed[toIndex]) {
-      toIndex = invalidAtt;
-      setNextLocation(rename.charLocation(tokensPos[i]));
-      Messenger::message(ArcEngineMessages::renameToDuplicate,
-			 StringMessageArg(tokens[i]));
-    }
-    if (i + 1 >= tokens.size()) {
-      setNextLocation(rename.charLocation(tokensPos[i]));
-      Messenger::message(ArcEngineMessages::renameMissingAttName);
-    }
-    else {
-      docSyntax_->generalSubstTable()->subst(tokens[i + 1]);
-      if (tokens[i + 1] == rniContent_) {
-	fromIndex = contentPseudoAtt;
-      }
-      else if (tokens[i + 1] == rniDefault_) {
-	if (toIndex != contentPseudoAtt)
-	  attRenamed[toIndex] = 1;
-      }
-      else if (linkAtts
-	       && linkAtts->attributeIndex(tokens[i + 1], fromIndex))
-	fromIndex += atts.size();
-      else if (!atts.attributeIndex(tokens[i + 1], fromIndex)) {
-	setNextLocation(rename.charLocation(tokensPos[i + 1]));
-	Messenger::message(ArcEngineMessages::renameFromInvalid,
-			   StringMessageArg(tokens[i + 1]));
-      }
-    }
-    if (fromIndex != invalidAtt && toIndex != invalidAtt) {
-      map.attMapFrom.push_back(fromIndex);
-      map.attMapTo.push_back(toIndex);
-      if (toIndex != contentPseudoAtt) {
-	attRenamed[toIndex] = 1;
-	if (metaAttDef->def(toIndex)->isId()
-	    && (fromIndex >= atts.size() || !atts.id(fromIndex)))
-	  Messenger::message(ArcEngineMessages::idMismatch,
-			     StringMessageArg(metaAttDef->def(toIndex)
-					      ->name()));
-      }
-    }
-  }
-}
-
-void ArcProcessor::buildAttributeMapRest(MetaMap &map,
-					 const AttributeList &atts,
-					 const AttributeList *linkAtts,
-					 const Vector<PackedBoolean> &attRenamed)
-{
-  ConstPtr<AttributeDefinitionList> metaAttDef
-    = map.attributed->attributeDef();
-  if (metaAttDef.isNull())
-    return;
-  for (unsigned i = 0; i < metaAttDef->size(); i++)
-    if (!attRenamed[i]) {
-      unsigned fromIndex;
-      if (metaAttDef->def(i)->isId()) {
-	for (unsigned j = 0; j < atts.size(); j++)
-	  if (atts.id(j)) {
-	    map.attMapFrom.push_back(j);
-	    map.attMapTo.push_back(i);
-	    break;
-	  }
-      }
-      else if (linkAtts && linkAtts->attributeIndex(metaAttDef->def(i)->name(),
-						    fromIndex)) {
-	map.attMapFrom.push_back(fromIndex + atts.size());
-	map.attMapTo.push_back(i);
-      }
-      else if (atts.attributeIndex(metaAttDef->def(i)->name(), fromIndex)) {
-	map.attMapFrom.push_back(fromIndex);
-	map.attMapTo.push_back(i);
-      }
-    }
-}
-
-Boolean ArcProcessor::matchName(const StringC &name, const char *key)
-{
-  if (name.size() != strlen(key))
-    return 0;
-  StringC tem(docSd_->execToInternal(key));
-  docSyntax_->generalSubstTable()->subst(tem);
-  return name == tem;
-}
-
-void ArcProcessor::split(const Text &text,
-			 Char space,
-			 Vector<StringC> &tokens,
-			 Vector<size_t> &tokensPos)
-{
-  const StringC &str = text.string();
-  for (size_t i = 0;;) {
-    for (; i < str.size() && str[i] == space; i++)
-      ;
-    if (i >= str.size())
-      break;
-    size_t start = i;
-    for (; i < str.size() && str[i] != space; i++)
-      ;
-    tokens.push_back(StringC(str.data() + start, i - start));
-    tokensPos.push_back(start);
-  }
-}
-
-void ArcProcessor::processEndElement(const EndElementEvent &event,
-				     Allocator &alloc)
-{
-  Boolean wasArc = (openElementFlags_.back() & isArc);
-  openElementFlags_.resize(openElementFlags_.size() - 1);
-  if (wasArc) {
-    EndElementEvent *genEvent
-      = new (alloc) EndElementEvent(currentElement().type(),
-					metaDtd_,
-					event.location(),
-					0);
-    if (currentElement().included())
-      genEvent->setIncluded();
-    docHandler_->endElement(genEvent);
-    if (!currentElement().isFinished())
-      Messenger::message(ArcEngineMessages::unfinishedElement,
-			 StringMessageArg(currentElement().type()->name()));
-    popElement();
-  }
-}
-
-void ArcProcessor::dispatchMessage(Message &msg)
-{
-  mgr_->dispatchMessage(msg);
-}
-
-void ArcProcessor::dispatchMessage(const Message &msg)
-{
-  mgr_->dispatchMessage(msg);
-}
-
-void ArcProcessor::initMessage(Message &msg)
-{
-  mgr_->initMessage(msg);
-  if (valid_) {
-    StringC rniPcdata = metaSyntax_->delimGeneral(Syntax::dRNI);
-    rniPcdata += metaSyntax_->reservedName(Syntax::rPCDATA);
-    getOpenElementInfo(msg.openElementInfo, rniPcdata);
-  }
-}
-
-ArcProcessor::MetaMapCache::MetaMapCache()
-{
-  for (int i = 0; i < nNoSpec; i++)
-    noSpec[i] = invalidAtt;
-  linkAtts = 0;
-}
-
-void ArcProcessor::MetaMapCache::clear()
-{
-  for (int i = 0; i < nNoSpec; i++)
-    noSpec[i] = invalidAtt;
-  linkAtts = 0;
-  map.clear();
-}
-
-ArcProcessor::MetaMap::MetaMap()
-: attributed(0)
-{
-}
-
-void ArcProcessor::MetaMap::clear()
-{
-  attMapFrom.clear();
-  attMapTo.clear();
-  attributed = 0;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ArcEngineMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,418 +0,0 @@
-// This file was automatically generated from lib\ArcEngineMessages.msg by msggen.pl.
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct ArcEngineMessages {
-  // 3000
-  static const MessageType1 arcGenerateSystemId;
-  // 3001
-  static const MessageType1 undefinedElement;
-  // 3002
-  static const MessageType1 elementExcluded;
-  // 3003
-  static const MessageType1 invalidElement;
-  // 3004
-  static const MessageType1 documentElementNotArc;
-  // 3005
-  static const MessageType1 unfinishedElement;
-  // 3006
-  static const MessageType0 renameMissingAttName;
-  // 3007
-  static const MessageType1 renameToInvalid;
-  // 3008
-  static const MessageType1 renameToDuplicate;
-  // 3009
-  static const MessageType1 renameFromInvalid;
-  // 3010
-  static const MessageType1 missingId;
-  // 3011
-  static const MessageType0 invalidArcContent;
-  // 3012
-  static const MessageType1 invalidSuppress;
-  // 3013
-  static const MessageType1 arcDtdNotDeclaredParameter;
-  // 3014
-  static const MessageType1 arcDtdNotDeclaredGeneral;
-  // 3015
-  static const MessageType1 arcDtdNotExternal;
-  // 3016
-  static const MessageType0 noArcDTDAtt;
-  // 3017
-  static const MessageType1 noArcDataF;
-  // 3018
-  static const MessageType1 idMismatch;
-  // 3019
-  static const MessageType1 invalidArcAuto;
-  // 3020
-  static const MessageType1 noArcNotation;
-  // 3021
-  static const MessageType0 invalidData;
-  // 3022
-  static const MessageType1 invalidIgnD;
-  // 3023
-  static const MessageType1 invalidArcIndr;
-  // 3024
-  static const MessageType1 invalidQuantity;
-  // 3025
-  static const MessageType1 missingQuantityValue;
-  // 3026
-  static const MessageType1 quantityValueTooLong;
-  // 3027
-  static const MessageType1 invalidDigit;
-  // 3028
-  static const MessageType0 arcIndrNotSupported;
-};
-const MessageType1 ArcEngineMessages::arcGenerateSystemId(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3000
-#ifndef SP_NO_MESSAGE_TEXT
-,"no system identifier could be generated for meta-DTD for architecture %1"
-#endif
-);
-const MessageType1 ArcEngineMessages::undefinedElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3001
-#ifndef SP_NO_MESSAGE_TEXT
-,"element type %1 not defined in meta-DTD"
-#endif
-);
-const MessageType1 ArcEngineMessages::elementExcluded(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3002
-#ifndef SP_NO_MESSAGE_TEXT
-,"element %1 invalid in meta-DTD because excluded"
-#endif
-);
-const MessageType1 ArcEngineMessages::invalidElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3003
-#ifndef SP_NO_MESSAGE_TEXT
-,"meta-DTD does not allow element %1 at this point"
-#endif
-);
-const MessageType1 ArcEngineMessages::documentElementNotArc(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3004
-#ifndef SP_NO_MESSAGE_TEXT
-,"document element must be instance of %1 element type form"
-#endif
-);
-const MessageType1 ArcEngineMessages::unfinishedElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3005
-#ifndef SP_NO_MESSAGE_TEXT
-,"element %1 unfinished in meta-DTD"
-#endif
-);
-const MessageType0 ArcEngineMessages::renameMissingAttName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3006
-#ifndef SP_NO_MESSAGE_TEXT
-,"missing substitute name"
-#endif
-);
-const MessageType1 ArcEngineMessages::renameToInvalid(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3007
-#ifndef SP_NO_MESSAGE_TEXT
-,"substitute for non-existent architecture attribute %1"
-#endif
-);
-const MessageType1 ArcEngineMessages::renameToDuplicate(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3008
-#ifndef SP_NO_MESSAGE_TEXT
-,"substitute name for %1 already defined"
-#endif
-);
-const MessageType1 ArcEngineMessages::renameFromInvalid(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3009
-#ifndef SP_NO_MESSAGE_TEXT
-,"substitute name %1 is not the name of an attribute"
-#endif
-);
-const MessageType1 ArcEngineMessages::missingId(
-MessageType::idrefError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3010
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference in architecture to non-existent ID %1"
-#endif
-);
-const MessageType0 ArcEngineMessages::invalidArcContent(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3011
-#ifndef SP_NO_MESSAGE_TEXT
-,"architectural content specified with #ARCCONT not allowed by meta-DTD"
-#endif
-);
-const MessageType1 ArcEngineMessages::invalidSuppress(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3012
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid value %1 for ArcSupr attribute"
-#endif
-);
-const MessageType1 ArcEngineMessages::arcDtdNotDeclaredParameter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3013
-#ifndef SP_NO_MESSAGE_TEXT
-,"no declaration for meta-DTD parameter entity %1"
-#endif
-);
-const MessageType1 ArcEngineMessages::arcDtdNotDeclaredGeneral(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3014
-#ifndef SP_NO_MESSAGE_TEXT
-,"no declaration for meta-DTD general entity %1"
-#endif
-);
-const MessageType1 ArcEngineMessages::arcDtdNotExternal(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3015
-#ifndef SP_NO_MESSAGE_TEXT
-,"meta-DTD entity %1 must be external"
-#endif
-);
-const MessageType0 ArcEngineMessages::noArcDTDAtt(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3016
-#ifndef SP_NO_MESSAGE_TEXT
-,"no ArcDTD architecture support attribute specified"
-#endif
-);
-const MessageType1 ArcEngineMessages::noArcDataF(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3017
-#ifndef SP_NO_MESSAGE_TEXT
-,"ArcDataF notation %1 not defined in meta-DTD"
-#endif
-);
-const MessageType1 ArcEngineMessages::idMismatch(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3018
-#ifndef SP_NO_MESSAGE_TEXT
-,"ID attribute %1 in meta-DTD not declared as ID in DTD"
-#endif
-);
-const MessageType1 ArcEngineMessages::invalidArcAuto(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3019
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid value %1 for ArcAuto architectural support attribute"
-#endif
-);
-const MessageType1 ArcEngineMessages::noArcNotation(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3020
-#ifndef SP_NO_MESSAGE_TEXT
-,"no notation declaration for architecture %1"
-#endif
-);
-const MessageType0 ArcEngineMessages::invalidData(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3021
-#ifndef SP_NO_MESSAGE_TEXT
-,"meta-DTD does not allow data at this point"
-#endif
-);
-const MessageType1 ArcEngineMessages::invalidIgnD(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3022
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid value %1 for ArcIgnD attribute"
-#endif
-);
-const MessageType1 ArcEngineMessages::invalidArcIndr(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3023
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid value %1 for ArcIndr architectural support attribute"
-#endif
-);
-const MessageType1 ArcEngineMessages::invalidQuantity(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3024
-#ifndef SP_NO_MESSAGE_TEXT
-,"unrecognized quantity name %1"
-#endif
-);
-const MessageType1 ArcEngineMessages::missingQuantityValue(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3025
-#ifndef SP_NO_MESSAGE_TEXT
-,"no value specified for quantity %1"
-#endif
-);
-const MessageType1 ArcEngineMessages::quantityValueTooLong(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3026
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of value %1 for quantity is too long"
-#endif
-);
-const MessageType1 ArcEngineMessages::invalidDigit(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3027
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid digit %1"
-#endif
-);
-const MessageType0 ArcEngineMessages::arcIndrNotSupported(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3028
-#ifndef SP_NO_MESSAGE_TEXT
-,"only value of nArcIndr for ArcIndr attribute supported"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ArcProcessor.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,211 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ArcProcessor_INCLUDED
-#define ArcProcessor_INCLUDED 1
-
-#include "Event.h"
-#include "ContentState.h"
-#include "Id.h"
-#include "NamedTable.h"
-#include "Vector.h"
-#include "ArcEngine.h"
-#include "SgmlParser.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Allocator;
-
-// Processor for a single architecture
-
-class ArcProcessor : private ContentState, private AttributeContext {
-public:
-  struct MetaMap {
-    MetaMap();
-    void clear();
-    const Attributed *attributed;
-    unsigned suppressFlags;
-    // #ARCCONT and #CONTENT are handled with a special index
-    // list of indexes into element's attlist of architectural attributes
-    Vector<unsigned> attMapFrom;
-    // corresponding list of indexes in form's attlist
-    Vector<unsigned> attMapTo;
-  };
-  struct MetaMapCache {
-    MetaMapCache();
-    void clear();
-    MetaMap map;
-    enum { nNoSpec = 4 };
-    // Prerequisites for this cached entry to be valid.
-    // The cache is only valid if for each member of noSpec != -1
-    // the attribute with that index was not specified (or current)
-    unsigned noSpec[nNoSpec];
-    unsigned suppressFlags;
-    const AttributeList *linkAtts;
-  };
-  ArcProcessor();
-  void setName(const StringC &);
-  void init(const EndPrologEvent &,
-	    const ConstPtr<Sd> &,
-	    const ConstPtr<Syntax> &,
-	    const SgmlParser *parser,
-	    Messenger *,
-	    const Vector<StringC> &superName,
-	    ArcDirector &director,
-	    const volatile sig_atomic_t *cancelPtr);
-  // Return 0 if the content is needed, but wasn't supplied
-  Boolean processStartElement(const StartElementEvent &,
-			      const AttributeList *linkAttributes,
-			      const Text *content,
-			      Allocator &);
-  void processEndElement(const EndElementEvent &,
-			 Allocator &);
-  // Return true if its architectural.
-  Boolean processData();
-  ConstPtr<Dtd> dtdPointer() const { return metaDtd_; }
-  Boolean valid() const { return valid_; }
-  void checkIdrefs();
-  const StringC &name() const { return name_; }
-  EventHandler &docHandler() const { return *docHandler_; }
-private:
-  ArcProcessor(const ArcProcessor &); // undefined
-  void operator=(const ArcProcessor &);	// undefined
-  const Syntax &attributeSyntax() const;
-  ConstPtr<Notation> getAttributeNotation(const StringC &,
-					  const Location &);
-  ConstPtr<Entity> getAttributeEntity(const StringC &,
-				      const Location &);
-  void noteCurrentAttribute(size_t, AttributeValue *);
-  ConstPtr<AttributeValue> getCurrentAttribute(size_t) const;
-  Boolean defineId(const StringC &, const Location &, Location &);
-  void noteIdref(const StringC &, const Location &);
-  Id *lookupCreateId(const StringC &);
-  void dispatchMessage(const Message &);
-  void dispatchMessage(Message &);
-  void initMessage(Message &);
-  const MetaMap &buildMetaMap(const ElementType *,
-			      const Notation *,
-			      const AttributeList &,
-			      const AttributeList *linkAtts,
-			      unsigned suppressFlags);
-  void considerSupr(const AttributeList &atts,
-		    const AttributeList *linkAtts,
-		    unsigned &thisSuppressFlags,
-		    unsigned &newSuppressFlags,
-		    Boolean &inhibitCache,
-		    unsigned &arcSuprIndex);
-  void considerIgnD(const AttributeList &atts,
-		    const AttributeList *linkAtts,
-		    unsigned thisSuppressFlags,
-		    unsigned &newSuppressFlags,
-		    Boolean &inhibitCache,
-		    unsigned &arcSuprIndex);
-  const Attributed *considerForm(const AttributeList &atts,
-				 const AttributeList *linkAtts,
-				 const StringC &name,
-				 Boolean isNotation,
-				 unsigned thisSuppressFlags,
-				 unsigned &newSuppressFlags,
-				 Boolean &inhibitCache,
-				 unsigned &arcFormIndex);
-  const Attributed *autoForm(const AttributeList &atts,
-			     const StringC &name,
-			     Boolean isNotation,
-			     unsigned thisSuppressFlags,
-			     unsigned &newSuppressFlags,
-			     Boolean &inhibitCache,
-			     unsigned &idIndex);
-  const Text *considerNamer(const AttributeList &atts,
-			    Boolean &inhibitCache,
-			    unsigned &arcNamerIndex);
-  void buildAttributeMapRename(MetaMap &map,
-			       const Text &rename,
-			       const AttributeList &atts,
-			       const AttributeList *linkAtts,
-			       Vector<PackedBoolean> &attRenamed);
-  void buildAttributeMapRest(MetaMap &map,
-			     const AttributeList &atts,
-			     const AttributeList *linkAtts,
-			     const Vector<PackedBoolean> &attRenamed);
-  Boolean matchName(const StringC &name, const char *key);
-  void split(const Text &text,
-	     Char space,
-	     Vector<StringC> &tokens,
-	     Vector<size_t> &tokenPos);
-  Boolean mapAttributes(const AttributeList &from,
-			const AttributeList *fromLink,
-			const Text *content,
-			AttributeList &to,
-			ConstPtr<AttributeValue> &arcContent,
-			const MetaMap &map);
-  void supportAttributes(const AttributeList &);
-  void processArcOpts(const AttributeList &atts);
-  void processArcQuant(const Text &);
-  ConstPtr<Entity> makeDtdEntity(const Notation *);
-  void mungeMetaDtd(Dtd &metaDtd, const Dtd &docDtd);
-  Boolean mungeDataEntity(ExternalDataEntity &entity);
-  void emitArcContent(const Text &text,
-		      EventHandler &handler,
-		      Allocator &allocator);
-
-  Boolean valid_;
-  StringC name_;
-  Messenger *mgr_;
-  ConstPtr<Dtd> docDtd_;
-  Ptr<Dtd> metaDtd_;
-  ConstPtr<Syntax> docSyntax_;
-  ConstPtr<Syntax> metaSyntax_;
-  ConstPtr<Sd> docSd_;
-  enum ReservedName {
-    rArcFormA,
-    rArcNamrA,
-    rArcSuprA,
-    rArcIgnDA,
-    rArcDocF,
-    rArcSuprF,
-    rArcBridF,
-    rArcDataF,
-    rArcAuto,
-    rArcIndr,
-    rArcDTD,
-    rArcQuant
-  };
-  enum { nReserve = rArcQuant + 1 };
-  StringC supportAtts_[nReserve];
-  Boolean arcDtdIsParam_;
-  Boolean arcAuto_;
-  Vector<StringC> arcOpts_;
-  StringC rniContent_;
-  StringC rniArcCont_;
-  StringC rniDefault_;
-  enum {
-    isArc = 01,
-    suppressForm = 02,
-    suppressSupr = 04,
-    ignoreData = 010,
-    condIgnoreData = 020,
-    // recovering from invalid data
-    recoverData = 040
-    };
-  Vector<unsigned> openElementFlags_;
-  AttributeList attributeList_;
-  NCVector<Owner<MetaMapCache> > metaMapCache_;
-  MetaMap noCacheMetaMap_;
-  NamedTable<Id> idTable_;
-  Vector<ConstPtr<AttributeValue> > currentAttributes_;
-  ConstPtr<Notation> defaultNotation_;
-  Boolean errorIdref_;
-  ArcDirector *director_;
-  EventHandler *docHandler_;
-  Owner<EventHandler> ownEventHandler_;
-  size_t docIndex_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ArcProcessor_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Attribute.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1366 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Attribute.h"
-#include "MessageArg.h"
-#include "macros.h"
-#include "ParserMessages.h"
-#include "StringVectorMessageArg.h"
-#include "Syntax.h"
-#include "Entity.h"
-#include "Notation.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-DeclaredValue::DeclaredValue()
-{
-}
-
-DeclaredValue::~DeclaredValue()
-{
-}
-
-AttributeValue *DeclaredValue::makeValueFromToken(Text &text,
-						  AttributeContext &context,
-						  const StringC &name,
-						  unsigned &specLength) const
-{
-  return makeValue(text, context, name, specLength);
-}
-
-AttributeSemantics *DeclaredValue::makeSemantics(const TokenizedAttributeValue &,
-						 AttributeContext &,
-						 const StringC &,
-						 unsigned &,
-						 unsigned &) const
-{
-  return 0;
-}
-
-Boolean DeclaredValue::containsToken(const StringC &) const
-{
-  return 0;
-}
-
-Boolean DeclaredValue::isNotation() const
-{
-  return 0;
-}
-
-Boolean DeclaredValue::isEntity() const
-{
-  return 0;
-}
-
-Boolean DeclaredValue::isId() const
-{
-  return 0;
-}
-
-Boolean DeclaredValue::isIdref() const
-{
-  return 0;
-}
-
-const Vector<StringC> *DeclaredValue::getTokens() const
-{
-  return 0;
-}
-
-
-CdataDeclaredValue::CdataDeclaredValue()
-{
-}
-
-Boolean CdataDeclaredValue::tokenized() const
-{
-  return 0;
-}
-
-AttributeValue *CdataDeclaredValue::makeValue(Text &text, AttributeContext &context,
-					      const StringC &,
-					      unsigned &specLength) const
-{
-  const Syntax &syntax = context.attributeSyntax();
-  size_t normsep = syntax.normsep();
-  size_t normalizedLength = text.normalizedLength(normsep);
-  specLength += normalizedLength;
-  size_t litlen = syntax.litlen();
-  // A length error will already have been given if
-  // length > litlen - normsep.
-  if (litlen >= normsep && text.size() <= litlen - normsep
-      && normalizedLength > litlen)
-    context.message(ParserMessages::normalizedAttributeValueLength,
-		    NumberMessageArg(litlen),
-		    NumberMessageArg(normalizedLength));
-  return new CdataAttributeValue(text);
-}
-
-void CdataDeclaredValue::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  desc.declaredValue = AttributeDefinitionDesc::cdata;
-}
-
-DeclaredValue *CdataDeclaredValue::copy() const
-{
-  return new CdataDeclaredValue(*this);
-}
-
-TokenizedDeclaredValue::TokenizedDeclaredValue(TokenType type,
-					       Boolean isList)
-: type_(type), isList_(isList)
-{
-  switch (type) {
-  case name:
-  case entityName:
-    initialCategories_ = Syntax::nameStartCategory;
-    subsequentCategories_ = (Syntax::nameStartCategory|Syntax::digitCategory
-			     | Syntax::otherNameCategory);
-    break;
-  case number:
-    initialCategories_ = Syntax::digitCategory;
-    subsequentCategories_ = Syntax::digitCategory;
-    break;
-  case nameToken:
-    initialCategories_ = (Syntax::nameStartCategory|Syntax::digitCategory
-			  | Syntax::otherNameCategory);
-    subsequentCategories_ = initialCategories_;
-    break;
-  case numberToken:
-    initialCategories_ = Syntax::digitCategory;
-    subsequentCategories_ = (Syntax::nameStartCategory|Syntax::digitCategory
-			     | Syntax::otherNameCategory);
-    break;
-  }
-}
-
-Boolean TokenizedDeclaredValue::tokenized() const
-{
-  return 1;
-}
-
-AttributeValue *TokenizedDeclaredValue::makeValue(Text &text,
-						  AttributeContext &context,
-						  const StringC &str,
-						  unsigned &specLength) const
-{
-  return makeTokenizedValue(text, context, str, specLength);
-}
-
-TokenizedAttributeValue *
-TokenizedDeclaredValue::makeTokenizedValue(Text &text,
-					   AttributeContext &context,
-					   const StringC &LOCALname,
-					   unsigned &specLength) const
-{
-  Vector<size_t> spaceIndex;
-  const Syntax &syntax = context.attributeSyntax();
-  Char space = syntax.space();
-  text.subst(*(type_ == entityName
-	       ? syntax.entitySubstTable()
-	       : syntax.generalSubstTable()),
-	     space);
-  const StringC &value = text.string();
-  size_t i = 0;
-  size_t length = value.size();
-
-  for (;;) {
-    if (i >= length) {
-      // ends with a space (which would have to have been entered
-      // via a numeric character reference)
-      if (context.validate())
-	context.message(ParserMessages::attributeValueSyntax);
-      break;
-    }
-    size_t startIndex = i;
-    if (context.validate()) {
-      if (!(syntax.charCategory(value[i]) & initialCategories_)) {
-        context.Messenger::setNextLocation(text.charLocation(i));
-        Char c = value[i];
-	if (!(syntax.charCategory(value[i]) & subsequentCategories_))
-	  context.message(ParserMessages::attributeValueChar,
-	                  StringMessageArg(StringC(&c, 1)),
-	                  StringMessageArg(LOCALname));
-	else if (initialCategories_ == Syntax::digitCategory)
-	  context.message(ParserMessages::attributeValueNumberToken,
-	                  StringMessageArg(StringC(&c, 1)),
-	                  StringMessageArg(LOCALname));
-	else
-	  context.message(ParserMessages::attributeValueName,
-	                  StringMessageArg(StringC(&c, 1)),
-	                  StringMessageArg(LOCALname));
-      }
-      else {
-	for (++i;
-             i < length
-	     && (syntax.charCategory(value[i]) & subsequentCategories_);
-	     i++)
-	  ;
-	if (i < length && value[i] != space) {
-	  Char c = value[i];
-	  // character value[i] is not allowed anywhere in the value
-	  context.Messenger::setNextLocation(text.charLocation(i));
-	  context.message(ParserMessages::attributeValueChar,
-		          StringMessageArg(StringC(&c, 1)),
-		          StringMessageArg(LOCALname));
-	}
-      }
-    }
-    while (i < length && value[i] != space)
-      i++;
-    if (i - startIndex > syntax.namelen()) {
-      context.Messenger::setNextLocation(text.charLocation(i));
-      context.message(ParserMessages::nameTokenLength,
-		      NumberMessageArg(syntax.namelen()));
-    }
-    if (i == length)
-      break;
-    if (!isList_ && context.validate() && spaceIndex.size() == 0) {
-      context.Messenger::setNextLocation(text.charLocation(i));
-      context.message(ParserMessages::attributeValueMultiple,
-		      StringMessageArg(LOCALname));
-    }
-    spaceIndex.push_back(i);
-    i++;
-  }
-  size_t normsep = syntax.normsep();
-  size_t litlen = syntax.litlen();
-  size_t normalizedLength = normsep + length;
-  // should we count CDATA and SDATA entities here?
-  if (isList_) {
-    normalizedLength += 1;
-    // length is now the number of characters in each token in the list
-    // + 1 for each token in the list; so add normsep - 1 for each
-    // token in the list.
-    if (normsep > 0)
-      normalizedLength += (normsep - 1)*(spaceIndex.size() + 1);
-    else
-      normalizedLength -= spaceIndex.size() + 1;
-  }
-  specLength += normalizedLength;
-  // A length error will already have been given if
-  // length > litlen - normsep.
-  if (litlen >= normsep && length <= litlen - normsep
-      && normalizedLength > litlen)
-    context.message(ParserMessages::normalizedAttributeValueLength,
-		    NumberMessageArg(litlen),
-		    NumberMessageArg(normalizedLength));
-  return new TokenizedAttributeValue(text, spaceIndex);
-}
-
-Boolean TokenizedAttributeValue::recoverUnquoted(const StringC &str,
-						 const Location &strLoc,
-						 AttributeContext &context,
-						 const StringC &name)
-{
-  TextIter iter(text_);
-  TextItem::Type type;
-  const Char *s;
-  size_t len;
-  const Location *loc;
-  if (iter.next(type, s, len, loc)
-      && type == TextItem::data
-      && len == text_.size()
-      && loc->origin().pointer() == strLoc.origin().pointer()
-      && loc->index() + len == strLoc.index()
-      && !iter.next(type, s, len, loc)) {
-    context.Messenger::setNextLocation(strLoc);
-    context.message(ParserMessages::attributeValueChar,
-		    StringMessageArg(StringC(str.data(), 1)),
-		    StringMessageArg(name));
-    return 1;
-  }
-  return 0;
-}
-
-void TokenizedDeclaredValue::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  desc.declaredValue = AttributeDefinitionDesc::DeclaredValue(
-    type_ - name + (isList_
-		    ? AttributeDefinitionDesc::names
-		    : AttributeDefinitionDesc::name));
-}
-
-DeclaredValue *TokenizedDeclaredValue::copy() const
-{
-  return new TokenizedDeclaredValue(*this);
-}
-
-GroupDeclaredValue::GroupDeclaredValue(TokenType type,
-				       Vector<StringC> &vec)
-: TokenizedDeclaredValue(type, 0)
-{
-  vec.swap(allowedValues_);
-}
-
-void GroupDeclaredValue::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  desc.allowedValues = allowedValues_;
-}
-
-DeclaredValue *GroupDeclaredValue::copy() const
-{
-  return new GroupDeclaredValue(*this);
-}
-
-AttributeValue *GroupDeclaredValue::makeValue(Text &text,
-					      AttributeContext &context,
-					      const StringC &LOCALname,
-					      unsigned &specLength) const
-{
-  TokenizedAttributeValue *val = makeTokenizedValue(text, context, LOCALname,
-						    specLength);
-  if (!val || !context.validate())
-    return val;
-  for (size_t i = 0; i < allowedValues_.size(); i++)
-    if (val->string() == allowedValues_[i])
-      return val;
-  context.message(ParserMessages::attributeValueNotInGroup,
-		  StringMessageArg(val->string()),
-		  StringMessageArg(LOCALname),
-		  StringVectorMessageArg(allowedValues_));
-  return val;
-}
-
-AttributeValue *GroupDeclaredValue::makeValueFromToken(Text &text,
-						       AttributeContext &context,
-						       const StringC &,
-						       unsigned &specLength)
-     const
-{
-  const Syntax &syntax = context.attributeSyntax();
-  size_t litlen = syntax.litlen();
-  size_t normsep = syntax.normsep();
-  if (normsep > litlen || text.size() >  litlen - normsep)
-    context.message(ParserMessages::normalizedAttributeValueLength,
-		    NumberMessageArg(litlen),
-		    NumberMessageArg(text.size() + normsep));
-  specLength += text.size() + normsep;
-  return new TokenizedAttributeValue(text, Vector<size_t>());
-}
-
-Boolean GroupDeclaredValue::containsToken(const StringC &token) const
-{
-  for (size_t i = 0; i < allowedValues_.size(); i++)
-    if (allowedValues_[i] == token)
-      return 1;
-  return 0;
-}
-
-const Vector<StringC> *GroupDeclaredValue::getTokens() const
-{
-  return &allowedValues_;
-}
-
-NameTokenGroupDeclaredValue::NameTokenGroupDeclaredValue(Vector<StringC> &vec)
-: GroupDeclaredValue(nameToken, vec)
-{
-}
-
-void NameTokenGroupDeclaredValue::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  GroupDeclaredValue::buildDesc(desc);
-  desc.declaredValue = AttributeDefinitionDesc::nameTokenGroup;
-}
-
-DeclaredValue *NameTokenGroupDeclaredValue::copy() const
-{
-  return new NameTokenGroupDeclaredValue(*this);
-}
-
-NotationDeclaredValue::NotationDeclaredValue(Vector<StringC> &vec)
-: GroupDeclaredValue(name, vec)
-{
-}
-
-Boolean NotationDeclaredValue::isNotation() const
-{
-  return 1;
-}
-
-AttributeSemantics *
-NotationDeclaredValue::makeSemantics(const TokenizedAttributeValue &value,
-				     AttributeContext &context,
-				     const StringC &,
-				     unsigned &,
-				     unsigned &) const
-{
-  ConstPtr<Notation> notation
-    = context.getAttributeNotation(value.string(),
-				   value.tokenLocation(0));
-  if (notation.isNull()) {
-    if (context.validate()) {
-      context.setNextLocation(value.tokenLocation(0));
-      context.message(ParserMessages::invalidNotationAttribute,
-		      StringMessageArg(value.string()));
-    }
-    return 0;
-  }
-  return new NotationAttributeSemantics(notation);
-}
-
-void NotationDeclaredValue::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  GroupDeclaredValue::buildDesc(desc);
-  desc.declaredValue = AttributeDefinitionDesc::notation;
-}
-
-DeclaredValue *NotationDeclaredValue::copy() const
-{
-  return new NotationDeclaredValue(*this);
-}
-
-EntityDeclaredValue::EntityDeclaredValue(Boolean isList)
-: TokenizedDeclaredValue(entityName, isList)
-{
-}
-
-Boolean EntityDeclaredValue::isEntity() const
-{
-  return 1;
-}
-
-AttributeSemantics *
-EntityDeclaredValue::makeSemantics(const TokenizedAttributeValue &value,
-				   AttributeContext &context,
-				   const StringC &,
-				   unsigned &,
-				   unsigned &nEntityNames) const
-{
-  Boolean valid = 1;
-  size_t nTokens = value.nTokens();
-  nEntityNames += nTokens;
-  Vector<ConstPtr<Entity> > entities(nTokens);
-  for (size_t i = 0; i < nTokens; i++) {
-    entities[i] = context.getAttributeEntity(value.token(i),
-					     value.tokenLocation(i));
-    if (entities[i].isNull()) {
-      if (context.validate()) {
-	context.setNextLocation(value.tokenLocation(i));
-	context.message(ParserMessages::invalidEntityAttribute,
-		        StringMessageArg(value.token(i)));
-      }
-      valid = 0;
-    }
-    else if (!entities[i]->isDataOrSubdoc()) {
-      if (context.validate()) {
-        context.Messenger::setNextLocation(value.tokenLocation(i));
-        context.message(ParserMessages::notDataOrSubdocEntity,
-		        StringMessageArg(value.token(i)));
-      }
-      valid = 0;
-    }
-  }
-  if (valid)
-    return new EntityAttributeSemantics(entities);
-  else
-    return 0;
-}
-
-DeclaredValue *EntityDeclaredValue::copy() const
-{
-  return new EntityDeclaredValue(*this);
-}
-
-IdDeclaredValue::IdDeclaredValue()
-: TokenizedDeclaredValue(name, 0)
-{
-}
-
-Boolean IdDeclaredValue::isId() const
-{
-  return 1;
-}
-
-AttributeSemantics *
-IdDeclaredValue::makeSemantics(const TokenizedAttributeValue &value,
-			       AttributeContext &context,
-			       const StringC &,
-			       unsigned &,
-			       unsigned &) const
-{
-  Location prevLoc;
-  if (!context.defineId(value.string(), value.tokenLocation(0), prevLoc)) {
-    context.setNextLocation(value.tokenLocation(0));
-    context.message(ParserMessages::duplicateId,
-		    StringMessageArg(value.string()),
-		    prevLoc);
-  }
-  return 0;
-}
-
-void IdDeclaredValue::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  desc.declaredValue = AttributeDefinitionDesc::id;
-}
-
-DeclaredValue *IdDeclaredValue::copy() const
-{
-  return new IdDeclaredValue(*this);
-}
-
-IdrefDeclaredValue::IdrefDeclaredValue(Boolean isList)
-: TokenizedDeclaredValue(name, isList)
-{
-}
-
-AttributeSemantics *
-IdrefDeclaredValue::makeSemantics(const TokenizedAttributeValue &value,
-				  AttributeContext &context,
-				  const StringC &,
-				  unsigned &nIdrefs,
-				  unsigned &) const
-{
-  size_t nTokens = value.nTokens();
-  nIdrefs += nTokens;
-  for (size_t i = 0; i < nTokens; i++)
-    context.noteIdref(value.token(i), value.tokenLocation(i));
-  return 0;
-}
-
-Boolean IdrefDeclaredValue::isIdref() const
-{
-  return 1;
-}
-
-void IdrefDeclaredValue::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  TokenizedDeclaredValue::buildDesc(desc);
-  if (desc.declaredValue == AttributeDefinitionDesc::name)
-    desc.declaredValue = AttributeDefinitionDesc::idref;
-  else
-    desc.declaredValue = AttributeDefinitionDesc::idrefs;
-}
-
-DeclaredValue *IdrefDeclaredValue::copy() const
-{
-  return new IdrefDeclaredValue(*this);
-}
-
-
-AttributeDefinition::AttributeDefinition(const StringC &name,
-					 DeclaredValue *value)
-: name_(name), declaredValue_(value)
-{
-}
-
-AttributeDefinition::~AttributeDefinition()
-{
-}
-
-AttributeValue *AttributeDefinition::checkValue(AttributeValue *p,
-						AttributeContext &) const
-{
-  return p;
-}
-
-Boolean AttributeDefinition::missingValueWouldMatch(const Text &,
-						    const AttributeContext &) const
-{
-  return 0;
-}
-
-const AttributeValue *
-AttributeDefinition::defaultValue(const AttributeValue *) const
-{
-  return 0;
-}
-
-void AttributeDefinition::getDesc(AttributeDefinitionDesc &desc) const
-{
-  desc.allowedValues.clear();
-  desc.defaultValue.clear();
-  desc.currentIndex = 0;
-  buildDesc(desc);
-  declaredValue_->buildDesc(desc);
-}
-
-Boolean AttributeDefinition::isConref() const
-{
-  return 0;
-}
-
-Boolean AttributeDefinition::isCurrent() const
-{
-  return 0;
-}
-
-Boolean AttributeDefinition::isFixed() const
-{
-  return 0;
-}
-
-RequiredAttributeDefinition::RequiredAttributeDefinition(const StringC &name,
-							 DeclaredValue *value)
-: AttributeDefinition(name, value)
-{
-}
-
-ConstPtr<AttributeValue>
-RequiredAttributeDefinition::makeMissingValue(AttributeContext &context) const
-{
-  if (context.validate())
-    context.message(ParserMessages::requiredAttributeMissing,
-		    StringMessageArg(name()));
-  return 0;
-}
-
-void RequiredAttributeDefinition::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  desc.defaultValueType = AttributeDefinitionDesc::required;
-}
-
-AttributeDefinition *RequiredAttributeDefinition::copy() const
-{
-  return new RequiredAttributeDefinition(*this);
-}
-
-CurrentAttributeDefinition::CurrentAttributeDefinition(const StringC &name, DeclaredValue *value, size_t index)
-: AttributeDefinition(name, value), currentIndex_(index)
-{
-}
-
-ConstPtr<AttributeValue>
-CurrentAttributeDefinition::makeMissingValue(AttributeContext &context) const
-{
-  if (context.mayDefaultAttribute()) {
-    ConstPtr<AttributeValue> currentValue
-      = context.getCurrentAttribute(currentIndex_);
-    if (currentValue.isNull() && context.validate())
-      context.message(ParserMessages::currentAttributeMissing,
-		      StringMessageArg(name()));
-    return currentValue;
-  }
-  if (context.validate())
-    context.message(ParserMessages::attributeMissing,
-		    StringMessageArg(name()));
-  return 0;
-}
-
-Boolean CurrentAttributeDefinition::missingValueWouldMatch(const Text &text,
-							   const AttributeContext &context) const
-{
-  if (!context.mayDefaultAttribute())
-    return 0;
-  ConstPtr<AttributeValue> currentValue
-    = context.getCurrentAttribute(currentIndex_);
-  if (currentValue.isNull())
-    return 0;
-  return text.fixedEqual(*currentValue->text());
-}
-
-AttributeValue *
-CurrentAttributeDefinition::checkValue(AttributeValue *value,
-				       AttributeContext &context) const
-{
-  context.noteCurrentAttribute(currentIndex_, value);
-  return value;
-}
-
-void CurrentAttributeDefinition::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  desc.defaultValueType = AttributeDefinitionDesc::current;
-  desc.currentIndex = currentIndex_;
-}
-
-AttributeDefinition *CurrentAttributeDefinition::copy() const
-{
-  return new CurrentAttributeDefinition(*this);
-}
-
-Boolean CurrentAttributeDefinition::isCurrent() const
-{
-  return 1;
-}
-
-ImpliedAttributeDefinition::ImpliedAttributeDefinition(const StringC &name,
-						       DeclaredValue *value)
-: AttributeDefinition(name, value)
-{
-}
-
-ConstPtr<AttributeValue>
-ImpliedAttributeDefinition::makeMissingValue(AttributeContext &context) const
-{
-  return context.makeImpliedAttributeValue();
-}
-
-void ImpliedAttributeDefinition::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  desc.defaultValueType = AttributeDefinitionDesc::implied;
-}
-
-AttributeDefinition *ImpliedAttributeDefinition::copy() const
-{
-  return new ImpliedAttributeDefinition(*this);
-}
-
-const AttributeValue *
-ImpliedAttributeDefinition::defaultValue(const AttributeValue *impliedValue)
-     const
-{
-  return impliedValue;
-}
-
-ConrefAttributeDefinition::ConrefAttributeDefinition(const StringC &name,
-						     DeclaredValue *value)
-: ImpliedAttributeDefinition(name, value)
-{
-}
-
-Boolean ConrefAttributeDefinition::isConref() const
-{
-  return 1;
-}
-
-void ConrefAttributeDefinition::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  desc.defaultValueType = AttributeDefinitionDesc::conref;
-}
-
-AttributeDefinition *ConrefAttributeDefinition::copy() const
-{
-  return new ConrefAttributeDefinition(*this);
-}
-
-DefaultAttributeDefinition::DefaultAttributeDefinition(const StringC &name,
-							DeclaredValue *declaredValue,
-							AttributeValue *defaultValue)
-: AttributeDefinition(name, declaredValue),
-  value_(defaultValue)
-{
-}
-
-ConstPtr<AttributeValue>
-DefaultAttributeDefinition::makeMissingValue(AttributeContext &context) const
-{
-  if (context.mayDefaultAttribute())
-    return value_;
-  if (context.validate())
-    context.message(ParserMessages::attributeMissing,
-		    StringMessageArg(name()));
-  return 0;
-}
-
-Boolean DefaultAttributeDefinition::missingValueWouldMatch(const Text &text,
-							   const AttributeContext &context) const
-{
-  return context.mayDefaultAttribute() && text.fixedEqual(*value_->text());
-}
-
-void DefaultAttributeDefinition::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  desc.defaultValueType = AttributeDefinitionDesc::defaulted;
-  desc.defaultValue = value_;
-}
-
-AttributeDefinition *DefaultAttributeDefinition::copy() const
-{
-  return new DefaultAttributeDefinition(*this);
-}
-
-FixedAttributeDefinition:: FixedAttributeDefinition(const StringC &name,
-						    DeclaredValue *declaredValue,
-						    AttributeValue *defaultValue)
-: DefaultAttributeDefinition(name, declaredValue, defaultValue)
-{
-}
-
-Boolean FixedAttributeDefinition::isFixed() const
-{
-  return 1;
-}
-
-AttributeValue *FixedAttributeDefinition::checkValue(AttributeValue *value,
-						     AttributeContext &context)
-     const
-{
-  const AttributeValue *fixedValue
-    = DefaultAttributeDefinition::defaultValue(0);
-  if (value && fixedValue && context.validate()) {
-    const Text *text;
-    const StringC *str;
-    const Text *fixedText;
-    const StringC *fixedStr;
-    switch (value->info(text, str)) {
-    case AttributeValue::implied:
-      CANNOT_HAPPEN();
-    case AttributeValue::cdata:
-      if (fixedValue->info(fixedText, fixedStr) == AttributeValue::cdata) {
-	if (!text->fixedEqual(*fixedText))
-	  context.message(ParserMessages::notFixedValue, StringMessageArg(name()));
-      }
-      break;
-    case AttributeValue::tokenized:
-      if (fixedValue->info(fixedText, fixedStr) == AttributeValue::tokenized) {
-	if (*str != *fixedStr)
-	  context.message(ParserMessages::notFixedValue, StringMessageArg(name()));
-      }
-      break;
-    }
-  }
-  return value;
-}
-
-void FixedAttributeDefinition::buildDesc(AttributeDefinitionDesc &desc) const
-{
-  // get the fixed value
-  DefaultAttributeDefinition::buildDesc(desc);
-  desc.defaultValueType = AttributeDefinitionDesc::fixed;
-}
-
-AttributeDefinition *FixedAttributeDefinition::copy() const
-{
-  return new FixedAttributeDefinition(*this);
-}
-
-AttributeDefinitionList
-::AttributeDefinitionList(Vector<CopyOwner<AttributeDefinition> > &vec,
-			  size_t index,
-			  Boolean anyCurrent,
-			  size_t idIndex,
-			  size_t notationIndex)
-: index_(index), anyCurrent_(anyCurrent), idIndex_(idIndex),
-  notationIndex_(notationIndex)
-{
-  defs_.swap(vec);
-}
-
-AttributeDefinitionList:: AttributeDefinitionList(const ConstPtr<AttributeDefinitionList> &def)
-: prev_(def), index_(size_t(-1))
-{
-  if (def.isNull()) {
-    anyCurrent_ = 0;
-    notationIndex_ = size_t(-1);
-    idIndex_ = size_t(-1);
-  }
-  else {
-    anyCurrent_ = def->anyCurrent_;
-    notationIndex_ = def->notationIndex_;
-    idIndex_ = def->idIndex_;
-    defs_ = def->defs_;
-  }
-}
-
-Boolean AttributeDefinitionList::tokenIndex(const StringC &token, unsigned &index) const
-{
-  for (size_t i = 0; i < defs_.size(); i++)
-    if (defs_[i]->containsToken(token)) {
-      index = i;
-      return 1;
-    }
-  return 0;
-}
-
-Boolean AttributeDefinitionList::tokenIndexUnique(const StringC &token, unsigned i) const
-{
-  for (++i; i < defs_.size(); i++)
-    if (defs_[i]->containsToken(token))
-      return 0;
-  return 1;
-}
-
-
-Boolean AttributeDefinitionList::attributeIndex(const StringC &name,
-						unsigned &index) const
-{
-  for (size_t i = 0; i < defs_.size(); i++)
-    if (defs_[i]->name() == name) {
-      index = i;
-      return 1;
-    }
-  return 0;
-}
-
-void AttributeDefinitionList::append(AttributeDefinition *def)
-{
-  if (def->isId() && idIndex_ == size_t(-1))
-    idIndex_ = defs_.size();
-  if (def->isNotation() && notationIndex_ == size_t(-1))
-    notationIndex_ = defs_.size();
-  if (def->isCurrent())
-    anyCurrent_ = 1;
-  defs_.resize(defs_.size() + 1);
-  defs_.back() = def;
-}
-
-AttributeSemantics::AttributeSemantics()
-{
-}
-
-AttributeSemantics::~AttributeSemantics()
-{
-}
-
-size_t AttributeSemantics::nEntities() const
-{
-  return 0;
-}
-
-ConstPtr<Entity> AttributeSemantics::entity(size_t) const
-{
-  return 0;
-}
-
-ConstPtr<Notation> AttributeSemantics::notation() const
-{
-  return 0;
-}
-
-
-NotationAttributeSemantics::NotationAttributeSemantics(const ConstPtr<Notation> &notation)
-: notation_(notation)
-{
-}
-
-ConstPtr<Notation> NotationAttributeSemantics::notation() const
-{
-  return notation_;
-}
-
-AttributeSemantics *NotationAttributeSemantics::copy() const
-{
-  return new NotationAttributeSemantics(*this);
-}
-
-EntityAttributeSemantics::EntityAttributeSemantics(Vector<ConstPtr<Entity> > &entity)
-{
-  entity.swap(entity_);
-}
-
-size_t EntityAttributeSemantics::nEntities() const
-{
-  return entity_.size();
-}
-
-ConstPtr<Entity> EntityAttributeSemantics::entity(size_t i) const
-{
-  return entity_[i];
-}
-
-AttributeSemantics *EntityAttributeSemantics::copy() const
-{
-  return new EntityAttributeSemantics(*this);
-}
-
-AttributeValue::AttributeValue()
-{
-}
-
-AttributeValue::~AttributeValue()
-{
-}
-
-AttributeSemantics *AttributeValue::makeSemantics(const DeclaredValue *,
-						  AttributeContext &,
-						  const StringC &,
-						  unsigned &,
-						  unsigned &) const
-{
-  return 0;
-}
-
-const Text *AttributeValue::text() const
-{
-  return 0;
-}
-
-Boolean AttributeValue::recoverUnquoted(const StringC &, const Location &,
-					AttributeContext &, const StringC &)
-{
-  return 0;
-}
-
-ImpliedAttributeValue::ImpliedAttributeValue()
-{
-}
-
-AttributeValue::Type ImpliedAttributeValue::info(const Text *&,
-						 const StringC *&) const
-{
-  return implied;
-}
-
-TokenizedAttributeValue::TokenizedAttributeValue(Text &text,
-						 const Vector<size_t> &spaceIndex)
-: spaceIndex_(spaceIndex)
-{
-  text.swap(text_);
-}
-
-AttributeValue::Type TokenizedAttributeValue::info(const Text *&,
-						   const StringC *&string) const
-{
-  string = &text_.string();
-  return tokenized;
-}
-
-const Text *TokenizedAttributeValue::text() const
-{
-  return &text_;
-}
-
-AttributeSemantics *
-TokenizedAttributeValue::makeSemantics(const DeclaredValue *value,
-				       AttributeContext &context,
-				       const StringC &name,
-				       unsigned &nIdrefs,
-				       unsigned &nEntityNames) const
-{
-  if (text_.size() == 0)
-    return 0;
-  return value->makeSemantics(*this, context, name, nIdrefs, nEntityNames);
-}
-
-CdataAttributeValue::CdataAttributeValue(Text &text)
-{
-  text.swap(text_);
-}
-
-AttributeValue::Type CdataAttributeValue::info(const Text *&text,
-					       const StringC *&) const
-{
-  text = &text_;
-  return cdata;
-}
-
-const Text *CdataAttributeValue::text() const
-{
-  return &text_;
-}
-
-Boolean CdataAttributeValue::recoverUnquoted(const StringC &str,
-					     const Location &strLoc,
-					     AttributeContext &context,
-					     const StringC &)
-{
-  TextIter iter(text_);
-  TextItem::Type type;
-  const Char *s;
-  size_t len;
-  const Location *loc;
-  if (iter.next(type, s, len, loc)
-      && type == TextItem::data
-      && len == text_.size()
-      && loc->origin().pointer() == strLoc.origin().pointer()
-      && loc->index() + len == strLoc.index()
-      && !iter.next(type, s, len, loc)) {
-    text_.addChars(str, strLoc);
-    context.Messenger::setNextLocation(strLoc);
-    context.message(ParserMessages::unquotedAttributeValue);
-    return 1;
-  }
-  return 0;
-}
-
-Attribute::Attribute()
-: specIndexPlus_(0)
-{
-}
-
-void Attribute::clear()
-{
-  specIndexPlus_ = 0;
-  value_.clear();
-  semantics_.clear();
-}
-
-AttributeList::AttributeList(const ConstPtr<AttributeDefinitionList> &def)
-: def_(def), vec_(def.isNull() ? 0 : def->size()), nSpec_(0), conref_(0),
-  nIdrefs_(0), nEntityNames_(0)
-{
-}
-
-AttributeList::AttributeList()
-: nSpec_(0), conref_(0)
-{
-}
-
-void AttributeList::init(const ConstPtr<AttributeDefinitionList> &def)
-{
-  def_ = def;
-  nSpec_ = 0;
-  conref_ = 0;
-  nIdrefs_ = 0;
-  nEntityNames_ = 0;
-  if (def_.isNull())
-    vec_.resize(0);
-  else {
-    size_t newLength = def_->size();
-    size_t clearLim = vec_.size();
-    if (clearLim > newLength)
-      clearLim = newLength;
-    vec_.resize(newLength);
-    for (size_t i = 0; i < clearLim; i++)
-      vec_[i].clear();
-  }
-}
-
-void AttributeList::changeDef(const ConstPtr<AttributeDefinitionList> &def)
-{
-  vec_.resize(def.isNull() ? 0 : def->size());
-  def_ = def;
-}
-
-void AttributeList::swap(AttributeList &to)
-{
-  vec_.swap(to.vec_);
-  def_.swap(to.def_);
-  {
-    unsigned tem = to.nIdrefs_;
-    to.nIdrefs_ = nIdrefs_;
-    nIdrefs_ = tem;
-  }
-  {
-    unsigned tem = to.nEntityNames_;
-    to.nEntityNames_ = nEntityNames_;
-    nEntityNames_ = tem;
-  }
-  {
-    size_t tem = to.nSpec_;
-    to.nSpec_ = nSpec_;
-    nSpec_ = tem;
-  }
-  {
-    PackedBoolean tem = to.conref_;
-    to.conref_ = conref_;
-    conref_ = tem;
-  }
-}
-
-void AttributeList::finish(AttributeContext &context)
-{
-  for (size_t i = 0; i < vec_.size(); i++)
-    if (!vec_[i].specified()) {
-      ConstPtr<AttributeValue> value
-	= def(i)->makeMissingValue(context);
-      vec_[i].setValue(value);
-      if (!value.isNull())
-	vec_[i].setSemantics(def(i)->makeSemantics(value.pointer(),
-						   context,
-						   nIdrefs_,
-						   nEntityNames_));
-    }
-  const Syntax &syntax = context.attributeSyntax();
-  if (nIdrefs_ > syntax.grpcnt())
-    context.message(ParserMessages::idrefGrpcnt,
-		   NumberMessageArg(syntax.grpcnt()));
-  if (nEntityNames_ > syntax.grpcnt())
-    context.message(ParserMessages::entityNameGrpcnt,
-		   NumberMessageArg(syntax.grpcnt()));
-  if (context.validate()
-      && conref_
-      && def_->notationIndex() != size_t(-1)
-      && specified(def_->notationIndex()))
-    context.message(ParserMessages::conrefNotation);
-}
-
-void AttributeList::setSpec(unsigned i, AttributeContext &context)
-{
-  if (vec_[i].specified())
-    context.message(ParserMessages::duplicateAttributeSpec,
-		   StringMessageArg(def(i)->name()));
-  else
-    vec_[i].setSpec(nSpec_++);
-}
-
-void AttributeList::noteInvalidSpec()
-{
-  // This is needed for error recovery.
-  // We don't want nSpec_ to be > 0, if there is no attribute definition.
-  if (nSpec_)
-    nSpec_++;
-}
-
-Boolean AttributeList::setValue(unsigned i, Text &text,
-				AttributeContext &context,
-				unsigned &specLength)
-{
-  AttributeValue *value = def(i)->makeValue(text, context, specLength);
-  if (def(i)->isConref())
-    conref_ = 1;
-  vec_[i].setValue(value);
-  if (value)
-    vec_[i].setSemantics(def(i)->makeSemantics(value, context,
-					       nIdrefs_, nEntityNames_));
-  else if (AttributeValue::handleAsUnterminated(text, context))
-    return 0;
-  return 1;
-}
-
-void AttributeList::setValueToken(unsigned i, Text &text,
-				  AttributeContext &context,
-				  unsigned &specLength)
-{
-  AttributeValue *value = def(i)->makeValueFromToken(text, context,
-						     specLength);
-  if (def(i)->isConref())
-    conref_ = 1;
-  vec_[i].setValue(value);
-  if (value)
-    vec_[i].setSemantics(def(i)->makeSemantics(value, context,
-					       nIdrefs_, nEntityNames_));
-}
-
-const StringC *AttributeList::getId() const
-{
-  // Check for no attributes
-  if (def_.isNull())
-    return 0;
-  // Check for no ID declared
-  size_t i = def_->idIndex();
-  if (i == size_t(-1))
-    return 0;
-  // Check for invalid value
-  const AttributeValue *v = value(i);
-  if (!v)
-    return 0;
-  // Check for implied value
-  const Text *t = v->text();
-  if (!t)
-    return 0;
-  return &t->string();
-}
-
-Boolean AttributeList::recoverUnquoted(const StringC &str,
-				       const Location &strLoc,
-				       AttributeContext &context)
-{
-  if (nSpec_ > 0) {
-    for (size_t i = 0; i < vec_.size(); i++)
-      if (vec_[i].specified() && vec_[i].specIndex() == nSpec_ - 1) {
-	const AttributeValue *val = vec_[i].value();
-	if (val)
-	  // I wish I could avoid casting away const here.
-	  return ((AttributeValue *)val)->recoverUnquoted(str, strLoc, context,
-							  name(i));
-	break;
-      }
-    return 1;
-  }
-  return 0;
-}
-
-Boolean AttributeList::handleAsUnterminated(AttributeContext &context)
-{
-  if (nSpec_ > 0) {
-    for (size_t i = 0; i < vec_.size(); i++) {
-      if (vec_[i].specified() && vec_[i].specIndex() == nSpec_ - 1) {
-	const AttributeValue *val = vec_[i].value();
-	const Text *ptr;
-	if (val && (ptr = val->text()) != 0
-	    && AttributeValue::handleAsUnterminated(*ptr, context))
-	  return 1;
-	break;
-      }
-    }
-  }
-  return 0;
-}
-
-// This tries to guess this attribute value looks like if it had
-// a missing ending quote.
-
-Boolean AttributeValue::handleAsUnterminated(const Text &text,
-					     AttributeContext &context)
-{
-  TextIter iter(text);
-  const Char *lastStr = 0;
-  size_t lastLen;
-  Location startLoc;
-  const Location *loc;
-  TextItem::Type type;
-  const Char *str;
-  size_t len;
-  while (iter.next(type, str, len, loc)) {
-    if (startLoc.origin().isNull() && !loc->origin().isNull())
-      startLoc = *loc;
-    switch (type) {
-    case TextItem::data:
-      if (len != 1 || *str != context.attributeSyntax().space()) {
-	lastStr = str;
-	lastLen = len;
-      }
-      break;
-    case TextItem::endDelim:
-    case TextItem::endDelimA:
-    case TextItem::ignore:
-      break;
-    default:
-      lastStr = 0;
-      break;
-    }
-  }
-  if (lastStr) {
-    while (lastLen > 0
-	   && lastStr[lastLen - 1] == context.attributeSyntax().space())
-      lastLen--;
-    const StringC &vi = context.attributeSyntax().delimGeneral(Syntax::dVI);
-    if (lastLen >= vi.size()
-	&& (vi
-	    == StringC(lastStr + (lastLen - vi.size()), vi.size()))) {
-      context.Messenger::setNextLocation(startLoc);
-      context.message(ParserMessages::literalClosingDelimiter);
-      return 1;
-    }
-  }
-  return 0;
-}
-
-AttributeContext::AttributeContext()
-: mayDefaultAttribute_(0), validate_(1)
-{
-}
-
-AttributeContext::~AttributeContext()
-{
-}
-
-Boolean AttributeContext::defineId(const StringC &, const Location &,
-				   Location &)
-{
-  return 1;
-}
-
-void AttributeContext::noteIdref(const StringC &, const Location &)
-{
-}
-
-void AttributeContext::noteCurrentAttribute(size_t, AttributeValue *)
-{
-}
-
-ConstPtr<AttributeValue> AttributeContext::getCurrentAttribute(size_t) const
-{
-  return 0;
-}
-
-ConstPtr<Entity> AttributeContext::getAttributeEntity(const StringC &,
-						      const Location &)
-{
-  return 0;
-}
-
-ConstPtr<Notation> AttributeContext::getAttributeNotation(const StringC &,
-							  const Location &)
-{
-  return 0;
-}
-
-ConstPtr<AttributeValue> AttributeContext::makeImpliedAttributeValue()
-{
-  if (impliedAttributeValue_.isNull())
-    impliedAttributeValue_ = new ImpliedAttributeValue;
-  return impliedAttributeValue_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Big5CodingSystem.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-
-#ifdef SP_MULTI_BYTE
-
-#include "Big5CodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Big5Decoder : public Decoder {
-public:
-  Big5Decoder() { }
-  size_t decode(Char *, const char *, size_t, const char **);
-private:
-};
-
-class Big5Encoder : public Encoder {
-public:
-  Big5Encoder() { }
-  void output(const Char *, size_t, OutputByteStream *);
-  void output(Char *tmp_char, size_t tmp_size_t, OutputByteStream *tmp_obs) {
-        output((const Char *)tmp_char, (size_t) tmp_size_t, (OutputByteStream *)tmp_obs);
-  }
-
-};
-
-Decoder *Big5CodingSystem::makeDecoder() const
-{
-  return new Big5Decoder;
-}
-
-Encoder *Big5CodingSystem::makeEncoder() const
-{
-  return new Big5Encoder;
-}
-
-size_t Big5Decoder::decode(Char *to, const char *s,
-			   size_t slen, const char **rest)
-{
-  Char *start = to;
-  const unsigned char *us = (const unsigned char *)s;
-  while (slen > 0) {
-    if (!(*us & 0x80)) {
-      *to++ = *us++;
-      slen--;
-    }
-    else {
-      if (slen < 2)
-	break;
-      slen -= 2;
-      unsigned short n = *us++ << 8;
-      n |= *us++;
-      *to++ = n;
-    }
-  }
-  *rest = (const char *)us;
-  return to - start;
-}
-
-void Big5Encoder::output(const Char *s, size_t n, OutputByteStream *sb)
-{
-  for (; n > 0; s++, n--) {
-    Char c = *s;
-    if (c < 0x80)
-      sb->sputc((unsigned char)c);
-    else if (c & 0x8000) {
-      sb->sputc((unsigned char)(c >> 8));
-      sb->sputc((unsigned char)(c & 0xff));
-    }
-    else
-      handleUnencodable(c, sb);
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#else /* not SP_MULTI_BYTE */
-
-#ifndef __GNUG__
-static char non_empty_translation_unit;	// sigh
-#endif
-
-#endif /* not SP_MULTI_BYTE */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/CatalogEntry.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef CatalogEntry_INCLUDED
-#define CatalogEntry_INCLUDED 1
-
-#include "Location.h"
-#include "StringC.h"
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct CatalogEntry {
-  StringC to;
-  Location loc;
-  size_t catalogNumber;
-  size_t baseNumber;
-  size_t serial;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not CatalogEntry_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/CatalogMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-// This file was automatically generated from lib\CatalogMessages.msg by msggen.pl.
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct CatalogMessages {
-  // 2100
-  static const MessageType0 nameExpected;
-  // 2101
-  static const MessageType0 literalExpected;
-  // 2102
-  static const MessageType0 nameOrLiteralExpected;
-  // 2103
-  static const MessageType0 nulChar;
-  // 2104
-  static const MessageType0 minimumData;
-  // 2105
-  static const MessageType0 eofInComment;
-  // 2106
-  static const MessageType0 eofInLiteral;
-  // 2107
-  static const MessageType0 overrideYesOrNo;
-  // 2108
-  static const MessageType0 inLoop;
-  // 2109
-  static const MessageType0 systemShouldQuote;
-  // 2110
-  static const MessageType1 noDocumentEntry;
-  // 2111
-  static const MessageType2 noPublicEntry;
-  // 2112
-  static const MessageType0 dtddeclNotSupported;
-};
-const MessageType0 CatalogMessages::nameExpected(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2100
-#ifndef SP_NO_MESSAGE_TEXT
-,"name expected"
-#endif
-);
-const MessageType0 CatalogMessages::literalExpected(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2101
-#ifndef SP_NO_MESSAGE_TEXT
-,"literal expected"
-#endif
-);
-const MessageType0 CatalogMessages::nameOrLiteralExpected(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2102
-#ifndef SP_NO_MESSAGE_TEXT
-,"name or literal expected"
-#endif
-);
-const MessageType0 CatalogMessages::nulChar(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2103
-#ifndef SP_NO_MESSAGE_TEXT
-,"nul character"
-#endif
-);
-const MessageType0 CatalogMessages::minimumData(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2104
-#ifndef SP_NO_MESSAGE_TEXT
-,"not a minimum data character"
-#endif
-);
-const MessageType0 CatalogMessages::eofInComment(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2105
-#ifndef SP_NO_MESSAGE_TEXT
-,"end of entity in comment"
-#endif
-);
-const MessageType0 CatalogMessages::eofInLiteral(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2106
-#ifndef SP_NO_MESSAGE_TEXT
-,"end of entity in literal"
-#endif
-);
-const MessageType0 CatalogMessages::overrideYesOrNo(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2107
-#ifndef SP_NO_MESSAGE_TEXT
-,"OVERRIDE requires argument of YES or NO"
-#endif
-);
-const MessageType0 CatalogMessages::inLoop(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2108
-#ifndef SP_NO_MESSAGE_TEXT
-,"CATALOG entries cause loop"
-#endif
-);
-const MessageType0 CatalogMessages::systemShouldQuote(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2109
-#ifndef SP_NO_MESSAGE_TEXT
-,"second argument for SYSTEM entry should be quoted to avoid ambiguity"
-#endif
-);
-const MessageType1 CatalogMessages::noDocumentEntry(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2110
-#ifndef SP_NO_MESSAGE_TEXT
-,"no DOCUMENT entry in catalog %1"
-#endif
-);
-const MessageType2 CatalogMessages::noPublicEntry(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2111
-#ifndef SP_NO_MESSAGE_TEXT
-,"no entry for public identifier %1 in catalog %2"
-#endif
-);
-const MessageType0 CatalogMessages::dtddeclNotSupported(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2112
-#ifndef SP_NO_MESSAGE_TEXT
-,"DTDDECL catalog entries are not supported"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/CharsetDecl.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "CharsetDecl.h"
-#include "macros.h"
-#include "ISet.h"
-#include "constant.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-CharsetDeclRange::CharsetDeclRange()
-{
-}
-
-CharsetDeclRange::CharsetDeclRange(WideChar descMin, Number count,
-				   WideChar baseMin)
-: descMin_(descMin),
-  count_(count),
-  type_(number),
-  baseMin_(baseMin)
-{
-}
-
-CharsetDeclRange::CharsetDeclRange(WideChar descMin, Number count)
-: descMin_(descMin),
-  count_(count),
-  type_(unused)
-     
-{
-}
-
-CharsetDeclRange::CharsetDeclRange(WideChar descMin, Number count,
-				   const StringC &str)
-: descMin_(descMin),
-  count_(count),
-  type_(string),
-  str_(str)
-{
-}
-
-void CharsetDeclRange::rangeDeclared(WideChar min, Number count,
-				     ISet<WideChar> &declared) const
-{
-  if (count > 0 && min + count > descMin_ && min < descMin_ + count_) {
-    WideChar commMin = (descMin_ > min) ? descMin_ : min;
-    WideChar commMax = min + ((min + count < descMin_ + count_
-			       ? count
-			       : descMin_ + count_ - min) - 1);
-    ASSERT(commMin <= commMax);
-    declared.addRange(commMin, commMax);
-  }
-}
-
-void CharsetDeclRange::usedSet(ISet<Char> &set) const
-{
-  if (type_ != unused && count_ > 0 && descMin_ <= charMax) {
-    Char max;
-    if (charMax - descMin_ < count_ - 1)
-      max = charMax;
-    else
-      max = Char(descMin_ + (count_ - 1));
-    set.addRange(Char(descMin_), max);
-  }
-}
-
-void CharsetDeclRange::stringToChar(const StringC &str, ISet<WideChar> &to)
-     const
-{
-  if (type_ == string && str_ == str && count_ > 0)
-    to.addRange(descMin_, descMin_ + (count_ - 1));
-}
-
-void CharsetDeclRange::numberToChar(Number n, ISet<WideChar> &to,
-				    Number &count)
-     const
-{
-  if (type_ == number && n >= baseMin_ && n - baseMin_ < count_) {
-    Number thisCount = count_ - (n - baseMin_);
-    if (to.isEmpty() || thisCount < count)
-      count = thisCount;
-    to.add(descMin_ + (n - baseMin_));
-  }
-}
-
-Boolean CharsetDeclRange::getCharInfo(WideChar fromChar,
-				      CharsetDeclRange::Type &type,
-				      Number &n,
-				      StringC &str,
-				      Number &count) const
-{
-  if (fromChar >= descMin_ && fromChar - descMin_ < count_) {
-    type = type_;
-    if (type == number)
-      n = baseMin_ + (fromChar - descMin_);
-    else if (type == string)
-      str = str_;
-    count = count_ - (fromChar - descMin_);
-    return 1;
-  }
-  else
-    return 0;
-}
-
-CharsetDeclSection::CharsetDeclSection()
-{
-}
-
-void CharsetDeclSection::setPublicId(const PublicId &id)
-{
-  baseset_ = id;
-}
-
-void CharsetDeclSection::addRange(const CharsetDeclRange &range)
-{
-  ranges_.push_back(range);
-}
-
-void CharsetDeclSection::rangeDeclared(WideChar min, Number count,
-				       ISet<WideChar> &declared) const
-{
-  for (size_t i = 0; i < ranges_.size(); i++)
-    ranges_[i].rangeDeclared(min, count, declared);
-}
-
-void CharsetDeclSection::usedSet(ISet<Char> &set) const
-{
-  for (size_t i = 0; i < ranges_.size(); i++)
-    ranges_[i].usedSet(set);
-}
-
-void CharsetDeclSection::stringToChar(const StringC &str, ISet<WideChar> &to)
-     const
-{
-  for (size_t i = 0; i < ranges_.size(); i++)
-    ranges_[i].stringToChar(str, to);
-}
-
-void CharsetDeclSection::numberToChar(const PublicId *id, Number n,
-				      ISet<WideChar> &to, Number &count) const
-{
-  PublicId::OwnerType ownerType;
-  StringC seq1, seq2;
-  if (id->string() == baseset_.string()
-      // Assume that 2 ISO character sets are the same if
-      // their designating sequences are the same.
-      || (id->getOwnerType(ownerType)
-	  && ownerType == PublicId::ISO
-	  && baseset_.getOwnerType(ownerType)
-	  && ownerType == PublicId::ISO
-	  && id->getDesignatingSequence(seq1)
-	  && baseset_.getDesignatingSequence(seq2)
-	  && seq1 == seq2)) {
-    for (size_t i = 0; i < ranges_.size(); i++)
-      ranges_[i].numberToChar(n, to, count);
-  }
-}
-
-Boolean CharsetDeclSection::getCharInfo(WideChar fromChar,
-					const PublicId *&id,
-					CharsetDeclRange::Type &type,
-					Number &n,
-					StringC &str,
-					Number &count) const
-{
-  for (size_t i = 0; i < ranges_.size(); i++)
-    if (ranges_[i].getCharInfo(fromChar, type, n, str, count)) {
-      id = &baseset_;
-      return 1;
-    }
-  return 0;
-}
-
-CharsetDecl::CharsetDecl()
-{
-}
-
-void CharsetDecl::addSection(const PublicId &id)
-{
-  sections_.resize(sections_.size() + 1);
-  sections_.back().setPublicId(id);
-}
-
-void CharsetDecl::swap(CharsetDecl &to)
-{
-  sections_.swap(to.sections_);
-  declaredSet_.swap(to.declaredSet_);
-}
-
-void CharsetDecl::clear()
-{
-  sections_.clear();
-}
-
-void CharsetDecl::addRange(WideChar min, Number count, WideChar baseMin)
-{
-  if (count > 0)
-    declaredSet_.addRange(min, min + (count - 1));
-  CharsetDeclRange range(min, count, baseMin);
-  sections_.back().addRange(range);
-}
-
-void CharsetDecl::addRange(WideChar min, Number count)
-{
-  if (count > 0)
-    declaredSet_.addRange(min, min + (count - 1));
-  CharsetDeclRange range(min, count);
-  sections_.back().addRange(range);
-}
-
-void CharsetDecl::addRange(WideChar min, Number count, const StringC &str)
-{
-  if (count > 0)
-    declaredSet_.addRange(min, min + (count - 1));
-  CharsetDeclRange range(min, count, str);
-  sections_.back().addRange(range);
-}
-
-void CharsetDecl::rangeDeclared(WideChar min, Number count,
-				ISet<WideChar> &declared) const
-{
-  for (size_t i = 0; i < sections_.size(); i++)
-    sections_[i].rangeDeclared(min, count, declared);
-}
-
-void CharsetDecl::usedSet(ISet<Char> &set) const
-{
-  for (size_t i = 0; i < sections_.size(); i++)
-    sections_[i].usedSet(set);
-}
-
-Boolean CharsetDecl::getCharInfo(WideChar fromChar,
-				 const PublicId *&id,
-				 CharsetDeclRange::Type &type,
-				 Number &n,
-				 StringC &str,
-				 Number &count) const
-{
-  for (size_t i = 0; i < sections_.size(); i++)
-    if (sections_[i].getCharInfo(fromChar, id, type, n, str, count))
-      return 1;
-  return 0;
-}
-
-void CharsetDecl::stringToChar(const StringC &str, ISet<WideChar> &to) const
-{
-  for (size_t i = 0; i < sections_.size(); i++)
-    sections_[i].stringToChar(str, to);
-}
-
-void CharsetDecl::numberToChar(const PublicId *id, Number n,
-			       ISet<WideChar> &to, Number &count) const
-{
-  for (size_t i = 0; i < sections_.size(); i++)
-    sections_[i].numberToChar(id, n, to, count);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/CharsetInfo.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-// Copyright (c) 1994, 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "CharsetInfo.h"
-#include "ISet.h"
-#include "constant.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-CharsetInfo::CharsetInfo(const UnivCharsetDesc &desc)
-: desc_(desc)
-{
-  // FIXME remove mappings from desc for characters greater charMax
-  init();
-}
-
-CharsetInfo::CharsetInfo()
-{
-  inverse_.setAll(unsigned(-1));
-}
-
-void CharsetInfo::set(const UnivCharsetDesc &desc)
-{
-  desc_ = desc;
-  init();
-}
-
-void CharsetInfo::init()
-{
-  inverse_.setAll(Unsigned32(-1));
-
-  UnivCharsetDescIter iter(desc_);
-  
-  WideChar descMin, descMax;
-  UnivChar univMin;
-  while (iter.next(descMin, descMax, univMin)) {
-    if (univMin <= charMax) {
-      Char univMax;
-      if (charMax - univMin < descMax - descMin)
-	univMax = charMax;
-      else
-	univMax = univMin + (descMax - descMin);
-      Unsigned32 diff
-	= ((descMin - univMin) & ((Unsigned32(1) << 31) - 1));
-      for (;;) {
-	Char max;
-	Unsigned32 n = inverse_.getRange(univMin, max);
-	if (max > univMax)
-	  max = univMax;
-	if (n == Unsigned32(-1))
-	  inverse_.setRange(univMin, max, diff);
-	else if (n != Unsigned32(-2))
-	  inverse_.setRange(univMin, max, Unsigned32(-2));
-	if (max == univMax)
-	  break;
-	univMin = max + 1;
-      }
-    }
-  }
-  // These are the characters that the ANSI C
-  // standard guarantees will be in the basic execution
-  // character set.
-  static char execChars[] =
-    "\t\n\r "
-    "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-    "abcdefghijklmnopqrstuvwxyz"
-    "0123456789"
-    "!\"#%&'()*+,-./:"
-    ";<=>?[\\]^_{|}~";
-  // These are the corresponding ISO 646 codes.
-  static char univCodes[] = {
-    9, 10, 13, 32,
-    65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
-    78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
-    97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
-    110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
-    48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-    33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 58,
-    59, 60, 61, 62, 63, 91, 92, 93, 94, 95, 123, 124, 125, 126,
-  };
-  for (size_t i = 0; execChars[i] != '\0'; i++) {
-    WideChar c;
-    ISet<WideChar> set;
-    if (univToDesc(univCodes[i], c, set) > 0 && c <= Char(-1))
-      execToDesc_[(unsigned char)execChars[i]] = Char(c);
-  }
-}
-
-void CharsetInfo::getDescSet(ISet<Char> &set) const
-{
-  UnivCharsetDescIter iter(desc_);
-  WideChar descMin, descMax;
-  UnivChar univMin;
-  while (iter.next(descMin, descMax, univMin)) {
-    if (descMin > charMax)
-      break;
-    if (descMax > charMax)
-      descMax = charMax;
-    set.addRange(Char(descMin), Char(descMax));
-  }
-}
-
-int CharsetInfo::digitWeight(Char c) const
-{
-  for (int i = 0; i < 10; i++)
-    if (c == execToDesc('0' + i))
-      return i;
-  return -1;
-}
-
-int CharsetInfo::hexDigitWeight(Char c) const
-{
-  for (int i = 0; i < 10; i++)
-    if (c == execToDesc('0' + i))
-      return i;
-  for (int i = 0; i < 6; i++)
-    if (c == execToDesc('a' + i) || c == execToDesc('A' + i))
-      return i + 10;
-  return -1;
-}
-
-StringC CharsetInfo::execToDesc(const char *s) const
-{
-  StringC result;
-  while (*s != '\0')
-    result += execToDesc(*s++);
-  return result;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/CharsetRegistry.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,286 +0,0 @@
-// Copyright (c) 1994, 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "CharsetRegistry.h"
-#include "ExternalId.h"
-#include "CharsetInfo.h"
-#include "StringC.h"
-#include "types.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-CharsetRegistry::Iter::~Iter()
-{
-}
-
-class CharsetRegistryRangeIter : public CharsetRegistry::Iter {
-public:
-  CharsetRegistryRangeIter(const UnivCharsetDesc::Range *p, size_t n)
-    : p_(p), n_(n) { }
-  Boolean next(WideChar &min, WideChar &max, UnivChar &univ) {
-    if (n_) {
-      min = p_->descMin;
-      max = p_->descMin + (p_->count - 1);
-      univ = p_->univMin;
-      p_++;
-      n_--;
-      return 1;
-    }
-    else
-      return 0;
-  }
-private:
-  const UnivCharsetDesc::Range *p_;
-  size_t n_;
-};
-
-class CharsetRegistryDescIter : public CharsetRegistry::Iter {
-public:
-  CharsetRegistryDescIter(const unsigned short *p)
-    : p_(p + 2), n_(p[0]), c_(p[1]) { }
-  Boolean next(WideChar &min, WideChar &max, UnivChar &univ) {
-    if (n_ == 0) {
-      n_ = *p_;
-      if (n_ == 0)
-	return 0;
-      p_++;
-      c_ = *p_++;
-    }
-    int i = 1;
-    for (; i < n_; i++)
-      if (p_[i] != p_[i - 1] + 1)
-	break;
-    min = c_;
-    max = min + (i - 1);
-    univ = p_[0];
-    p_ += i;
-    c_ += i;
-    n_ -= i;
-    return 1;
-  }
-private:
-  const unsigned short *p_;
-  size_t n_;
-  WideChar c_;
-};
-
-static struct {
-  const char *esc;
-  CharsetRegistry::ISORegistrationNumber number;
-} escTable[] = {
-  { "\x1B\x25\x40", CharsetRegistry::ISO646_ASCII_G0 },
-  { "\x1B\x28\x40", CharsetRegistry::ISO646_ASCII_G0 },
-  { "\x1B\x28\x42", CharsetRegistry::ISO646_ASCII_G0 }, // ASCII
-  { "\x1B\x21\x40", CharsetRegistry::ISO646_C0 },
-  { "\x1B\x2D\x41", CharsetRegistry::ISO8859_1 },
-  { "\x1B\x2D\x42", CharsetRegistry::ISO8859_2 },
-  { "\x1B\x2D\x43", CharsetRegistry::ISO8859_3 },
-  { "\x1B\x2D\x44", CharsetRegistry::ISO8859_4 },
-  { "\x1B\x2D\x4C", CharsetRegistry::ISO8859_5 },
-  { "\x1B\x2D\x47", CharsetRegistry::ISO8859_6 },
-  { "\x1B\x2D\x46", CharsetRegistry::ISO8859_7 },
-  { "\x1B\x2D\x48", CharsetRegistry::ISO8859_8 },
-  { "\x1B\x2D\x4D", CharsetRegistry::ISO8859_9 },
-  { "\x1B\x28\x4A", CharsetRegistry::ISO646_JIS_G0 },
-  { "\x1B\x28\x49", CharsetRegistry::JIS0201 },
-  { "\x1B\x24\x42", CharsetRegistry::JIS0208 },
-  { "\x1B\x26\x40\x1B\x24\x42", CharsetRegistry::JIS0208 },
-  { "\x1B\x24\x28\x44", CharsetRegistry::JIS0212 },
-  { "\x1B\x24\x41", CharsetRegistry::GB2312 },
-  { "\x1B\x24\x28\x43", CharsetRegistry::KSC5601 },
-  { "\x1B\x25\x2F\x40", CharsetRegistry::ISO10646_UCS2 },
-  { "\x1B\x25\x2F\x41", CharsetRegistry::ISO10646_UCS4 },
-  { "\x1B\x25\x2F\x43", CharsetRegistry::ISO10646_UCS2 },
-  { "\x1B\x25\x2F\x44", CharsetRegistry::ISO10646_UCS4 },
-  { "\x1B\x25\x2F\x45", CharsetRegistry::ISO10646_UCS2 },
-  { "\x1B\x25\x2F\x46", CharsetRegistry::ISO10646_UCS4 },
-};
-
-static const UnivCharsetDesc::Range iso646_ascii[] = {
-  { 0, 128, 0 },
-};
-
-static const UnivCharsetDesc::Range iso646_C0[] = {
-  { 0, 32, 0 },
-  { 127, 1, 127 },
-};
-
-static const UnivCharsetDesc::Range iso6429[] = {
-  { 0, 32, 128 },
-};
-
-static const UnivCharsetDesc::Range iso8859_1[] = {
-  { 32, 96, 160 },
-};
-
-static const UnivCharsetDesc::Range iso10646_ucs2[] = {
-  { 0, 65536, 0 },
-};
-
-static const UnivCharsetDesc::Range iso10646_ucs4[] = {
-  { 0, 0x80000000, 0 },
-};
-
-static struct {
-  CharsetRegistry::ISORegistrationNumber number;
-  const UnivCharsetDesc::Range *ranges;
-  size_t nRanges;
-} rangeTable[] = {
-  { CharsetRegistry::ISO646_ASCII_G0, iso646_ascii, SIZEOF(iso646_ascii) },
-  { CharsetRegistry::ISO646_C0, iso646_C0, SIZEOF(iso646_C0) },
-  { CharsetRegistry::ISO6429, iso6429, SIZEOF(iso6429) },
-  { CharsetRegistry::ISO8859_1, iso8859_1, SIZEOF(iso8859_1) },
-  { CharsetRegistry::ISO10646_UCS2, iso10646_ucs2, SIZEOF(iso10646_ucs2) },
-  { CharsetRegistry::ISO10646_UCS4, iso10646_ucs4, SIZEOF(iso10646_ucs4) },
-};
-
-static const unsigned short iso8859_2[] = {
-#include "iso8859-2.h"
-};
-static const unsigned short iso8859_3[] = {
-#include "iso8859-3.h"
-};
-static const unsigned short iso8859_4[] = {
-#include "iso8859-4.h"
-};
-static const unsigned short iso8859_5[] = {
-#include "iso8859-5.h"
-};
-static const unsigned short iso8859_6[] = {
-#include "iso8859-6.h"
-};
-static const unsigned short iso8859_7[] = {
-#include "iso8859-7.h"
-};
-static const unsigned short iso8859_8[] = {
-#include "iso8859-8.h"
-};
-static const unsigned short iso8859_9[] = {
-#include "iso8859-9.h"
-};
-static const unsigned short iso646_jis_G0[] = {
-#include "iso646-jis.h"
-};
-static const unsigned short jis0201[] = {
-#include "jis0201.h"
-};
-
-#ifdef SP_MULTI_BYTE
-
-static const unsigned short jis0208[] = {
-#include "jis0208.h"
-};
-static const unsigned short jis0212[] = {
-#include "jis0212.h"
-};
-static const unsigned short gb2312[] = {
-#include "gb2312.h"
-};
-static const unsigned short ksc5601[] = {
-#include "ksc5601.h"
-};
-static const unsigned short big5[] = {
-#include "big5.h"
-};
-
-#endif /* SP_MULTI_BYTE */
-
-static const struct {
-  CharsetRegistry::ISORegistrationNumber number;
-  const unsigned short *desc;
-} descTable[] = {
-  { CharsetRegistry::ISO8859_2, iso8859_2 },
-  { CharsetRegistry::ISO8859_3, iso8859_3 },
-  { CharsetRegistry::ISO8859_4, iso8859_4 },
-  { CharsetRegistry::ISO8859_5, iso8859_5 },
-  { CharsetRegistry::ISO8859_6, iso8859_6 },
-  { CharsetRegistry::ISO8859_7, iso8859_7 },
-  { CharsetRegistry::ISO8859_8, iso8859_8 },
-  { CharsetRegistry::ISO8859_9, iso8859_9 },
-  { CharsetRegistry::ISO646_JIS_G0, iso646_jis_G0 },
-  { CharsetRegistry::JIS0201, jis0201 },
-#ifdef SP_MULTI_BYTE
-  { CharsetRegistry::JIS0208, jis0208 },
-  { CharsetRegistry::JIS0212, jis0212 },
-  { CharsetRegistry::GB2312, gb2312 },
-  { CharsetRegistry::KSC5601, ksc5601 },
-  { CharsetRegistry::BIG5, big5 },
-#endif
-};
-
-
-CharsetRegistry::ISORegistrationNumber
-CharsetRegistry::getRegistrationNumber(const StringC &sequence,
-				       const CharsetInfo &charset)
-{
-  // Canonicalize the escape sequence by mapping esc -> ESC,
-  // removing leading zeros from escape sequences, and removing
-  // initial spaces.
-  StringC s;
-  for (size_t i = 0; i < sequence.size(); i++) {
-    Char c = sequence[i];
-    if (c == charset.execToDesc('e'))
-      s += charset.execToDesc('E');
-    else if (c == charset.execToDesc('s'))
-      s += charset.execToDesc('S');
-    else if (c == charset.execToDesc('c'))
-      s += charset.execToDesc('C');
-    else if (charset.digitWeight(c) >= 0
-	     && s.size() > 0
-	     && s[s.size() - 1] == charset.execToDesc('0')
-	     && (s.size() == 1
-		 || charset.digitWeight(s[s.size() - 2]) >= 0))
-      s[s.size() - 1] = c;
-    else if (c != charset.execToDesc(' ') || s.size() > 0)
-      s += c;
-  }
-  for (size_t i = 0; i < SIZEOF(escTable); i++) {
-    StringC esc;
-    for (const char *p = escTable[i].esc; *p; p++) {
-      if (*p == 0x1B)
-	esc += charset.execToDesc("ESC");
-      else {
-	static const char digits[] = "0123456789";
-	int c = (unsigned char)*p >> 4;
-	if (c >= 10)
-	  esc += charset.execToDesc('1');
-	esc += charset.execToDesc(digits[c % 10]);
-	esc += charset.execToDesc('/');
-	c = (*p & 0xf);
-	if (c >= 10)
-	  esc += charset.execToDesc('1');
-	esc += charset.execToDesc(digits[c % 10]);
-      }
-      if (p[1])
-	esc += charset.execToDesc(' ');
-    }
-    if (s == esc)
-      return escTable[i].number;
-  }
-  return UNREGISTERED;
-}
-
-CharsetRegistry::Iter *CharsetRegistry::makeIter(ISORegistrationNumber number)
-{
-  for (size_t i = 0; i < SIZEOF(rangeTable); i++) {
-    if (number == rangeTable[i].number)
-      return new CharsetRegistryRangeIter(rangeTable[i].ranges, rangeTable[i].nRanges);
-  }
-  for (size_t i = 0; i < SIZEOF(descTable); i++) {
-    if (number == descTable[i].number)
-      return new CharsetRegistryDescIter(descTable[i].desc);
-  }
-  return 0;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/CmdLineApp.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,452 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1996 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-// Need option registration method that allows derived class to change
-// option names.
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "CmdLineApp.h"
-#include "CmdLineAppMessages.h"
-#include "MessageArg.h"
-#include "ErrnoMessageArg.h"
-#include "Options.h"
-#include "version.h"
-#include "xnew.h"
-#include "macros.h"
-#include "sptchar.h"
-#include "MessageTable.h"
-#include "CodingSystemKit.h"
-
-#include "ConsoleOutput.h"
-
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-
-#ifdef SP_HAVE_LOCALE
-#include <locale.h>
-#endif
-#ifdef SP_HAVE_SETMODE
-#include <fcntl.h>
-#include <io.h>
-#endif
-
-#include <sys/types.h>
-#ifdef SP_INCLUDE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef SP_INCLUDE_IO_H
-#include <io.h>
-#endif
-
-#ifdef _MSC_VER
-#include <crtdbg.h>
-#endif
-
-#ifndef SP_DEFAULT_ENCODING
-#ifdef WIN32
-#define	SP_DEFAULT_ENCODING SP_T("WINDOWS")
-#else
-#define	SP_DEFAULT_ENCODING  SP_T("IS8859-1")
-#endif
-#endif /* not SP_DEFAULT_ENCODING */
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-static const SP_TCHAR *progName = 0;
-
-static const SP_TCHAR versionString[] = SP_VERSION;
-
-static FileOutputByteStream standardOutput(1, 0);
-static FileOutputByteStream standardError(2, 0);
-
-CmdLineApp::CmdLineApp(const char *requiredInternalCode)
-: errorFile_(0),
-	outputCodingSystem_(0),
-	// Colon at beginning is Posix.2ism that says to
-	// return : rather than ? for missing option argument.
-	optstr_(SP_T(":"), 1),
-	MessageReporter(0),
-	internalCharsetIsDocCharset_(1),
-	codingSystem_(0)
-{
-	initCodingSystem(requiredInternalCode);
-	setMessageStream(makeStdErr());
-	registerOption('b', internalCharsetIsDocCharset_ ?
-		SP_T("bctf") : SP_T("encoding"));
-	registerOption('f', SP_T("error_file"));
-	registerOption('v');
-}
-
-void CmdLineApp::resetCodingSystemKit()
-{
-	codingSystemKit_ = codingSystemKit_->copy();
-}
-
-void CmdLineApp::registerOption(AppChar c, const AppChar *argName)
-{
-	optstr_ += c;
-	if (argName) {
-		optstr_ += SP_T(':');
-		optArgNames_.push_back(argName);
-	}
-}
-
-StringC CmdLineApp::usageString()
-{
-	String < AppChar > result;
-	if (progName)
-		result.assign(progName, tcslen(progName));
-	PackedBoolean hadOption[128];
-	for (int i = 0; i < 128; i++)
-		hadOption[i] = 0;
-	Boolean hadNoArgOption = 0;
-	for (size_t i = 1; i < optstr_.size(); i++) {
-		if (optstr_[i] == 0)
-			break;
-	if (i + 1 < optstr_.size() && optstr_[i + 1] == ':')
-		i++;
-	else
-		if (!hadOption[optstr_[i]]) {
-			hadOption[optstr_[i]] = 1;
-			if (!hadNoArgOption) {
-				hadNoArgOption = 1;
-				result.append(SP_T(" [-"), 3);
-			}
-			result += optstr_[i];
-		}
-	}
-	if (hadNoArgOption)
-		result += SP_T(']');
-	size_t j = 0;
-	for (size_t i = 1; i < optstr_.size(); i++) {
-		if (i + 1 < optstr_.size() && optstr_[i + 1] == ':') {
-			if (!hadOption[optstr_[i]]) {
-				hadOption[optstr_[i]] = 1;
-				result += SP_T(' ');
-				result += SP_T('[');
-				result += SP_T('-');
-				result += optstr_[i];
-				result += SP_T(' ');
-				result.append(optArgNames_[j],
-					tcslen(optArgNames_[j]));
-				result += SP_T(']');
-			}
-			i++;
-			j++;
-		}
-	}
-	result.append(SP_T(" sysid..."), tcslen(SP_T(" sysid...")));
-	result += 0;
-	return (convertInput(result.data()));
-}
-
-static void
-	ewrite(const char *s)
-{
-	int n = (int)strlen(s);
-	while (n > 0) {
-		int nw = write(2, s, n);
-		if (nw < 0)
-			break;
-		n -= nw;
-		s += nw;
-	}
-}
-
-static
-#ifdef SP_FANCY_NEW_HANDLER
-int
-	outOfMemory(size_t)
-#else
-void
-	outOfMemory()
-#endif
-{
-	ewrite("SP library: out of memory\n");
-	exit(1);
-#ifdef SP_FANCY_NEW_HANDLER
-	return (0);
-#endif
-}
-
-int CmdLineApp::init(int, AppChar **argv)
-{
-#ifndef SP_ANSI_LIB
-#ifdef __GNUC__
-	std::set_new_handler(outOfMemory);
-#else
-	set_new_handler(outOfMemory);
-#endif
-#endif
-#ifdef SP_HAVE_LOCALE
-	setlocale(LC_ALL, "");
-#endif
-#ifdef SP_HAVE_SETMODE
-	_setmode(1, _O_BINARY);
-	_setmode(2, _O_BINARY);
-#endif
-	progName = argv[0];
-	if (progName)
-		setProgramName(convertInput(progName));
-	return (0);
-}
-
-int CmdLineApp::run(int argc, AppChar **argv)
-{
-#ifdef _MSC_VER
-	_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_CRTDBG_LEAK_CHECK_DF);
-#endif
-#ifdef SP_ANSI_LIB
-	try {
-#endif
-		int ret = init(argc, argv);
-		if (ret)
-			return (ret);
-		int firstArg;
-		ret = processOptions(argc, argv, firstArg);
-		if (ret)
-			return (ret);
-		ret = processArguments(argc - firstArg, argv + firstArg);
-		progName = 0;
-		return (ret);
-#ifdef SP_ANSI_LIB
-	}
-catch(
-#ifndef SP_NO_STD_NAMESPACE
-	std::
-#endif
-	bad_alloc) {
-#ifdef SP_FANCY_NEW_HANDLER
-		outOfMemory(0);
-#else
-		outOfMemory();
-#endif
-	}
-	return (1);
-#endif /* SP_ANSI_LIB */
-}
-
-int CmdLineApp::processOptions(int argc, AppChar **argv, int &nextArg)
-{
-	AppChar ostr[2];
-	optstr_ += SP_T('\0');
-	Options < AppChar > options(argc, argv, optstr_.data());
-	AppChar opt;
-	while (options.get(opt)) {
-		switch (opt) {
-			case ':':
-				ostr[0] = options.opt();
-				ostr[1] = SP_T('\0');
-				message(CmdLineAppMessages::
-					missingOptionArgError,
-					StringMessageArg(convertInput(ostr)));
-				message(CmdLineAppMessages::usage,
-				StringMessageArg(usageString()));
-				return (1);
-			case '?':
-				ostr[0] = options.opt();
-				ostr[1] = SP_T('\0');
-				message(CmdLineAppMessages::invalidOptionError,
-				StringMessageArg(convertInput(ostr)));
-				message(CmdLineAppMessages::usage,
-					StringMessageArg(usageString()));
-				return (1);
-			default:
-				processOption(opt, options.arg());
-				break;
-		}
-	}
-	nextArg = options.ind();
-	if (errorFile_) {
-		static FileOutputByteStream file;
-		if (!file.open(errorFile_)) {
-			message(CmdLineAppMessages::openFileError,
-				StringMessageArg(convertInput(errorFile_)),
-				ErrnoMessageArg(errno));
-			return (1);
-		}
-		setMessageStream(new EncodeOutputCharStream(&file,
-			codingSystem()));
-	}
-	if (!outputCodingSystem_)
-		outputCodingSystem_ = codingSystem();
-	return (0);
-}
-
-void CmdLineApp::processOption(AppChar opt, const AppChar *arg)
-{
-	switch (opt) {
-		case 'b':
-			outputCodingSystem_ = lookupCodingSystem(arg);
-			if (!outputCodingSystem_)
-				message(internalCharsetIsDocCharset_
-					? CmdLineAppMessages::unknownBctf
-					: CmdLineAppMessages::unknownEncoding,
-					StringMessageArg(convertInput(arg)));
-			break;
-		case 'f':
-			errorFile_ = arg;
-			break;
-		case 'v':
-			// print the version number
-			message(CmdLineAppMessages::versionInfo,
-				StringMessageArg(convertInput(versionString)));
-			break;
-		default:
-			CANNOT_HAPPEN();
-	}
-}
-
-Boolean CmdLineApp::getMessageText(const MessageFragment &frag,
-	StringC &text)
-{
-	String < SP_TCHAR > str;
-	if (!MessageTable::instance()->getText(frag, str))
-		return (0);
-#ifdef SP_WIDE_SYSTEM
-	text.assign((const Char *)str.data(), str.size());
-#else
-	str += 0;
-	text = codingSystem()->convertIn(str.data());
-#endif
-	return (1);
-}
-
-Boolean CmdLineApp::stringMatches(const SP_TCHAR *s, const char *key)
-{
-	for (; *key != '\0'; s++, key++) {
-		if (*s != tolower(*key) && *s != toupper(*key))
-			return (0);
-	}
-	return (*s == '\0');
-}
-
-void CmdLineApp::initCodingSystem(const char *requiredInternalCode)
-{
-	const char *name = requiredInternalCode;
-#ifdef SP_MULTI_BYTE
-	char buf[256];
-	if (!name) {
-		const SP_TCHAR *internalCode =
-			tgetenv(SP_T("SP_SYSTEM_CHARSET"));
-		if (internalCode) {
-			buf[255] = '\0';
-			for (size_t i = 0; i < 255; i++) {
-				buf[i] = internalCode[i];
-				if (buf[i] == '\0')
-					break;
-			}
-		name = buf;
-		}
-	}
-	if (requiredInternalCode)
-		internalCharsetIsDocCharset_ = 0;
-	else {
-		const SP_TCHAR *useInternal = tgetenv(SP_T("SP_CHARSET_FIXED"));
-		if (useInternal &&
-			(stringMatches(useInternal, "YES") ||
-			stringMatches(useInternal, "1")))
-			internalCharsetIsDocCharset_ = 0;
-	}
-#endif /* SP_MULTI_BYTE */
-	codingSystemKit_ = CodingSystemKit::make(name);
-	const SP_TCHAR *codingName = tgetenv(internalCharsetIsDocCharset_
-		? SP_T("SP_BCTF")
-		: SP_T("SP_ENCODING"));
-	if (codingName)
-		codingSystem_ = lookupCodingSystem(codingName);
-#ifdef SP_MULTI_BYTE
-	if (!codingSystem_ && !internalCharsetIsDocCharset_)
-		codingSystem_ = lookupCodingSystem(SP_DEFAULT_ENCODING);
-#endif
-	if (!codingSystem_ ||
-#ifndef SP_WIDE_SYSTEM
-		codingSystem_->fixedBytesPerChar() > 1
-#endif
-)
-	codingSystem_ = codingSystemKit_->identityCodingSystem();
-}
-
-const CodingSystem *
-CmdLineApp::lookupCodingSystem(const AppChar *codingName)
-{
-#define	MAX_CS_NAME 50
-	if (tcslen(codingName) < MAX_CS_NAME) {
-		char buf[MAX_CS_NAME];
-		int i;
-		for (i = 0; codingName[i] != SP_T('\0'); i++) {
-			SP_TUCHAR c = codingName[i];
-#ifdef SP_WIDE_SYSTEM
-			if (c > (unsigned char)-1)
-				return (0);
-#endif
-			buf[i] = char(c);
-		}
-		buf[i] = '\0';
-		return (codingSystemKit_->makeCodingSystem(buf,
-			internalCharsetIsDocCharset_));
-	}
-	return (0);
-}
-
-StringC CmdLineApp::convertInput(const SP_TCHAR *s)
-{
-#ifdef SP_WIDE_SYSTEM
-	StringC str(s, wcslen(s));
-#else
-	StringC str(codingSystem()->convertIn(s));
-#endif
-	for (size_t i = 0; i < str.size(); i++)
-		if (str[i] == '\n')
-			str[i] = '\r';
-	return (str);
-}
-
-OutputCharStream *CmdLineApp::makeStdErr()
-{
-	OutputCharStream *os = ConsoleOutput::makeOutputCharStream(2);
-	if (os)
-		return (os);
-	return (new EncodeOutputCharStream(
-		&standardError, codingSystem()));
-}
-
-OutputCharStream *CmdLineApp::makeStdOut()
-{
-	OutputCharStream *os = ConsoleOutput::makeOutputCharStream(1);
-	if (os)
-		return (os);
-	return (new EncodeOutputCharStream(&standardOutput,
-		outputCodingSystem_));
-}
-
-const MessageType2 &CmdLineApp::openFileErrorMessage()
-{
-	return (CmdLineAppMessages::openFileError);
-}
-
-const MessageType2 &CmdLineApp::closeFileErrorMessage()
-{
-	return (CmdLineAppMessages::closeFileError);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/CmdLineAppMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-// This file was automatically generated from lib\CmdLineAppMessages.msg by msggen.pl.
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct CmdLineAppMessages {
-  // 4000
-  static const MessageType1 invalidOptionError;
-  // 4001
-  static const MessageType1 missingOptionArgError;
-  // 4002
-  static const MessageType1 usage;
-  // 4003
-  static const MessageType1 versionInfo;
-  // 4004
-  static const MessageType1 unknownBctf;
-  // 4005
-  static const MessageType1 unknownEncoding;
-  // 4006
-  static const MessageType2 openFileError;
-  // 4007
-  static const MessageType2 closeFileError;
-};
-const MessageType1 CmdLineAppMessages::invalidOptionError(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4000
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid option %1"
-#endif
-);
-const MessageType1 CmdLineAppMessages::missingOptionArgError(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4001
-#ifndef SP_NO_MESSAGE_TEXT
-,"missing argument for option %1"
-#endif
-);
-const MessageType1 CmdLineAppMessages::usage(
-MessageType::info,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4002
-#ifndef SP_NO_MESSAGE_TEXT
-,"usage is %1"
-#endif
-);
-const MessageType1 CmdLineAppMessages::versionInfo(
-MessageType::info,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4003
-#ifndef SP_NO_MESSAGE_TEXT
-,"SP version %1"
-#endif
-);
-const MessageType1 CmdLineAppMessages::unknownBctf(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4004
-#ifndef SP_NO_MESSAGE_TEXT
-,"unknown BCTF %1"
-#endif
-);
-const MessageType1 CmdLineAppMessages::unknownEncoding(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4005
-#ifndef SP_NO_MESSAGE_TEXT
-,"unknown encoding %1"
-#endif
-);
-const MessageType2 CmdLineAppMessages::openFileError(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4006
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot open output file %1 (%2)"
-#endif
-);
-const MessageType2 CmdLineAppMessages::closeFileError(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4007
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot close output file %1 (%2)"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/CodingSystem.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "CodingSystem.h"
-
-#include <string.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-InputCodingSystem::~InputCodingSystem()
-{
-}
-
-StringC InputCodingSystem::convertIn(const char *s) const
-{
-  Decoder *decoder = makeDecoder();
-  StringC str;
-  str.resize(strlen(s));
-  str.resize(decoder->decode(&str[0], s, strlen(s), &s));
-  delete decoder;
-  return str;
-}
-
-Boolean InputCodingSystem::isIdentity() const
-{
-  return 0;
-}
-
-OutputCodingSystem::~OutputCodingSystem()
-{
-}
-
-unsigned OutputCodingSystem::fixedBytesPerChar() const
-{
-  return 0;
-}
-
-String<char> OutputCodingSystem::convertOut(const StringC &str) const
-{
-  Encoder *encoder = makeEncoder();
-  StrOutputByteStream stream;
-  encoder->output(str.data(), str.size(), &stream);
-  delete encoder;
-  String<char> result;
-  stream.extractString(result);
-  result += '\0';
-  return result;
-}
-
-Decoder::Decoder(unsigned minBytesPerChar)
-: minBytesPerChar_(minBytesPerChar)
-{
-}
-
-Decoder::~Decoder()
-{
-}
-
-Boolean Decoder::convertOffset(unsigned long &) const
-{
-  return false;
-}
-
-Encoder::Encoder()
-{
-}
-
-Encoder::~Encoder()
-{
-}
-
-void Encoder::output(Char *s, size_t n, OutputByteStream *sp)
-{
-  output((const Char *)s, n, sp);
-}
-
-void Encoder::startFile(OutputByteStream *)
-{
-}
-
-void Encoder::handleUnencodable(Char, OutputByteStream *)
-{
-}
-
-void Encoder::setUnencodableHandler(Handler *)
-{
-}
-
-RecoveringEncoder::RecoveringEncoder()
-: unencodableHandler_(0)
-{
-}
-
-void RecoveringEncoder::handleUnencodable(Char c, OutputByteStream *sbufp)
-{
-  if (unencodableHandler_)
-    unencodableHandler_->handleUnencodable(c, sbufp);
-}
-
-void RecoveringEncoder::setUnencodableHandler(Handler *handler)
-{
-  unencodableHandler_ = handler;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/CodingSystemKit.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,531 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "CodingSystemKit.h"
-#include "TranslateCodingSystem.h"
-#ifdef SP_MULTI_BYTE
-#include "UTF8CodingSystem.h"
-#include "Fixed2CodingSystem.h"
-#include "UnicodeCodingSystem.h"
-#include "XMLCodingSystem.h"
-#include "EUCJPCodingSystem.h"
-#include "SJISCodingSystem.h"
-#include "Big5CodingSystem.h"
-#ifdef WIN32
-#include "Win32CodingSystem.h"
-#endif
-#endif /* SP_MULTI_BYTE */
-#include "IdentityCodingSystem.h"
-#include "Owner.h"
-
-#include <ctype.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-#ifdef SP_MULTI_BYTE
-const Char unicodeReplaceChar = 0xfffd;
-#endif
-
-class CodingSystemKitImpl : public CodingSystemKit {
-public:
-  CodingSystemKitImpl(const TranslateCodingSystem::Desc *);
-  CodingSystemKit *copy() const;
-  Char replacementChar() const;
-  const CodingSystem *
-    identityCodingSystem() const;
-  const InputCodingSystem *
-    identityInputCodingSystem() const;
-  const InputCodingSystem *
-    makeInputCodingSystem(const StringC &,
-			  const CharsetInfo &,
-			  Boolean isBctf,
-			  const char *&) const;
-  const CodingSystem *
-    makeCodingSystem(const char *, Boolean isBctf) const;
-  enum CodingSystemId {
-    identity,
-    fixed2,
-    utf8,
-    unicode,
-    eucjp,
-    euccn,
-    euckr,
-    sjisBctf,
-    eucBctf,
-    sjis,
-    big5,
-    big5Bctf,
-    ansi,
-    oem,
-    maybeUnicode,
-    xml,
-    iso8859_1,
-    iso8859_2,
-    iso8859_3,
-    iso8859_4,
-    iso8859_5,
-    iso8859_6,
-    iso8859_7,
-    iso8859_8,
-    iso8859_9
-  };
-  struct Entry {
-    const char *name;
-    CodingSystemId id;
-  };
-  static Boolean match(const StringC &s,
-		       const CharsetInfo &charset,
-		       const char *key);
-  static Boolean match(const char *s,
-		       const char *key);
-private:
-  const CodingSystem *
-    makeCodingSystem(CodingSystemId) const;
-  const Entry *firstEntry(Boolean isBctf) const;
-#ifdef SP_MULTI_BYTE
-  UTF8CodingSystem utf8CodingSystem_;
-  Fixed2CodingSystem fixed2CodingSystem_;
-  UnicodeCodingSystem unicodeCodingSystem_;
-  XMLCodingSystem xmlCodingSystem_;
-  EUCJPCodingSystem eucBctf_;
-  SJISCodingSystem sjisBctf_;
-  Big5CodingSystem big5Bctf_;
-  TranslateCodingSystem eucjpCodingSystem_;
-  TranslateCodingSystem euccnCodingSystem_;
-  TranslateCodingSystem euckrCodingSystem_;
-  TranslateCodingSystem sjisCodingSystem_;
-  TranslateCodingSystem big5CodingSystem_;
-  TranslateCodingSystem iso8859_1CodingSystem_;
-  TranslateCodingSystem iso8859_2CodingSystem_;
-  TranslateCodingSystem iso8859_3CodingSystem_;
-  TranslateCodingSystem iso8859_4CodingSystem_;
-  TranslateCodingSystem iso8859_5CodingSystem_;
-  TranslateCodingSystem iso8859_6CodingSystem_;
-  TranslateCodingSystem iso8859_7CodingSystem_;
-  TranslateCodingSystem iso8859_8CodingSystem_;
-  TranslateCodingSystem iso8859_9CodingSystem_;
-#ifdef WIN32
-  Win32CodingSystem ansiCodingSystem_;
-  Win32CodingSystem oemCodingSystem_;
-  UnicodeCodingSystem maybeUnicodeCodingSystem_;
-#endif
-#endif /* SP_MULTI_BYTE */
-  IdentityCodingSystem identityCodingSystem_;
-  const TranslateCodingSystem::Desc *systemCharsetDesc_;
-  static const Entry bctfTable_[];
-  enum { nEncodingsRequireUnicode = 8 };
-  static const Entry encodingTable_[];
-};
-
-
-static const TranslateCodingSystem::Desc iso10646Desc[] = {
-  { CharsetRegistry::ISO10646_UCS2, 0x0 },
-  { CharsetRegistry::UNREGISTERED, 0x0 },
-};
-
-#ifdef SP_MULTI_BYTE
-
-static const TranslateCodingSystem::Desc jisDesc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_JIS_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::JIS0201, 0x80 },
-  { CharsetRegistry::JIS0208, 0x8080 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc jis2Desc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_JIS_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::JIS0201, 0x80 },
-  { CharsetRegistry::JIS0208, 0x8080 },
-  { CharsetRegistry::JIS0212, 0x8000 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc gbDesc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::GB2312, 0x8080 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc big5Desc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::BIG5, 0x0 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc kscDesc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::KSC5601, 0x8080 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc iso8859_1Desc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::ISO8859_1, 0x80 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc iso8859_2Desc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::ISO8859_2, 0x80 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc iso8859_3Desc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::ISO8859_3, 0x80 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc iso8859_4Desc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::ISO8859_4, 0x80 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc iso8859_5Desc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::ISO8859_5, 0x80 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc iso8859_6Desc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::ISO8859_6, 0x80 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc iso8859_7Desc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::ISO8859_7, 0x80 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc iso8859_8Desc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::ISO8859_8, 0x80 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-static const TranslateCodingSystem::Desc iso8859_9Desc[] = {
-  { CharsetRegistry::ISO646_C0, 0x0 },
-  { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
-  { CharsetRegistry::ISO6429, 0x80 },
-  { CharsetRegistry::ISO8859_9, 0x80 },
-  { CharsetRegistry::UNREGISTERED, 0x0 }
-};
-
-#endif /* SP_MULTI_BYTE */
-
-const CodingSystemKitImpl::Entry CodingSystemKitImpl::bctfTable_[] = {
-  { "IDENTITY", identity },
-#ifdef SP_MULTI_BYTE
-  { "FIXED-2", fixed2 },
-  { "UTF-8", utf8 },
-  { "EUC", eucBctf },
-  { "SJIS", sjisBctf },
-  { "BIG5", big5Bctf },
-#endif /* SP_MULTI_BYTE */
-  { 0, identity },
-};
-
-const CodingSystemKitImpl::Entry CodingSystemKitImpl::encodingTable_[] = {
-#ifdef SP_MULTI_BYTE
-  { "UTF-8", utf8 },
-  { "UCS-2", fixed2 },
-  { "ISO-10646-UCS-2", fixed2 },
-  { "UNICODE", unicode },
-  // We don't really support UTF-16, but treating it
-  // as Unicode should work for the most part.
-  { "UTF-16", unicode },
-  { "WINDOWS", ansi },
-  { "MS-DOS", oem },
-  { "WUNICODE", maybeUnicode },
-  { "XML", xml },
-  // nEncodingsRequireUnicode = 8
-  { "IS8859-1", iso8859_1 },
-  { "ISO-8859-1", iso8859_1 },
-  { "IS8859-2", iso8859_2 },
-  { "ISO-8859-2", iso8859_2 },
-  { "IS8859-3", iso8859_3 },
-  { "ISO-8859-3", iso8859_3 },
-  { "IS8859-4", iso8859_4 },
-  { "ISO-8859-4", iso8859_4 },
-  { "IS8859-5", iso8859_5 },
-  { "ISO-8859-5", iso8859_5 },
-  { "IS8859-6", iso8859_6 },
-  { "ISO-8859-6", iso8859_6 },
-  { "IS8859-7", iso8859_7 },
-  { "ISO-8859-7", iso8859_7 },
-  { "IS8859-8", iso8859_8 },
-  { "ISO-8859-8", iso8859_8 },
-  { "IS8859-9", iso8859_9 },
-  { "ISO-8859-9", iso8859_9 },
-  { "EUC-JP", eucjp },
-  { "EUC-CN", euccn },
-  { "GB2312", euccn },
-  { "CN-GB", euccn },  // RFC 1922
-  { "EUC-KR", euckr },
-  { "SJIS", sjis },
-  { "SHIFT_JIS", sjis },
-  { "BIG5", big5 },
-  { "CN-BIG5", big5 }, // RFC 1922
-#endif /* SP_MULTI_BYTE */
-  { 0, identity },
-};
-
-CodingSystemKitImpl::CodingSystemKitImpl(const TranslateCodingSystem::Desc *systemCharsetDesc)
-: systemCharsetDesc_(systemCharsetDesc)
-#ifdef SP_MULTI_BYTE
-  ,
-#ifdef WIN32
-  ansiCodingSystem_(Win32CodingSystem::codePageAnsi),
-  oemCodingSystem_(Win32CodingSystem::codePageOEM),
-  maybeUnicodeCodingSystem_(&ansiCodingSystem_),
-#endif
-  xmlCodingSystem_(this),
-  iso8859_1CodingSystem_(&identityCodingSystem_, iso8859_1Desc, &systemCharset_, 0x100, unicodeReplaceChar),
-  iso8859_2CodingSystem_(&identityCodingSystem_, iso8859_2Desc, &systemCharset_, 0x100, unicodeReplaceChar),
-  iso8859_3CodingSystem_(&identityCodingSystem_, iso8859_3Desc, &systemCharset_, 0x100, unicodeReplaceChar),
-  iso8859_4CodingSystem_(&identityCodingSystem_, iso8859_4Desc, &systemCharset_, 0x100, unicodeReplaceChar),
-  iso8859_5CodingSystem_(&identityCodingSystem_, iso8859_5Desc, &systemCharset_, 0x100, unicodeReplaceChar),
-  iso8859_6CodingSystem_(&identityCodingSystem_, iso8859_6Desc, &systemCharset_, 0x100, unicodeReplaceChar),
-  iso8859_7CodingSystem_(&identityCodingSystem_, iso8859_7Desc, &systemCharset_, 0x100, unicodeReplaceChar),
-  iso8859_8CodingSystem_(&identityCodingSystem_, iso8859_8Desc, &systemCharset_, 0x100, unicodeReplaceChar),
-  iso8859_9CodingSystem_(&identityCodingSystem_, iso8859_9Desc, &systemCharset_, 0x100, unicodeReplaceChar),
-  eucjpCodingSystem_(&eucBctf_, jis2Desc, &systemCharset_, 0x8000, unicodeReplaceChar),
-  euccnCodingSystem_(&eucBctf_, gbDesc, &systemCharset_, 0x8000, unicodeReplaceChar),
-  euckrCodingSystem_(&eucBctf_, kscDesc, &systemCharset_, 0x8000, unicodeReplaceChar),
-  sjisCodingSystem_(&sjisBctf_, jisDesc, &systemCharset_, 0x8000, unicodeReplaceChar),
-  big5CodingSystem_(&big5Bctf_, big5Desc, &systemCharset_, 0x0080, unicodeReplaceChar)
-#endif /* SP_MULTI_BYTE */
-{
-  UnivCharsetDesc desc;
-  for (const TranslateCodingSystem::Desc *p = systemCharsetDesc_;
-       p->number != CharsetRegistry::UNREGISTERED;
-       p++) {
-    Owner<CharsetRegistry::Iter> iter(CharsetRegistry::makeIter(p->number));
-    if (iter) {
-      WideChar min;
-      WideChar max;
-      UnivChar univ;
-      while (iter->next(min, max, univ)) {
-	min += p->add;
-	max += p->add;
-	if (min <= charMax) {
-	  if (max > charMax)
-	    max = charMax;
-	  desc.addRange(min, max, univ);
-	}
-      }
-    }
-  }
-  systemCharset_.set(desc);
-}
-
-CodingSystemKit *CodingSystemKitImpl::copy() const
-{
-  return new CodingSystemKitImpl(systemCharsetDesc_);
-}
-
-const CodingSystemKitImpl::Entry *CodingSystemKitImpl::firstEntry(Boolean isBctf) const
-{
-  if (isBctf)
-    return bctfTable_;
-#ifdef SP_MULTI_BYTE
-  else if (systemCharsetDesc_ != iso10646Desc)
-    return encodingTable_ + nEncodingsRequireUnicode;
-#endif
-  else
-    return encodingTable_;
-}
-
-const InputCodingSystem *
-CodingSystemKitImpl::makeInputCodingSystem(const StringC &s,
-					   const CharsetInfo &charset,
-					   Boolean isBctf,
-					   const char *&key) const
-{
-  for (const Entry *p = firstEntry(isBctf); p->name; p++)
-    if (match(s, charset, p->name)) {
-      key = p->name;
-      return makeCodingSystem(p->id);
-    }
-  return 0;
-}
-
-Boolean
-CodingSystemKitImpl::match(const StringC &s,
-			   const CharsetInfo &charset,
-			   const char *key)
-{
-  for (size_t i = 0; i < s.size(); i++) {
-    if (key[i] == '\0')
-      return 0;
-    if (charset.execToDesc(toupper(key[i])) != s[i]
-        && charset.execToDesc(tolower(key[i])) != s[i])
-      return 0;
-  }
-  return key[s.size()] == '\0';
-}
-
-const CodingSystem *
-CodingSystemKitImpl::makeCodingSystem(const char *s,
-				      Boolean isBctf)
-  const
-{
- for (const Entry *p = firstEntry(isBctf); p->name; p++)
-   if (match(s, p->name))
-      return makeCodingSystem(p->id);
-  return 0;
-}
-
-Boolean
-CodingSystemKitImpl::match(const char *s,
-			   const char *key)
-{
-  for (; toupper(*key) == *s || tolower(*key) == *s; s++, key++) {
-    if (*s == '\0')
-      return 1;
-  }
-  return 0;
-}
-
-const CodingSystem *
-CodingSystemKitImpl::makeCodingSystem(CodingSystemId id) const
-{
-  switch (id) {
-  case identity:
-    return &identityCodingSystem_;
-#ifdef SP_MULTI_BYTE
-  case fixed2:
-    return &fixed2CodingSystem_;
-  case utf8:
-    return &utf8CodingSystem_;
-  case unicode:
-    return &unicodeCodingSystem_;
-  case eucBctf:
-    return &eucBctf_;
-  case sjisBctf:
-    return &sjisBctf_;
-  case big5Bctf:
-    return &big5Bctf_;
-  case eucjp:
-    return &eucjpCodingSystem_;
-  case euccn:
-    return &euccnCodingSystem_;
-  case euckr:
-    return &euckrCodingSystem_;
-  case sjis:
-    return &sjisCodingSystem_;
-  case big5:
-    return &big5CodingSystem_;
-  case iso8859_1:
-    if (systemCharsetDesc_ == iso10646Desc)
-      return &identityCodingSystem_;
-    else
-      return &iso8859_1CodingSystem_;
-  case iso8859_2:
-    return &iso8859_2CodingSystem_;
-  case iso8859_3:
-    return &iso8859_3CodingSystem_;
-  case iso8859_4:
-    return &iso8859_4CodingSystem_;
-  case iso8859_5:
-    return &iso8859_5CodingSystem_;
-  case iso8859_6:
-    return &iso8859_6CodingSystem_;
-  case iso8859_7:
-    return &iso8859_7CodingSystem_;
-  case iso8859_8:
-    return &iso8859_8CodingSystem_;
-  case iso8859_9:
-    return &iso8859_9CodingSystem_;
-  case xml:
-    return &xmlCodingSystem_;
-#ifdef WIN32
-  case ansi:
-    return &ansiCodingSystem_;
-  case oem:
-    return &oemCodingSystem_;
-  case maybeUnicode:
-    return &maybeUnicodeCodingSystem_;
-#endif /* WIN32 */
-#endif /* SP_MULTI_BYTE */
-  default:
-    break;
-  }
-  return 0;
-}
-
-const InputCodingSystem *
-CodingSystemKitImpl::identityInputCodingSystem() const
-{
-  return &identityCodingSystem_;
-}
-
-const CodingSystem *
-CodingSystemKitImpl::identityCodingSystem() const
-{
-  return &identityCodingSystem_;
-}
-
-Char CodingSystemKitImpl::replacementChar() const
-{
-  // FIXME should vary with systemCharset
-#ifdef SP_MULTI_BYTE
-  return unicodeReplaceChar;
-#else
-  return 0;
-#endif
-}
-
-CodingSystemKit *
-CodingSystemKit::make(const char *systemCharsetName)
-{
-#ifdef SP_MULTI_BYTE
-  if (systemCharsetName && CodingSystemKitImpl::match(systemCharsetName, "JIS"))
-    return new CodingSystemKitImpl(jis2Desc);
-#endif
-  return new CodingSystemKitImpl(iso10646Desc);
-}
-
-InputCodingSystemKit::~InputCodingSystemKit()
-{
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ConsoleOutput.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "ConsoleOutput.h"
-
-#ifdef SP_WIDE_SYSTEM
-#include <windows.h>
-#include <io.h>
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-#ifdef SP_WIDE_SYSTEM
-
-class ConsoleOutputCharStream : public OutputCharStream {
-public:
-  ConsoleOutputCharStream(HANDLE h);
-  void flush();
-  void flushBuf(Char);
-private:
-  HANDLE h_;
-};
-
-OutputCharStream *ConsoleOutput::makeOutputCharStream(int fd)
-{
-  HANDLE h = (HANDLE)_get_osfhandle(fd);
-  DWORD flags;
-  if (GetConsoleMode(h, &flags))
-    return new ConsoleOutputCharStream(h);
-  else
-    return 0;
-}
-
-ConsoleOutputCharStream::ConsoleOutputCharStream(HANDLE h)
-: h_(h)
-{
-}
-
-void ConsoleOutputCharStream::flush()
-{
-}
-
-void ConsoleOutputCharStream::flushBuf(Char c)
-{
-  DWORD nWritten;
-  unsigned short ch = c;
-  if (WriteConsoleW(h_, &ch, 1, &nWritten, 0))
-    return;
-  char buf[2];
-  int nBytes = WideCharToMultiByte(CP_OEMCP, 0, &ch, 1, buf, 2, 0, 0);
-  if (nBytes)
-    WriteConsoleA(h_, buf, nBytes, &nWritten, 0);
-}
-
-#else /* not SP_WIDE_SYSTEM */
-
-OutputCharStream *ConsoleOutput::makeOutputCharStream(int)
-{
-  return 0;
-}
-
-#endif  /* not SP_WIDE_SYSTEM */
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ContentState.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-// Copyright (c) 1994, 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "ContentState.h"
-#include "IListIter.h"
-#include "NCVector.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const ShortReferenceMap ContentState::theEmptyMap;
-
-#ifdef __GNUG__
-typedef IListIter<OpenElement> Dummy_IListIter_OpenElement;
-#endif
-
-ContentState::ContentState()
-: documentElementContainer_(StringC(), size_t(-1))
-{
-}
-
-void ContentState::startContent(const Dtd &dtd)
-{
-  NCVector<Owner<ContentToken> > tokens(1);
-  tokens[0] = new ElementToken(dtd.documentElementType(),
-			       ContentToken::none);
-  Owner<ModelGroup> model(new SeqModelGroup(tokens, ContentToken::none));
-  Owner<CompiledModelGroup> compiledModel(new CompiledModelGroup(model));
-  Vector<ContentModelAmbiguity> ambiguities;
-  Boolean pcdataUnreachable;
-  compiledModel->compile(dtd.nElementTypeIndex(), ambiguities,
-			 pcdataUnreachable);
-  ASSERT(ambiguities.size() == 0);
-  ConstPtr<ElementDefinition> def
-    = new ElementDefinition(Location(),
-			    0,
-			    0,
-			    ElementDefinition::modelGroup,
-			    compiledModel);
-  documentElementContainer_.setElementDefinition(def, 0);
-  tagLevel_ = 0;
-  while (!openElements_.empty())
-    delete openElements_.get();
-  openElements_.insert(new OpenElement(&documentElementContainer_,
-				       0,
-				       0,
-				       &theEmptyMap,
-				       Location()));
-  includeCount_.assign(dtd.nElementTypeIndex(), 0);
-  excludeCount_.assign(dtd.nElementTypeIndex(), 0);
-  openElementCount_.assign(dtd.nElementTypeIndex(), 0);
-  netEnablingCount_ = 0;
-  totalExcludeCount_ = 0;
-  lastEndedElementType_ = 0;
-  nextIndex_ = 0;
-}
-
-void ContentState::pushElement(OpenElement *e)
-{
-  tagLevel_++;
-  openElementCount_[e->type()->index()]++;
-  const ElementDefinition *def = e->type()->definition();
-  if (def) {
-    size_t i;
-    for (i = 0; i < def->nInclusions(); i++)
-      includeCount_[def->inclusion(i)->index()]++;
-    for (i = 0; i < def->nExclusions(); i++) {
-      excludeCount_[def->exclusion(i)->index()]++;
-      totalExcludeCount_++;
-    }
-  }
-  if (e->netEnabling())
-    netEnablingCount_++;
-  e->setIndex(nextIndex_++);
-  openElements_.insert(e);
-}
-
-OpenElement *ContentState::popSaveElement()
-{
-  ASSERT(tagLevel_ > 0);
-  OpenElement *e = openElements_.get();
-  tagLevel_--;
-  openElementCount_[e->type()->index()]--;
-  const ElementDefinition *def = e->type()->definition();
-  if (def) {
-    size_t i;
-    for (i = 0; i < def->nInclusions(); i++)
-      includeCount_[def->inclusion(i)->index()]--;
-    for (i = 0; i < def->nExclusions(); i++) {
-      excludeCount_[def->exclusion(i)->index()]--;
-      totalExcludeCount_--;
-    }
-  }
-  if (e->netEnabling())
-    netEnablingCount_--;
-  lastEndedElementType_ = e->type();
-  return e;
-}
-
-void ContentState::popElement()
-{
-  delete popSaveElement();
-}
-			      
-Boolean ContentState::checkImplyLoop(unsigned count)
-{
-  for (IListIter<OpenElement> iter(openElements_);
-       count > 0;
-       iter.next(), count--)
-    if (iter.cur()->type() == openElements_.head()->type()
-	// I'm not sure whether this is necessary.
-	&& iter.cur()->matchState() == openElements_.head()->matchState())
-      return 0;
-  return 1;
-}
-
-void ContentState::getOpenElementInfo(Vector<OpenElementInfo> &v,
-				      const StringC &rniPcdata) const
-{
-  v.clear();
-  v.resize(tagLevel_);
-  unsigned i = tagLevel_;
-  for (IListIter<OpenElement> iter(openElements_);
-       !iter.done() && i > 0;
-       iter.next()) {
-    OpenElementInfo &e = v[--i];
-    e.gi = iter.cur()->type()->name();
-    const LeafContentToken *token = iter.cur()->currentPosition();
-    if (token && !token->isInitial()) {
-      e.matchIndex = token->typeIndex() + 1;
-      const ElementType *type = token->elementType();
-      e.matchType = type ? type->name() : rniPcdata;
-    }
-    e.included = iter.cur()->included();
-  }
-}
-
-ElementType *
-ContentState::lookupCreateUndefinedElement(const StringC &name,
-					   const Location &loc,
-					   Dtd &dtd)
-{
-  ElementType *p = new ElementType(name,
-				   dtd.allocElementTypeIndex());
-  dtd.insertUndefinedElementType(p);
-  p->setElementDefinition(new ElementDefinition(loc,
-						size_t(ElementDefinition::undefinedIndex),
-						0,
-						ElementDefinition::any),
-			  0);
-  p->setAttributeDef(dtd.implicitElementAttributeDef());
-
-  includeCount_.push_back(0);
-  excludeCount_.push_back(0);
-  openElementCount_.push_back(0);
-  return p;
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ContentToken.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,790 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include <stdlib.h>
-#include "ContentToken.h"
-#include "macros.h"
-#include "ElementType.h"
-#include "Vector.h"
-#include "Dtd.h"
-#include "MessageArg.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-AndModelGroup::AndModelGroup(NCVector<Owner<ContentToken> > &v,
-			     ContentToken::OccurrenceIndicator oi)
-: ModelGroup(v, oi)
-{
-}
-
-ModelGroup::Connector AndModelGroup::connector() const
-{
-  return andConnector;
-}
-
-OrModelGroup::OrModelGroup(NCVector<Owner<ContentToken> > &v,
-			   ContentToken::OccurrenceIndicator oi)
-: ModelGroup(v, oi)
-{
-  setOrGroup();
-}
-
-ModelGroup::Connector OrModelGroup::connector() const
-{
-  return orConnector;
-}
-
-
-SeqModelGroup::SeqModelGroup(NCVector<Owner<ContentToken> > &v,
-			     ContentToken::OccurrenceIndicator oi)
-: ModelGroup(v, oi)
-{
-}
-
-ModelGroup::Connector SeqModelGroup::connector() const
-{
-  return seqConnector;
-}
-
-
-ModelGroup::ModelGroup(NCVector<Owner<ContentToken> > &v,
-		       OccurrenceIndicator oi)
-: ContentToken(oi)
-{
-  members_.swap(v);
-}
-
-unsigned long ModelGroup::grpgtcnt() const
-{
-  unsigned long cnt = 1;
-  for (size_t i = 0; i < members_.size(); i++)
-    cnt += members_[i]->grpgtcnt();
-  return cnt;
-}
-
-void ModelGroup::setOrGroup()
-{
-  for (size_t i = 0; i < members_.size(); i++)
-    members_[i]->setOrGroupMember();
-}
-
-const ModelGroup *ModelGroup::asModelGroup() const
-{
-  return this;
-}
-
-ElementToken::ElementToken(const ElementType *element, OccurrenceIndicator oi)
-: LeafContentToken(element, oi)
-{
-}
-
-ContentToken::ContentToken(OccurrenceIndicator oi)
-: occurrenceIndicator_(oi)
-{
-}
-
-unsigned long ContentToken::grpgtcnt() const
-{
-  return 1;
-}
-
-void ContentToken::setOrGroupMember()
-{
-}
-
-const ModelGroup *ContentToken::asModelGroup() const
-{
-  return 0;
-}
-
-const LeafContentToken *ContentToken::asLeafContentToken() const
-{
-  return 0;
-}
-
-LeafContentToken::LeafContentToken(const ElementType *element,
-				   OccurrenceIndicator oi)
-: element_(element), ContentToken(oi), isFinal_(0), orGroupMember_(0),
-  requiredIndex_(size_t(-1))
-{
-}
-
-Boolean LeafContentToken::isInitial() const
-{
-  return 0;
-}
-
-void LeafContentToken::setOrGroupMember()
-{
-  orGroupMember_ = 1;
-}
-
-const LeafContentToken *LeafContentToken::asLeafContentToken() const
-{
-  return this;
-}
-
-PcdataToken::PcdataToken()
-: LeafContentToken(0, rep)
-{
-}
-
-InitialPseudoToken::InitialPseudoToken()
-: LeafContentToken(0, none)
-{
-}
-
-Boolean InitialPseudoToken::isInitial() const
-{
-  return 1;
-}
-
-DataTagGroup::DataTagGroup(NCVector<Owner<ContentToken> > &vec,
-			   OccurrenceIndicator oi)
-: SeqModelGroup(vec, oi)
-{
-}
-
-DataTagElementToken::DataTagElementToken(const ElementType *element,
-					 Vector<Text> &templates,
-					 Text &paddingTemplate)
-: ElementToken(element, ContentToken::none),
-  havePaddingTemplate_(1)
-{
-  templates.swap(templates_);
-  paddingTemplate.swap(paddingTemplate_);
-}
-
-DataTagElementToken::DataTagElementToken(const ElementType *element,
-					 Vector<Text> &templates)
-: ElementToken(element, ContentToken::none),
-  havePaddingTemplate_(0)
-{
-  templates.swap(templates_);
-}
-
-ContentToken::~ContentToken()
-{
-}
-
-struct GroupInfo {
-  unsigned nextLeafIndex;
-  PackedBoolean containsPcdata;
-  unsigned andStateSize;
-  Vector<unsigned> nextTypeIndex;
-  GroupInfo(size_t);
-};
-
-
-GroupInfo::GroupInfo(size_t nType)
-: nextTypeIndex(nType, 0), nextLeafIndex(0), containsPcdata(0), andStateSize(0)
-{
-}
-
-CompiledModelGroup::CompiledModelGroup(Owner<ModelGroup> &modelGroup)
-: modelGroup_(modelGroup.extract())
-{
-}
-
-void CompiledModelGroup::compile(size_t nElementTypeIndex,
-				 Vector<ContentModelAmbiguity> &ambiguities,
-				 Boolean &pcdataUnreachable)
-{
-  FirstSet first;
-  LastSet last;
-  GroupInfo info(nElementTypeIndex);
-  modelGroup_->analyze(info, 0, 0, first, last);
-  for (unsigned i = 0; i < last.size(); i++)
-    last[i]->setFinal();
-  andStateSize_ = info.andStateSize;
-  containsPcdata_ = info.containsPcdata;
-  initial_ = new InitialPseudoToken;
-  LastSet initialSet(1);
-  initialSet[0] = initial_.pointer();
-  ContentToken::addTransitions(initialSet, first, 1, 0, 0);
-  if (modelGroup_->inherentlyOptional())
-    initial_->setFinal();
-  pcdataUnreachable = 0;
-  Vector<unsigned> minAndDepth(info.nextLeafIndex);
-  Vector<size_t> elementTransition(nElementTypeIndex);
-  initial_->finish(minAndDepth, elementTransition, ambiguities,
-		   pcdataUnreachable);
-  modelGroup_->finish(minAndDepth, elementTransition, ambiguities,
-		      pcdataUnreachable);
-  if (!containsPcdata_)
-    pcdataUnreachable = 0;
-}
-
-void ModelGroup::finish(Vector<unsigned> &minAndDepth,
-			Vector<size_t> &elementTransition,
-			Vector<ContentModelAmbiguity> &ambiguities,
-			Boolean &pcdataUnreachable)
-{
-  for (unsigned i = 0; i < nMembers(); i++)
-    member(i).finish(minAndDepth, elementTransition, ambiguities,
-		     pcdataUnreachable);
-}
-
-void LeafContentToken::finish(Vector<unsigned> &minAndDepthVec,
-			      Vector<size_t> &elementTransitionVec,
-			      Vector<ContentModelAmbiguity> &ambiguities,
-			      Boolean &pcdataUnreachable)
-{
-  if (andInfo_) {
-    andFinish(minAndDepthVec, elementTransitionVec, ambiguities,
-	      pcdataUnreachable);
-    return;
-  }
-  Vector<size_t>::iterator elementTransition = elementTransitionVec.begin();
-  Vector<unsigned>::iterator minAndDepth = minAndDepthVec.begin();
-  minAndDepthVec.assign(minAndDepthVec.size(), unsigned(-1));
-  elementTransitionVec.assign(elementTransitionVec.size(), size_t(-1));
-  pcdataTransitionType_ = 0;
-  simplePcdataTransition_ = 0;
-  // follow_ is in decreasing order of andDepth because of how it's
-  // constructed.
-  size_t n = follow_.size();
-  Vector<LeafContentToken *>::iterator follow = follow_.begin();
-  size_t j = 0;
-  for (size_t i = 0; i < n; i++) {
-    unsigned &minDepth = minAndDepth[follow[i]->index()];
-    if (minDepth) {
-      minDepth = 0;
-      if (j != i)
-	follow[j] = follow[i];
-      if (i == requiredIndex_)
-	requiredIndex_ = j;
-      const ElementType *e = follow[i]->elementType();
-      unsigned ei;
-      if (e == 0) {
-	if (follow[i]->andInfo_ == 0) {
-	  simplePcdataTransition_ = follow[i];
-	  pcdataTransitionType_ = 1;
-	}
-	else
-	  pcdataTransitionType_ = 2;
-	ei = 0;
-      }
-      else
-	ei = e->index();
-      if (elementTransition[ei] != size_t(-1)) {
-	const LeafContentToken *prev = follow[elementTransition[ei]];
-	// This might not be true: consider (a & b?)*; after the
-	// a there are two different ways to get to the same b,
-	// with the same and depth.
-	if (follow[i] != prev) {
-	  ambiguities.resize(ambiguities.size() + 1);
-	  ContentModelAmbiguity &a = ambiguities.back();
-	  a.from = this;
-	  a.to1 = prev;
-	  a.to2 = follow[i];
-	  a.andDepth = 0;
-	}
-      }
-      elementTransition[ei] = j;
-      j++;
-    }
-  }
-  if (pcdataTransitionType_ == 0)
-    pcdataUnreachable = 1;
-  follow_.resize(j);
-}
-
-void LeafContentToken::andFinish(Vector<unsigned> &minAndDepthVec,
-				 Vector<size_t> &elementTransitionVec,
-				 Vector<ContentModelAmbiguity> &ambiguities,
-				 Boolean &pcdataUnreachable)
-{
-  // Vector mapping element type index to index of leaf content token
-  // of that type to which there is a transition, which is the "worst"
-  // from the point of view of ambiguity.
-  Vector<size_t>::iterator elementTransition = elementTransitionVec.begin();
-  // Vector mapping index of leaf content token
-  // to minimum AND depth of transition to that token.
-  Vector<unsigned>::iterator minAndDepth = minAndDepthVec.begin();
-  minAndDepthVec.assign(minAndDepthVec.size(), unsigned(-1));
-  elementTransitionVec.assign(elementTransitionVec.size(), size_t(-1));
-  pcdataTransitionType_ = 0;
-  simplePcdataTransition_ = 0;
-  unsigned pcdataMinCovered = 0;
-  
-  // follow_ is in decreasing order of andDepth because of how it's
-  // constructed.
-  size_t n = follow_.size();
-  size_t j = 0;
-  Vector<Transition>::iterator andFollow = andInfo_->follow.begin();
-  for (size_t i = 0; i < n; i++) {
-    unsigned &minDepth = minAndDepth[follow_[i]->index()];
-    // ignore transitions to the same token with the same and depth.
-    if (andFollow[i].andDepth < minDepth) {
-      minDepth = andFollow[i].andDepth;
-      if (j != i) {
-	follow_[j] = follow_[i];
-	andFollow[j] = andFollow[i];
-      }
-      if (i == requiredIndex_)
-	requiredIndex_ = j;
-      const ElementType *e = follow_[i]->elementType();
-      unsigned ei;
-      if (e == 0) {
-	if (pcdataTransitionType_ == 0) {
-	  const AndModelGroup *andAncestor = andInfo_->andAncestor;
-	  unsigned groupIndex = andInfo_->andGroupIndex;
-	  do {
-	    Boolean hasNonNull = 0;
-	    for (unsigned k = 0; k < andAncestor->nMembers(); k++)
-	      if (k != groupIndex
-		  && !andAncestor->member(k).inherentlyOptional()) {
-		hasNonNull = 1;
-		break;
-	      }
-	    if (hasNonNull) {
-	      if (minDepth <= andAncestor->andDepth())
-		pcdataUnreachable = 1;
-	      break;
-	    }
-	    groupIndex = andAncestor->andGroupIndex();
-	    andAncestor = andAncestor->andAncestor();
-	  } while (andAncestor);
-	  if (andFollow[i].isolated)
-	    pcdataMinCovered = minDepth;
-	  pcdataTransitionType_ = 2;
-	}
-	else {
-	  if (pcdataMinCovered > minDepth + 1)
-	    pcdataUnreachable = 1;
-	  pcdataMinCovered = andFollow[i].isolated ? minDepth : 0;
-	}
-	ei = 0;
-      }
-      else
-	ei = e->index();
-      // If we have transitions t1, t2, ... tN to tokens having
-      // the same element type, with
-      // and-depths d1, d2, ... dN, where d1 >= d2 >= ... >= dN,
-      // then there is an ambiguity unless
-      // d1 > d2 > ... > dN and t1, t2, ... , tN-1 are all isolated.
-      size_t previ = elementTransition[ei];
-      if (previ != size_t(-1)) {
-	const LeafContentToken *prev = follow_[previ];
-	// This might not be true: consider (a & b?)*; after the
-	// a there are two different ways to get to the same b,
-	// with the same and depth.
-	if (follow_[i] != prev
-	    && (andFollow[previ].andDepth == andFollow[i].andDepth
-		|| !andFollow[previ].isolated)) {
-	  ambiguities.resize(ambiguities.size() + 1);
-	  ContentModelAmbiguity &a = ambiguities.back();
-	  a.from = this;
-	  a.to1 = prev;
-	  a.to2 = follow_[i];
-	  a.andDepth = andFollow[i].andDepth;
-	}
-	if (andFollow[previ].isolated)
-	  elementTransition[ei] = j;
-      }
-      else
-	elementTransition[ei] = j;
-      j++;
-    }
-  }
-  if (pcdataMinCovered > 0 || pcdataTransitionType_ == 0)
-    pcdataUnreachable = 1;
-  follow_.resize(j);
-  andInfo_->follow.resize(j);
-}
-
-void ContentToken::analyze(GroupInfo &info,
-			   const AndModelGroup *andAncestor,
-			   unsigned andGroupIndex,
-			   FirstSet &first,
-			   LastSet &last)
-{
-  analyze1(info, andAncestor, andGroupIndex, first, last);
-  if (occurrenceIndicator_ & opt)
-    inherentlyOptional_ = 1;
-  if (inherentlyOptional_)
-    first.setNotRequired();
-  if (occurrenceIndicator_ & plus)
-    addTransitions(last, first, 0,
-		   andIndex(andAncestor), andDepth(andAncestor));
-}
-
-void LeafContentToken::analyze1(GroupInfo &info,
-				const AndModelGroup *andAncestor,
-				unsigned andGroupIndex,
-				FirstSet &first,
-				LastSet &last)
-{
-  leafIndex_ = info.nextLeafIndex++;
-  typeIndex_ = info.nextTypeIndex[element_ ? element_->index() : 0]++;
-  if (andAncestor) {
-    andInfo_ = new AndInfo;
-    andInfo_->andAncestor = andAncestor;
-    andInfo_->andGroupIndex = andGroupIndex;
-  }
-  first.init(this);
-  last.assign(1, this);
-  inherentlyOptional_ = 0;
-}
-
-void PcdataToken::analyze1(GroupInfo &info,
-			   const AndModelGroup *andAncestor,
-			   unsigned andGroupIndex,
-			   FirstSet &first,
-			   LastSet &last)
-{
-  info.containsPcdata = 1;
-  LeafContentToken::analyze1(info, andAncestor, andGroupIndex, first, last);
-}
-
-void OrModelGroup::analyze1(GroupInfo &info,
-			    const AndModelGroup *andAncestor,
-			    unsigned andGroupIndex,
-			    FirstSet &first,
-			    LastSet &last)
-{
-  member(0).analyze(info, andAncestor, andGroupIndex, first, last);
-  first.setNotRequired();
-  inherentlyOptional_ = member(0).inherentlyOptional();
-  for (unsigned i = 1; i < nMembers(); i++) {
-    FirstSet tempFirst;
-    LastSet tempLast;
-    member(i).analyze(info, andAncestor, andGroupIndex, tempFirst, tempLast);
-    first.append(tempFirst);
-    first.setNotRequired();
-    last.append(tempLast);
-    inherentlyOptional_ |= member(i).inherentlyOptional();
-  }
-}
-
-void SeqModelGroup::analyze1(GroupInfo &info,
-			     const AndModelGroup *andAncestor,
-			     unsigned andGroupIndex,
-			     FirstSet &first,
-			     LastSet &last)
-{
-  member(0).analyze(info, andAncestor, andGroupIndex, first, last);
-  inherentlyOptional_ = member(0).inherentlyOptional();
-  for (unsigned i = 1; i < nMembers(); i++) {
-    FirstSet tempFirst;
-    LastSet tempLast;
-    member(i).analyze(info, andAncestor, andGroupIndex, tempFirst, tempLast);
-    addTransitions(last, tempFirst, 1,
-		   andIndex(andAncestor), andDepth(andAncestor));
-    if (inherentlyOptional_)
-      first.append(tempFirst);
-    if (member(i).inherentlyOptional())
-      last.append(tempLast);
-    else
-      tempLast.swap(last);
-    inherentlyOptional_ &= member(i).inherentlyOptional();
-  }
-}
-
-void AndModelGroup::analyze1(GroupInfo &info,
-			     const AndModelGroup *andAncestor,
-			     unsigned andGroupIndex,
-			     FirstSet &first,
-			     LastSet &last)
-{
-  andDepth_ = ContentToken::andDepth(andAncestor);
-  andIndex_ = ContentToken::andIndex(andAncestor);
-  andAncestor_ = andAncestor;
-  andGroupIndex_ = andGroupIndex;
-  if (andIndex_ + nMembers() > info.andStateSize)
-    info.andStateSize = andIndex_ + nMembers();
-  Vector<FirstSet> firstVec(nMembers());
-  Vector<LastSet> lastVec(nMembers());
-  member(0).analyze(info, this, 0, firstVec[0], lastVec[0]);
-  first = firstVec[0];
-  first.setNotRequired();
-  last = lastVec[0];
-  inherentlyOptional_ = member(0).inherentlyOptional();
-  unsigned i;
-  for (i = 1; i < nMembers(); i++) {
-    member(i).analyze(info, this, i, firstVec[i], lastVec[i]);
-    first.append(firstVec[i]);
-    first.setNotRequired();
-    last.append(lastVec[i]);
-    inherentlyOptional_ &= member(i).inherentlyOptional();
-  }
-  for (i = 0; i < nMembers(); i++) {
-    for (unsigned j = 0; j < nMembers(); j++)
-      if (j != i)
-	addTransitions(lastVec[i], firstVec[j], 0,
-		       andIndex() + nMembers(),
-		       andDepth() + 1,
-		       !member(j).inherentlyOptional(),
-		       andIndex() + j, andIndex() + i);
-  }
-}
-
-void ContentToken::addTransitions(const LastSet &from,
-				  const FirstSet &to,
-				  Boolean maybeRequired,
-				  unsigned andClearIndex,
-				  unsigned andDepth,
-				  Boolean isolated,
-				  unsigned requireClear,
-				  unsigned toSet)
-{
-  size_t length = from.size();
-  for (unsigned i = 0; i < length; i++)
-    from[i]->addTransitions(to,
-			    maybeRequired,
-			    andClearIndex,
-			    andDepth,
-			    isolated,
-			    requireClear,
-			    toSet);
-}
-
-void LeafContentToken::addTransitions(const FirstSet &to,
-				      Boolean maybeRequired,
-				      unsigned andClearIndex,
-				      unsigned andDepth,
-				      Boolean isolated,
-				      unsigned requireClear,
-				      unsigned toSet)
-{
-  if (maybeRequired && to.requiredIndex() != size_t(-1)) {
-    ASSERT(requiredIndex_ == size_t(-1));
-    requiredIndex_ = to.requiredIndex() + follow_.size();
-  }
-  size_t length = follow_.size();
-  size_t n = to.size();
-  follow_.resize(length + n);
-  for (size_t i = 0; i < n; i++)
-    follow_[length + i] = to.token(i);
-  if (andInfo_) {
-    andInfo_->follow.resize(length + n);
-    for (size_t i = 0; i < n; i++) {
-      Transition &t = andInfo_->follow[length + i];
-      t.clearAndStateStartIndex = andClearIndex;
-      t.andDepth = andDepth;
-      t.isolated = isolated;
-      t.requireClear = requireClear;
-      t.toSet = toSet;
-    }
-  }
-}
-
-AndState::AndState(unsigned n)
-: v_(n, PackedBoolean(0)), clearFrom_(0)
-{
-}
-
-void AndState::clearFrom1(unsigned i)
-{
-  while (clearFrom_ > i)
-    v_[--clearFrom_] = 0;
-}
-
-MatchState::MatchState()
-: andState_(0)
-{
-}
-
-MatchState::MatchState(const CompiledModelGroup *model)
-: pos_(model ? model->initial() : 0),
-  andState_(model ? model->andStateSize() : 0),
-  minAndDepth_(0)
-{
-}
-
-const LeafContentToken *MatchState::invalidExclusion(const ElementType *e)
-     const
-{
-  const LeafContentToken *token = pos_->transitionToken(e, andState_,
-							minAndDepth_);
-  if (token && !token->inherentlyOptional() && !token->orGroupMember())
-    return token;
-  else
-    return 0;
-}
-
-Boolean MatchState::operator==(const MatchState &state) const
-{
-  return (pos_ == state.pos_ && andState_ == state.andState_
-	  && minAndDepth_ == state.minAndDepth_);
-}
-
-Boolean AndState::operator==(const AndState &state) const
-{
-  ASSERT(v_.size() == state.v_.size());
-  for (size_t i = 0; i < v_.size(); i++) {
-    if (i >= clearFrom_ && i >= state.clearFrom_)
-      break;
-    if (v_[i] != state.v_[i])
-      return 0;
-  }
-  return 1;
-}
-
-const LeafContentToken *
-LeafContentToken::transitionToken(const ElementType *to,
-				  const AndState &andState,
-				  unsigned minAndDepth) const
-{
-  Vector<LeafContentToken *>::const_iterator p = follow_.begin();
-  if (!andInfo_) {
-    for (size_t n = follow_.size(); n > 0; n--, p++)
-      if ((*p)->elementType() == to)
-	return *p;
-  }
-  else {
-    Vector<Transition>::const_iterator q = andInfo_->follow.begin();
-    for (size_t n = follow_.size(); n > 0; n--, p++, q++)
-      if ((*p)->elementType() == to
-	  && ((q->requireClear == unsigned(Transition::invalidIndex)
-	       || andState.isClear(q->requireClear))
-	      && q->andDepth >= minAndDepth))
-	return (*p);
-  }
-  return 0;
-}
-
-Boolean
-LeafContentToken::tryTransition(const ElementType *to,
-				AndState &andState,
-				unsigned &minAndDepth,
-				const LeafContentToken *&newpos) const
-{
-  Vector<LeafContentToken *>::const_iterator p = follow_.begin();
-  if (!andInfo_) {
-    for (size_t n = follow_.size(); n > 0; n--, p++) {
-      if ((*p)->elementType() == to) {
-	newpos = *p;
-	minAndDepth = newpos->computeMinAndDepth(andState);
-	return 1;
-      }
-    }
-  }
-  else {
-    Vector<Transition>::const_iterator q = andInfo_->follow.begin();
-    for (size_t n = follow_.size(); n > 0; n--, p++, q++) {
-    if ((*p)->elementType() == to
-	&& ((q->requireClear == unsigned(Transition::invalidIndex)
-	     || andState.isClear(q->requireClear))
-	    && q->andDepth >= minAndDepth)) {
-	if (q->toSet != unsigned(Transition::invalidIndex))
-	  andState.set(q->toSet);
-	andState.clearFrom(q->clearAndStateStartIndex);
-	newpos = *p;
-	minAndDepth = newpos->computeMinAndDepth(andState);
-	return 1;
-      }
-    }
-  }
-  return 0;
-}
-
-void
-LeafContentToken::possibleTransitions(const AndState &andState,
-				      unsigned minAndDepth,
-				      Vector<const ElementType *> &v) const
-{
-  Vector<LeafContentToken *>::const_iterator p = follow_.begin();
-  if (!andInfo_) {
-    for (size_t n = follow_.size(); n > 0; n--, p++) 
-      v.push_back((*p)->elementType());
-  }
-  else {
-    Vector<Transition>::const_iterator q = andInfo_->follow.begin();
-    for (size_t n = follow_.size(); n > 0; n--, p++, q++)
-      if ((q->requireClear == unsigned(Transition::invalidIndex)
-	   || andState.isClear(q->requireClear))
-	&& q->andDepth >= minAndDepth)
-	v.push_back((*p)->elementType());
-  }
-}
-
-unsigned LeafContentToken::computeMinAndDepth1(const AndState &andState) const
-{
-  ASSERT(andInfo_ != 0);
-  unsigned groupIndex = andInfo_->andGroupIndex;
-  for (const AndModelGroup *group = andInfo_->andAncestor;
-       group;
-       groupIndex = group->andGroupIndex(), group = group->andAncestor())
-    for (unsigned i = 0; i < group->nMembers(); i++)
-      if (i != groupIndex && !group->member(i).inherentlyOptional()
-	  && andState.isClear(group->andIndex() + i))
-	return group->andDepth() + 1;
-  return 0;
-}
-
-const LeafContentToken *
-LeafContentToken::impliedStartTag(const AndState &andState,
-				  unsigned minAndDepth) const
-{
-  if (requiredIndex_ != size_t(-1)) {
-    if (!andInfo_)
-      return follow_[requiredIndex_];
-    const Transition &t = andInfo_->follow[requiredIndex_];
-    if ((t.requireClear == unsigned(Transition::invalidIndex)
-	 || andState.isClear(t.requireClear))
-	&& t.andDepth >= minAndDepth)
-      return follow_[requiredIndex_];
-  }
-  return 0;
-}
-
-void LeafContentToken::doRequiredTransition(AndState &andState,
-					    unsigned &minAndDepth,
-					    const LeafContentToken *&newpos)
-     const
-{
-  ASSERT(requiredIndex_ != size_t(-1));
-  if (andInfo_) {
-    const Transition &t = andInfo_->follow[requiredIndex_];
-    if (t.toSet != unsigned(Transition::invalidIndex))
-      andState.set(t.toSet);
-    andState.clearFrom(t.clearAndStateStartIndex);
-  }
-  newpos = follow_[requiredIndex_];
-  minAndDepth = newpos->computeMinAndDepth(andState);
-}
-
-FirstSet::FirstSet()
-: requiredIndex_(size_t(-1))
-{
-}
-
-void FirstSet::init(LeafContentToken *p)
-{
-  v_.assign(1, p);
-  v_.reserve(256);
-  requiredIndex_ = 0;
-}
-
-void FirstSet::append(const FirstSet &set)
-{
-  if (set.requiredIndex_ != size_t(-1)) {
-    ASSERT(requiredIndex_ == size_t(-1));
-    requiredIndex_ = set.requiredIndex_ + v_.size();
-  }
-  size_t oldSize = v_.size();
-  v_.resize(v_.size() + set.v_.size());
-  for (size_t i = 0; i < set.v_.size(); i++)
-    v_[oldSize + i] = set.v_[i];
-}
-
-void LastSet::append(const LastSet &set)
-{
-  size_t oldSize = size();
-  resize(size() + set.size());
-  for (size_t i = 0; i < set.size(); i++)
-    (*this)[oldSize + i] = set[i];
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/DescriptorManager.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "DescriptorManager.h"
-#include "ListIter.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-DescriptorUser::DescriptorUser(DescriptorManager *manager)
-: manager_(manager)
-{
-  if (manager_)
-    manager_->addUser(this);
-}
-
-DescriptorUser::~DescriptorUser()
-{
-  if (manager_)
-    manager_->removeUser(this);
-}
-
-void DescriptorUser::managerDeleted()
-{
-  manager_ = 0;
-}
-
-Boolean DescriptorUser::suspend()
-{
-  return 0;
-}
-
-void DescriptorUser::acquireD()
-{
-  if (manager_)
-    manager_->acquireD();
-}
-
-void DescriptorUser::releaseD()
-{
-  if (manager_)
-    manager_->releaseD();
-}
-
-DescriptorManager::DescriptorManager(int maxD)
-: maxD_(maxD), usedD_(0)
-{
-}
-
-DescriptorManager::~DescriptorManager()
-{
-  for (ListIter<DescriptorUser *> iter(users_);
-       !iter.done();
-       iter.next())
-    iter.cur()->managerDeleted();
-}
-
-void DescriptorManager::addUser(DescriptorUser *p)
-{
-  users_.insert(p);
-}
-
-void DescriptorManager::removeUser(DescriptorUser *p)
-{
-  users_.remove(p);
-}
-
-void DescriptorManager::acquireD()
-{
-  if (usedD_ >= maxD_) {
-    for (ListIter<DescriptorUser *> iter(users_);
-	 !iter.done();
-	 iter.next()) {
-      if (iter.cur()->suspend())
-	break;
-    }
-  }
-  usedD_++;
-}
-
-void DescriptorManager::releaseD()
-{
-  usedD_--;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Dtd.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Dtd.h"
-#include "Syntax.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Dtd::Dtd(const StringC &name, Boolean isBase)
-: name_(new StringResource<Char>(name)),
-  nCurrentAttribute_(0),
-  nElementDefinition_(0),
-  nAttributeDefinitionList_(0),
-  nElementType_(0),
-  isBase_(isBase)
-{
-  documentElementType_ = new ElementType(name, allocElementTypeIndex());
-  insertElementType(documentElementType_);
-}
-
-Boolean Dtd::shortrefIndex(const StringC &str, const Syntax &syntax,
-			   size_t &index)
-{
-  const int *indexP = shortrefTable_.lookup(str);
-  if (indexP) {
-    index = *indexP;
-    return 1;
-  }
-  if (!syntax.isValidShortref(str))
-    return 0;
-  shortrefTable_.insert(str, int(shortrefs_.size()));
-  index = shortrefs_.size();
-  shortrefs_.push_back(str);
-  return 1;
-}
-
-void Dtd::addNeededShortref(const StringC &str)
-{
-  if (!shortrefTable_.lookup(str)) {
-    shortrefTable_.insert(str, shortrefs_.size());
-    shortrefs_.push_back(str);
-  }
-}
-
-void Dtd::setDefaultEntity(const Ptr<Entity> &entity,
-			   ParserState &parser)
-{
-  defaultEntity_ = entity;
-  
-  // If the new default entity was defined in a DTD, then
-  // any defaulted entities must have come from an LPD
-  // on the first pass, in which case we shouldn't replace them.
-  // Otherwise we need to replace all the defaulted entities.
-  if (entity->declInActiveLpd()) {
-    NamedResourceTable<Entity> tem;
-    {
-      EntityIter iter(generalEntityTable_);
-      for (;;) {
-	Ptr<Entity> old(iter.next());
-	if (old.isNull())
-	  break;
-	if (old->defaulted()) {
-	  Ptr<Entity> e(defaultEntity_->copy());
-	  e->setDefaulted();
-	  e->setName(old->name());
-	  e->generateSystemId(parser);
-	  tem.insert(e);
-	}
-      }
-    }
-    {
-      EntityIter iter(tem);
-      for (;;) {
-	Ptr<Entity> e(iter.next());
-	if (e.isNull())
-	  break;
-	generalEntityTable_.insert(e, 1);
-      }
-    }
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/EUCJPCodingSystem.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-
-#ifdef SP_MULTI_BYTE
-
-#include "EUCJPCodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class EUCJPDecoder : public Decoder {
-public:
-  EUCJPDecoder() { }
-  size_t decode(Char *, const char *, size_t, const char **);
-private:
-};
-
-class EUCJPEncoder : public Encoder {
-public:
-  EUCJPEncoder() { }
-  void output(const Char *, size_t, OutputByteStream *);
-  void output(Char *tmp_char, size_t tmp_size_t, OutputByteStream *tmp_obs) {
-        output((const Char *)tmp_char, (size_t) tmp_size_t, (OutputByteStream *)tmp_obs);
-  }
-
-};
-
-Decoder *EUCJPCodingSystem::makeDecoder() const
-{
-  return new EUCJPDecoder;
-}
-
-Encoder *EUCJPCodingSystem::makeEncoder() const
-{
-  return new EUCJPEncoder;
-}
-
-size_t EUCJPDecoder::decode(Char *to, const char *s,
-			    size_t slen, const char **rest)
-{
-  Char *start = to;
-  const unsigned char *us = (const unsigned char *)s;
-  while (slen > 0) {
-    if (!(*us & 0x80)) {
-      // G0
-      *to++ = *us++;
-      slen--;
-    }
-    else if (*us == 0x8e) {
-      // G2
-      if (slen < 2)
-	break;
-      slen -= 2;
-      ++us;
-      *to++ = *us++ | 0x80;
-    }
-    else if (*us == 0x8f) {
-      // G3
-      if (slen < 3)
-	break;
-      slen -= 3;
-      ++us;
-      unsigned short n = (*us++ | 0x80) << 8;
-      n |= (*us++ & ~0x80);
-      *to++ = n;
-    }
-    else {
-      // G1
-      if (slen < 2)
-	break;
-      slen -= 2;
-      unsigned short n = *us++ << 8;
-      n |= (*us++ | 0x80);
-      *to++ = n;
-    }
-  }
-  *rest = (const char *)us;
-  return to - start;
-}
-
-
-void EUCJPEncoder::output(const Char *s, size_t n, OutputByteStream *sb)
-{
-  for (; n > 0; s++, n--) {
-    Char c = *s;
-    unsigned short mask = (unsigned short)(c & 0x8080);
-    if (mask == 0)
-      sb->sputc((unsigned char)(c & 0xff));
-    else if (mask == 0x8080) {
-      sb->sputc((unsigned char)((c >> 8) & 0xff));
-      sb->sputc((unsigned char)(c & 0xff));
-    }
-    else if (mask == 0x0080) {
-      sb->sputc((unsigned char)0x8e);
-      sb->sputc((unsigned char)(c & 0xff));
-    }
-    else {
-      // mask == 0x8000
-      sb->sputc((unsigned char)0x8f);
-      sb->sputc((unsigned char)((c >> 8) & 0xff));
-      sb->sputc((unsigned char)(c & 0x7f));
-    }
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#else /* not SP_MULTI_BYTE */
-
-#ifndef __GNUG__
-static char non_empty_translation_unit;	// sigh
-#endif
-
-#endif /* not SP_MULTI_BYTE */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ElementType.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "ElementType.h"
-#include "ContentToken.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-ElementType::ElementType(const StringC &name, size_t index)
-: Named(name), index_(index), map_(0), defIndex_(0)
-{
-}
-
-ElementDefinition::ElementDefinition(const Location &location,
-				     size_t index,
-				     unsigned char omitFlags,
-				     DeclaredContent declaredContent)
-: location_(location),
-  index_(index),
-  omitFlags_(omitFlags),
-  declaredContent_(declaredContent)
-{
-  computeMode();
-}
-
-ElementDefinition::ElementDefinition(const Location &location,
-				     size_t index,
-				     unsigned char omitFlags,
-				     DeclaredContent declaredContent,
-				     Owner<CompiledModelGroup> &LOCALmodelGroup)
-: location_(location),
-  index_(index),
-  omitFlags_(omitFlags),
-  declaredContent_(declaredContent),
-  modelGroup_(LOCALmodelGroup.extract())
-{
-  computeMode();
-}
-
-void ElementDefinition::computeMode()
-{
-  switch (declaredContent_) {
-  case modelGroup:
-    if (!modelGroup_->containsPcdata()) {
-      netMode_ = econnetMode;
-      mode_ = econMode;
-      break;
-    }
-    // fall through
-  case any:
-    netMode_ = mconnetMode;
-    mode_ = mconMode;
-    break;
-  case cdata:
-    netMode_ = cconnetMode;
-    mode_ = cconMode;
-    break;
-  case rcdata:
-    netMode_ = rcconnetMode;
-    mode_ = rcconMode;
-    break;
-  case empty:
-    break;
-  default:
-    CANNOT_HAPPEN();
-  }
-}
-
-void ElementType::swap(ElementType &to)
-{
-  Named::swap(to);
-  {
-    size_t tem = to.index_;
-    to.index_ = index_;
-    index_ = tem;
-  }
-  {
-    size_t tem = to.defIndex_;
-    to.defIndex_ = defIndex_;
-    defIndex_ = tem;
-  }
-  def_.swap(to.def_);
-  {
-    const ShortReferenceMap *tem = to.map_;
-    to.map_ = map_;
-    map_ = tem;
-  }
-}
-
-RankStem::RankStem(const StringC &name, size_t index)
-: Named(name), index_(index)
-{
-}
-
-void RankStem::addDefinition(const ConstPtr<ElementDefinition> &p)
-{
-  def_.push_back(p);
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Entity.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,589 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Entity.h"
-#include "ParserState.h"
-#include "macros.h"
-#include "InternalInputSource.h"
-#include "MessageArg.h"
-#include "ParserMessages.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Entity::Entity(const StringC &name, DeclType declType, DataType dataType,
-	       const Location &defLocation)
-: EntityDecl(name, declType, dataType, defLocation),
-  used_(0), defaulted_(0)
-{
-}
-
-void Entity::generateSystemId(ParserState &)
-{
-}
-
-InternalEntity::InternalEntity(const StringC &name,
-			       DeclType declType,
-			       DataType dataType,
-			       const Location &defLocation,
-			       Text &text)
-: Entity(name, declType, dataType, defLocation)
-{
-  text.swap(text_);
-}
-
-PiEntity::PiEntity(const StringC &name, DeclType declType,
-		   const Location &defLocation, Text &text)
-: InternalEntity(name, declType, pi, defLocation, text)
-{
-}
-
-Entity *PiEntity::copy() const
-{
-  return new PiEntity(*this);
-}
-
-InternalDataEntity::InternalDataEntity(const StringC &name, DataType dataType,
-				       const Location &defLocation, Text &text)
-: InternalEntity(name, generalEntity, dataType, defLocation, text)
-{
-}
-
-
-InternalCdataEntity::InternalCdataEntity(const StringC &name,
-					 const Location &defLocation,
-					 Text &text)
-: InternalDataEntity(name, cdata, defLocation, text)
-{
-}
-
-Entity *InternalCdataEntity::copy() const
-{
-  return new InternalCdataEntity(*this);
-}
-
-InternalSdataEntity::InternalSdataEntity(const StringC &name,
-					 const Location &defLocation,
-					 Text &text)
-: InternalDataEntity(name, sdata, defLocation, text)
-{
-}
-
-Entity *InternalSdataEntity::copy() const
-{
-  return new InternalSdataEntity(*this);
-}
-
-InternalTextEntity::InternalTextEntity(const StringC &name, DeclType declType,
-				       const Location &defLocation, Text &text,
-				       Bracketed bracketed)
-: InternalEntity(name, declType, sgmlText, defLocation, text),
-  bracketed_(bracketed)
-{
-}
-
-Entity *InternalTextEntity::copy() const
-{
-  return new InternalTextEntity(*this);
-}
-
-
-ExternalEntity::ExternalEntity(const StringC &name,
-			       DeclType declType,
-			       DataType dataType,
-			       const Location &defLocation,
-			       const ExternalId &id)
-: Entity(name, declType, dataType, defLocation), externalId_(id)
-{
-}
-
-const ExternalEntity *ExternalEntity::asExternalEntity() const
-{
-  return this;
-}
-
-const StringC *ExternalEntity::systemIdPointer() const
-{
-  return externalId_.systemIdString();
-}
-
-const StringC *ExternalEntity::effectiveSystemIdPointer() const
-{
-  if (externalId_.effectiveSystemId().size() > 0)
-    return &externalId_.effectiveSystemId();
-  return 0;
-}
-
-const StringC *ExternalEntity::publicIdPointer() const
-{
-  return externalId_.publicIdString();
-}
-
-void ExternalEntity::generateSystemId(ParserState &parser)
-{
-  StringC str;
-  if (parser.entityCatalog().lookup(*this,
-				    parser.syntax(),
-				    parser.sd().docCharset(),
-				    parser.messenger(),
-				    str))
-    externalId_.setEffectiveSystem(str);
-  // Don't generate warning when declType == sgml.
-  else if (externalId_.publicIdString()) {
-    if (declType() != sgml)
-      parser.message(ParserMessages::cannotGenerateSystemIdPublic,
-		     StringMessageArg(*externalId_.publicIdString()));
-  }
-  else {
-    switch (declType()) {
-    case generalEntity:
-      parser.message(ParserMessages::cannotGenerateSystemIdGeneral,
-		     StringMessageArg(name()));
-      break;
-    case parameterEntity:
-      parser.message(ParserMessages::cannotGenerateSystemIdParameter,
-		     StringMessageArg(name()));
-      break;
-    case doctype:
-      parser.message(ParserMessages::cannotGenerateSystemIdDoctype,
-		     StringMessageArg(name()));
-      break;
-    case linktype:
-      parser.message(ParserMessages::cannotGenerateSystemIdLinktype,
-		     StringMessageArg(name()));
-      break;
-    case sgml:
-      break;
-    default:
-      CANNOT_HAPPEN();
-    }
-  }
-}
-
-ExternalTextEntity::ExternalTextEntity(const StringC &name,
-				       DeclType declType,
-				       const Location &defLocation,
-				       const ExternalId &id)
-: ExternalEntity(name, declType, sgmlText, defLocation, id)
-{
-}
-
-Entity *ExternalTextEntity::copy() const
-{
-  return new ExternalTextEntity(*this);
-}
-
-ExternalNonTextEntity::ExternalNonTextEntity(const StringC &name,
-					     DataType dataType,
-					     const Location &defLocation,
-					     const ExternalId &id)
-: ExternalEntity(name, generalEntity, dataType, defLocation, id)
-{
-}
-
-ExternalDataEntity::ExternalDataEntity(const StringC &name,
-				       DataType dataType,
-				       const Location &defLocation,
-				       const ExternalId &id,
-				       const ConstPtr<Notation> &nt,
-				       
-				       AttributeList &attributes)
-: ExternalNonTextEntity(name, dataType, defLocation, id),
-  notation_(nt)
-{
-  attributes.swap(attributes_);
-}
-
-void ExternalDataEntity::setNotation(const ConstPtr<Notation> &notation,
-				     AttributeList &attributes)
-{
-  notation_ = notation;
-  attributes.swap(attributes_);
-}
-
-Entity *ExternalDataEntity::copy() const
-{
-  return new ExternalDataEntity(*this);
-}
-
-SubdocEntity::SubdocEntity(const StringC &name,
-			   const Location &defLocation,
-			   const ExternalId &id)
-: ExternalNonTextEntity(name, subdoc, defLocation, id)
-{
-}
-
-Entity *SubdocEntity::copy() const
-{
-  return new SubdocEntity(*this);
-}
-
-Boolean Entity::isDataOrSubdoc() const
-{
-  return 0;
-}
-
-Boolean Entity::isCharacterData() const
-{
-  return 0;
-}
-
-const ExternalEntity *Entity::asExternalEntity() const
-{
-  return 0;
-}
-
-const ExternalDataEntity *Entity::asExternalDataEntity() const
-{
-  return 0;
-}
-
-const SubdocEntity *Entity::asSubdocEntity() const
-{
-  return 0;
-}
-
-const InternalEntity *Entity::asInternalEntity() const
-{
-  return 0;
-}
-
-void Entity::dsReference(ParserState &parser,
-			 const Ptr<EntityOrigin> &origin)
-     const
-{
-  normalReference(parser, origin, 1);
-}
-
-void Entity::declReference(ParserState &parser,
-			   const Ptr<EntityOrigin> &origin)
-     const
-{
-  normalReference(parser, origin, 0);
-  if (parser.currentMarkup())
-    parser.currentMarkup()->addEntityStart(origin);
-}
-
-void Entity::contentReference(ParserState &parser,
-			      const Ptr<EntityOrigin> &origin)
-     const
-{
-  normalReference(parser, origin, 1);
-}
-
-void Entity::rcdataReference(ParserState &parser,
-			   const Ptr<EntityOrigin> &origin)
-     const
-{
-  normalReference(parser, origin, 1);
-}
-
-void Entity::litReference(Text &, ParserState &parser,
-			  const Ptr<EntityOrigin> &origin,
-			  Boolean)
-     const
-{
-  normalReference(parser, origin, 0);
-}
-
-const InternalEntity *InternalEntity::asInternalEntity() const
-{
-  return this;
-}
-
-void PiEntity::litReference(Text &, ParserState &parser,
-			    const Ptr<EntityOrigin> &,
-			    Boolean) const
-{
-  parser.message(ParserMessages::piEntityReference);
-}
-
-void PiEntity::normalReference(ParserState &parser,
-			       const Ptr<EntityOrigin> &origin,
-			       Boolean) const
-{
-  parser.noteMarkup();
-  parser.eventHandler().pi(new (parser.eventAllocator())
-			   PiEntityEvent(this, origin.pointer()));
-}
-
-void PiEntity::declReference(ParserState &parser,
-			     const Ptr<EntityOrigin> &) const
-{
-  parser.message(ParserMessages::piEntityReference);
-}
-
-void PiEntity::rcdataReference(ParserState &parser,
-			       const Ptr<EntityOrigin> &) const
-{
-  parser.message(ParserMessages::piEntityRcdata);
-}
-
-void InternalDataEntity::declReference(ParserState &parser,
-				       const Ptr<EntityOrigin> &) const
-{
-  parser.message(ParserMessages::internalDataEntityReference);
-}
-
-Boolean InternalDataEntity::isDataOrSubdoc() const
-{
-  return 1;
-}
-
-void InternalCdataEntity::normalReference(ParserState &parser,
-					  const Ptr<EntityOrigin> &origin,
-					  Boolean) const
-{
-  checkEntlvl(parser);
-  if (string().size() > 0) {
-    parser.noteData();
-    parser.eventHandler().data(new (parser.eventAllocator())
-			       CdataEntityEvent(this, origin.pointer()));
-  }
-}
-
-Boolean InternalCdataEntity::isCharacterData() const
-{
-  return string().size() > 0;
-}
-
-void InternalCdataEntity::litReference(Text &text,
-				       ParserState &parser,
-				       const Ptr<EntityOrigin> &origin,
-				       Boolean squeeze) const
-{
-  checkEntlvl(parser);
-  if (squeeze) {
-    Location loc(origin.pointer(), 0);
-    text.addEntityStart(loc);
-    text.addCharsTokenize(text_.string(), loc, parser.syntax().space());
-    loc += text_.size();
-    text.addEntityEnd(loc);
-  }
-  else
-    text.addCdata(this, origin.pointer());
-}
-
-
-void InternalSdataEntity::normalReference(ParserState &parser,
-					  const Ptr<EntityOrigin> &origin,
-					  Boolean) const
-{
-  checkEntlvl(parser);
-  parser.noteData();
-  parser.eventHandler().sdataEntity(new (parser.eventAllocator())
-				    SdataEntityEvent(this,
-						     origin.pointer()));
-}
-
-Boolean InternalSdataEntity::isCharacterData() const
-{
-  return 1;
-}
-
-void InternalSdataEntity::litReference(Text &text,
-				       ParserState &parser,
-				       const Ptr<EntityOrigin> &origin,
-				       Boolean squeeze) const
-{
-  checkEntlvl(parser);
-  if (squeeze) {
-    Location loc(origin.pointer(), 0);
-    text.addEntityStart(loc);
-    text.addCharsTokenize(text_.string(), loc, parser.syntax().space());
-    loc += text_.size();
-    text.addEntityEnd(loc);
-  }
-  else
-    text.addSdata(this, origin.pointer());
-}
-
-void InternalTextEntity::normalReference(ParserState &parser,
-					 const Ptr<EntityOrigin> &origin,
-					 Boolean generateEvent) const
-{
-  checkEntlvl(parser);
-  if (checkNotOpen(parser)) {
-    if (generateEvent && parser.wantMarkup())
-      parser.eventHandler().entityStart(new (parser.eventAllocator())
-					EntityStartEvent(origin));
-    parser.pushInput(new (parser.internalAllocator())
-		     InternalInputSource(text_.string(), origin.pointer()));
-  }
-}
-
-void InternalTextEntity::litReference(Text &text,
-				      ParserState &parser,
-				      const Ptr<EntityOrigin> &origin,
-				      Boolean) const
-{
-  text.addEntityStart(Location(origin.pointer(), 0));
-  normalReference(parser, origin, 0);
-}
-
-void ExternalTextEntity::normalReference(ParserState &parser,
-					 const Ptr<EntityOrigin> &origin,
-					 Boolean generateEvent) const
-{
-  checkEntlvl(parser);
-  if (checkNotOpen(parser)) {
-    if (generateEvent && parser.wantMarkup())
-      parser.eventHandler().entityStart(new (parser.eventAllocator())
-					EntityStartEvent(origin));
-    if (externalId().effectiveSystemId().size())
-      parser.pushInput(parser.entityManager()
-		       .open(externalId().effectiveSystemId(),
-			     parser.sd().docCharset(),
-			     origin.pointer(),
-			     0,
-			     parser.messenger()));
-    else
-      parser.message(ParserMessages::nonExistentEntityRef,
-		     StringMessageArg(name()),
-		     defLocation());
-  }
-}
-
-void ExternalTextEntity::litReference(Text &text,
-				      ParserState &parser,
-				      const Ptr<EntityOrigin> &origin,
-				      Boolean) const
-{
-  if (parser.options().warnAttributeValueExternalEntityRef
-      && declType() == generalEntity)
-    parser.message(ParserMessages::attributeValueExternalEntityRef);
-  text.addEntityStart(Location(origin.pointer(), 0));
-  normalReference(parser, origin, 0);
-}
-
-const ExternalDataEntity *ExternalDataEntity::asExternalDataEntity() const
-{
-  return this;
-}
-
-void ExternalDataEntity::contentReference(ParserState &parser,
-					  const Ptr<EntityOrigin> &origin) const
-{
-  if (parser.options().warnExternalDataEntityRef)
-    parser.message(ParserMessages::externalDataEntityRef);
-  checkEntlvl(parser);
-  parser.noteData();
-  parser.eventHandler().externalDataEntity(new (parser.eventAllocator())
-					   ExternalDataEntityEvent(this, origin.pointer()));
-}
-
-Boolean ExternalNonTextEntity::isDataOrSubdoc() const
-{
-  return 1;
-}
-
-Boolean ExternalNonTextEntity::isCharacterData() const
-{
-  return 1;
-}
-
-
-void ExternalNonTextEntity::normalReference(ParserState &parser,
-					    const Ptr<EntityOrigin> &,
-					    Boolean) const
-{
-  parser.message(ParserMessages::externalNonTextEntityReference);
-}
-
-void ExternalNonTextEntity::litReference(Text &,
-					 ParserState &parser,
-					 const Ptr<EntityOrigin> &,
-					 Boolean) const
-{
-  parser.message(ParserMessages::externalNonTextEntityRcdata);
-}
-
-void ExternalNonTextEntity::rcdataReference(ParserState &parser,
-					    const Ptr<EntityOrigin> &) const
-{
-  parser.message(ParserMessages::externalNonTextEntityRcdata);
-}
-
-void SubdocEntity::contentReference(ParserState &parser,
-				    const Ptr<EntityOrigin> &origin) const
-{
-  checkEntlvl(parser);
-  parser.noteData();
-  parser.eventHandler().subdocEntity(new (parser.eventAllocator())
-				     SubdocEntityEvent(this, origin.pointer()));
-}
-
-const SubdocEntity *SubdocEntity::asSubdocEntity() const
-{
-  return this;
-}
-
-IgnoredEntity::IgnoredEntity(const StringC &name, DeclType declType)
-: Entity(name, declType, sgmlText, Location())
-{
-}
-
-Entity *IgnoredEntity::copy() const
-{
-  return new IgnoredEntity(*this);
-}
-
-void IgnoredEntity::declReference(ParserState &parser,
-				  const Ptr<EntityOrigin> &origin)
-     const
-{
-  if (parser.currentMarkup()) {
-    parser.currentMarkup()->addEntityStart(origin);
-    parser.currentMarkup()->addEntityEnd();
-  }
-}
-
-void IgnoredEntity::litReference(Text &text,
-				 ParserState &,
-				 const Ptr<EntityOrigin> &origin,
-				 Boolean) const
-{
-  text.addEntityStart(Location(origin.pointer(), 0));
-  text.addEntityEnd(Location(origin.pointer(), 0));
-}
-
-void IgnoredEntity::normalReference(ParserState &parser,
-				    const Ptr<EntityOrigin> &origin,
-				    Boolean generateEvent) const
-{
-  if (generateEvent && parser.wantMarkup()) {
-    parser.eventHandler().entityStart(new (parser.eventAllocator())
-				      EntityStartEvent(origin));
-    Location loc(origin.pointer(), 0);
-    parser.eventHandler().entityEnd(new (parser.eventAllocator())
-				    EntityEndEvent(loc));
-  }
-}
-
-void Entity::checkEntlvl(ParserState &parser)
-{
-  // -1 because document entity isn't counted
-  if (parser.inputLevel() - 1 == parser.syntax().entlvl())
-    parser.message(ParserMessages::entlvl);
-}
-
-Boolean Entity::checkNotOpen(ParserState &parser) const
-{
-  if (parser.entityIsOpen(this)) {
-    parser.message(ParserMessages::recursiveEntityReference,
-		   StringMessageArg(name()));
-    return 0;
-  }
-  return 1;
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/EntityApp.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "EntityApp.h"
-#include "sptchar.h"
-
-#include <stdlib.h>
-
-#include "PosixStorage.h"
-#ifdef SP_WININET
-#include "WinInetStorage.h"
-#else
-#include "URLStorage.h"
-#endif
-#include "LiteralStorage.h"
-#include "NotationStorage.h"
-#include "ExtendEntityManager.h"
-#include "SOEntityCatalog.h"
-#include "CodingSystem.h"
-#include "macros.h"
-
-#ifndef SGML_SEARCH_PATH_DEFAULT
-#define SGML_SEARCH_PATH_DEFAULT SP_T("")
-#endif
-
-#ifndef SGML_CATALOG_FILES_DEFAULT
-#define SGML_CATALOG_FILES_DEFAULT SP_T("")
-#endif /* not SGML_CATALOG_FILES_DEFAULT */
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-#ifdef SP_MSDOS_FILENAMES
-const Char FILE_SEP = ';';
-#else
-const Char FILE_SEP = ':';
-#endif
-
-EntityApp::EntityApp(const char *requiredInternalCode)
-: CmdLineApp(requiredInternalCode),
-  mapCatalogDocument_(0)
-{
-  registerOption('c', SP_T("catalog_sysid"));
-  registerOption('C');
-  registerOption('D', SP_T("dir"));
-}
-
-void EntityApp::processOption(AppChar opt, const AppChar *arg)
-{
-  switch (opt) {
-  case 'c':
-    catalogSysids_.push_back(arg);
-    break;
-  case 'C':
-    mapCatalogDocument_ = 1;
-    break;
-  case 'D':
-    searchDirs_.push_back(arg);
-    break;
-  default:
-    CmdLineApp::processOption(opt, arg);
-    break;
-  }
-}
-
-int EntityApp::processArguments(int argc, AppChar **argv)
-{
-  StringC sysid;
-  if (!makeSystemId(argc, argv, sysid))
-    return 1;
-  return processSysid(sysid);
-}
-
-Boolean EntityApp::makeSystemId(int nFiles, AppChar *const *files,
-					StringC &result)
-{
-  Vector<StringC> filenames(nFiles == 0 ? 1 : nFiles);
-  int i;
-  for (i = 0; i < nFiles; i++)
-    filenames[i] = convertInput(tcscmp(files[i], SP_T("-")) == 0
-				? SP_T("<OSFD>0")
-				: files[i]);
-  if (nFiles == 0)
-    filenames[0] = convertInput(SP_T("<OSFD>0"));
-  return entityManager()->mergeSystemIds(filenames,
-					 mapCatalogDocument_,
-					 systemCharset(),
-					 *this,
-					 result);
-}
-
-
-Ptr<ExtendEntityManager> &EntityApp::entityManager()
-{
-  if (!entityManager_.isNull())
-    return entityManager_;
-  PosixStorageManager *sm
-    = new PosixStorageManager("OSFILE",
-			      &systemCharset(),
-#ifndef SP_WIDE_SYSTEM
-			      codingSystem(),
-#endif
-			      5);
-  size_t i;
-  for (i = 0; i < searchDirs_.size(); i++)
-    sm->addSearchDir(convertInput(searchDirs_[i]));
-  {
-    const AppChar *e = tgetenv(SP_T("SGML_SEARCH_PATH"));
-    if (!e)
-      e = SGML_SEARCH_PATH_DEFAULT;
-    if (*e) {
-      StringC str(convertInput(e));
-      size_t i = 0;
-      size_t start = 0;
-      for (;;) {
-	if (i == str.size() || str[i] == FILE_SEP) {
-	  sm->addSearchDir(StringC(str.data() + start,
-				   i - start));
-	  if (i == str.size())
-	    break;
-	  start = ++i;
-	}
-	else
-	  i++;
-      }
-    }
-  }
-
-  entityManager_ = ExtendEntityManager::make(sm,
-					     codingSystem(),
-					     inputCodingSystemKit(),
-					     internalCharsetIsDocCharset_);
-  entityManager_
-  ->registerStorageManager(new PosixFdStorageManager("OSFD",
-						     &systemCharset()));
-#ifdef SP_WININET
-  entityManager_->registerStorageManager(new WinInetStorageManager("URL"));
-#else
-  entityManager_->registerStorageManager(new URLStorageManager("URL"));
-#endif
-  entityManager_->registerStorageManager(new LiteralStorageManager("LITERAL"));
-  entityManager_->registerStorageManager(new NotationStorageManager("CLSID"));
-  entityManager_->registerStorageManager(new NotationStorageManager("MIMETYPE"));
-  Vector<StringC> v;
-  for (i = 0; i < catalogSysids_.size(); i++)
-    // filenames specified on command-line must exist
-    v.push_back(convertInput(catalogSysids_[i]));
-  {
-    const AppChar *e = tgetenv(SP_T("SGML_CATALOG_FILES"));
-    if (!e)
-      e = SGML_CATALOG_FILES_DEFAULT;
-    if (*e) {
-      StringC str(convertInput(e));
-      size_t i = 0;
-      size_t start = 0;
-      for (;;) {
-	if (i == str.size() || str[i] == FILE_SEP) {
-	  v.push_back(StringC(str.data() + start,
-			      i - start));
-	  if (i == str.size())
-	    break;
-	  start = ++i;
-	}
-	else
-	  i++;
-      }
-    }
-  }
-  const SP_TCHAR *useDocCatalogStr = tgetenv(SP_T("SP_USE_DOCUMENT_CATALOG"));
-  Boolean useDocCatalog = true;
-  if (useDocCatalogStr
-      && (stringMatches(useDocCatalogStr, "NO")
-          || stringMatches(useDocCatalogStr, "0")))
-    useDocCatalog = false;
-  entityManager_->setCatalogManager(SOCatalogManager::make(v,
-							   catalogSysids_.size(),
-							   &systemCharset(),
-							   &systemCharset(),
-							   useDocCatalog));
-  return entityManager_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/EntityCatalog.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "EntityCatalog.h"
-#include "EntityDecl.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-EntityCatalog::~EntityCatalog()
-{
-}
-
-
-Boolean EntityCatalog::sgmlDecl(const CharsetInfo &,
-				Messenger &,
-				StringC &) const
-{
-  return 0;
-}
-
-Boolean EntityCatalog::lookup(const EntityDecl &decl,
-			      const Syntax &,
-			      const CharsetInfo &,
-			      Messenger &,
-			      StringC &str) const
-{
-  const StringC *p = decl.systemIdPointer();
-  if (!p)
-    return 0;
-  str = *p;
-  return 1;
-}
-
-Boolean EntityCatalog::lookupPublic(const StringC &,
-				    const CharsetInfo &,
-				    Messenger &,
-				    StringC &) const
-{
-  return 0;
-}
-
-Boolean EntityCatalog::lookupChar(const StringC &,
-				  const CharsetInfo &,
-			    	  Messenger &,
-				  UnivChar &) const
-{
-  return 0;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/EntityDecl.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "EntityDecl.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-EntityDecl::EntityDecl(const StringC &str, DeclType declType, DataType dataType,
-		       const Location &defLocation)
-: NamedResource(str), declType_(declType), dataType_(dataType),
-  defLocation_(defLocation), dtdIsBase_(0), lpdIsActive_(0)
-{
-}
-
-void EntityDecl::setDeclIn(const ConstPtr<StringResource<Char> > &dtdName,
-			   Boolean dtdIsBase,
-			   const ConstPtr<StringResource<Char> > &lpdName,
-			   Boolean lpdIsActive)
-{
-  dtdName_ = dtdName;
-  lpdName_ = lpdName;
-  dtdIsBase_ = dtdIsBase;
-  lpdIsActive_ = lpdIsActive;
-}
-
-void EntityDecl::setDeclIn(const ConstPtr<StringResource<Char> > &dtdName,
-			   Boolean dtdIsBase)
-{
-  dtdName_ = dtdName;
-  lpdName_.clear();
-  dtdIsBase_ = dtdIsBase;
-}
-
-const StringC *EntityDecl::systemIdPointer() const
-{
-  return 0;
-}
-
-const StringC *EntityDecl::publicIdPointer() const
-{
-  return 0;
-}
-
-const StringC *EntityDecl::effectiveSystemIdPointer() const
-{
-  return 0;
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/EntityManager.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "EntityManager.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-EntityManager::~EntityManager()
-{
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/EntityManagerMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,306 +0,0 @@
-// This file was automatically generated from lib\EntityManagerMessages.msg by msggen.pl.
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct EntityManagerMessages {
-  // 2000
-  static const MessageType1 fsiSyntax;
-  // 2001
-  static const MessageType1 fsiMissingValue;
-  // 2002
-  static const MessageType1 fsiValueAsName;
-  // 2003
-  static const MessageType1 fsiBadSmcrd;
-  // 2004
-  static const MessageType1 fsiUnknownBctf;
-  // 2005
-  static const MessageType1 fsiUnknownEncoding;
-  // 2006
-  static const MessageType1 fsiUnsupportedRecords;
-  // 2007
-  static const MessageType1 fsiUnsupportedAttribute;
-  // 2008
-  static const MessageType1 fsiUnsupportedAttributeToken;
-  // 2009
-  static const MessageType1 fsiBadTracking;
-  // 2010
-  static const MessageType1 fsiDuplicateAttribute;
-  // 2011
-  static const MessageType1 fsiBadZapeof;
-  // 2012
-  static const MessageType1 fsiBadSearch;
-  // 2013
-  static const MessageType1 fsiBadFold;
-  // 2014
-  static const MessageType0 fsiFoldNotNeutral;
-  // 2015
-  static const MessageType0 fsiBctfEncodingNotApplicable;
-  // 2016
-  static const MessageType0 fsiBctfAndEncoding;
-  // 2017
-  static const MessageType0 fsiZapeofNotApplicable;
-  // 2018
-  static const MessageType0 fsiRecordsNotApplicable;
-  // 2019
-  static const MessageType1 fsiBadIndirect;
-  // 2020
-  static const MessageType1 fsiLookupChar;
-};
-const MessageType1 EntityManagerMessages::fsiSyntax(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2000
-#ifndef SP_NO_MESSAGE_TEXT
-,"bad formal system identifier syntax in %1"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiMissingValue(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2001
-#ifndef SP_NO_MESSAGE_TEXT
-,"value for attribute %1 missing in formal system identifier"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiValueAsName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2002
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is a formal system identifier attribute value not an attribute name"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiBadSmcrd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2003
-#ifndef SP_NO_MESSAGE_TEXT
-,"value of SMCRD attribute must be a single character not %1"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiUnknownBctf(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2004
-#ifndef SP_NO_MESSAGE_TEXT
-,"unknown BCTF %1"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiUnknownEncoding(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2005
-#ifndef SP_NO_MESSAGE_TEXT
-,"unknown encoding %1"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiUnsupportedRecords(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2006
-#ifndef SP_NO_MESSAGE_TEXT
-,"unsupported record boundary indicator %1"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiUnsupportedAttribute(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2007
-#ifndef SP_NO_MESSAGE_TEXT
-,"unsupported formal system identifier attribute %1"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiUnsupportedAttributeToken(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2008
-#ifndef SP_NO_MESSAGE_TEXT
-,"unsupported formal system identifier attribute value %1"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiBadTracking(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2009
-#ifndef SP_NO_MESSAGE_TEXT
-,"bad value %1 for formal system identifier tracking attribute"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiDuplicateAttribute(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2010
-#ifndef SP_NO_MESSAGE_TEXT
-,"duplicate specification for formal system identifier attribute %1"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiBadZapeof(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2011
-#ifndef SP_NO_MESSAGE_TEXT
-,"bad value %1 for formal system identifier zapeof attribute"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiBadSearch(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2012
-#ifndef SP_NO_MESSAGE_TEXT
-,"bad value %1 for formal system identifier search attribute"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiBadFold(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2013
-#ifndef SP_NO_MESSAGE_TEXT
-,"bad value %1 for formal system identifier fold attribute"
-#endif
-);
-const MessageType0 EntityManagerMessages::fsiFoldNotNeutral(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2014
-#ifndef SP_NO_MESSAGE_TEXT
-,"fold attribute allowed only for neutral storage manager"
-#endif
-);
-const MessageType0 EntityManagerMessages::fsiBctfEncodingNotApplicable(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2015
-#ifndef SP_NO_MESSAGE_TEXT
-,"BCTF and encoding attributes not applicable to this storage manager"
-#endif
-);
-const MessageType0 EntityManagerMessages::fsiBctfAndEncoding(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2016
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot specify both BCTF and encoding attribute"
-#endif
-);
-const MessageType0 EntityManagerMessages::fsiZapeofNotApplicable(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2017
-#ifndef SP_NO_MESSAGE_TEXT
-,"ZAPEOF attribute not applicable to this storage manager"
-#endif
-);
-const MessageType0 EntityManagerMessages::fsiRecordsNotApplicable(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2018
-#ifndef SP_NO_MESSAGE_TEXT
-,"RECORDS attribute not applicable to this storage manager"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiBadIndirect(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2019
-#ifndef SP_NO_MESSAGE_TEXT
-,"bad value %1 for formal system identifier indirect attribute"
-#endif
-);
-const MessageType1 EntityManagerMessages::fsiLookupChar(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2020
-#ifndef SP_NO_MESSAGE_TEXT
-,"non-minimum data character (number %1) in value of formal system identifier lookup attribute"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/EquivClass.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef EquivClass_INCLUDED
-#define EquivClass_INCLUDED 1
-
-#include "Link.h"
-#include "types.h"
-#include "ISet.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct EquivClass : public Link {
-  EquivClass(unsigned in = 0) : inSets(in) { }
-  ISet<Char> set;
-  unsigned inSets;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not EquivClass_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ErrnoMessageArg.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "ErrnoMessageArg.h"
-#include "StringOf.h"
-#include "MessageBuilder.h"
-
-#include <string.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-RTTI_DEF1(ErrnoMessageArg, OtherMessageArg)
-
-MessageArg *ErrnoMessageArg::copy() const
-{
-  return new ErrnoMessageArg(*this);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ErrorCountEventHandler.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "ErrorCountEventHandler.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-ErrorCountEventHandler::ErrorCountEventHandler(unsigned errorLimit)
-: errorCount_(0), maxErrors_(errorLimit), cancel_(0)
-{
-}
-
-void ErrorCountEventHandler::message(MessageEvent *event)
-{
-  noteMessage(event->message());
-  delete event;
-}
-
-void ErrorCountEventHandler::noteMessage(const Message &message)
-{
-  if (message.isError() && ++errorCount_ == maxErrors_)
-    cancel_ = 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Event.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,574 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Event.h"
-#include "Entity.h"
-#include "Attribute.h"
-#include "EventQueue.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-void Event::copyData()
-{
-}
-
-LocatedEvent::LocatedEvent(Type type, const Location &location)
-: location_(location), Event(type)
-{
-}
-
-MarkupEvent::MarkupEvent(Type type)
-: LocatedEvent(type, Location())
-{
-}
-
-MarkupEvent::MarkupEvent(Type type, const Location &loc, Markup *markup)
-: LocatedEvent(type, loc)
-{
-  if (markup)
-    markup->swap(markup_);
-}
-
-StartElementEvent::StartElementEvent(const ElementType *elementType,
-				     const ConstPtr<Dtd> &dtd,
-				     AttributeList *attributes,
-				     const Location &startLocation,
-				     Markup *markup)
-: LocatedEvent(startElement, startLocation),
-  elementType_(elementType),
-  dtd_(dtd),
-  included_(0),
-  copied_(0),
-  markup_(markup),
-  attributes_(attributes)
-{
-}
-
-StartElementEvent::~StartElementEvent()
-{
-  if (copied_) {
-    delete attributes_;
-    delete markup_;
-  }
-}
-
-void StartElementEvent::copyData()
-{
-  if (!copied_) {
-    {
-      AttributeList *p = new AttributeList;
-      attributes_->swap(*p);
-      attributes_ = p;
-    }
-    if (markup_) {
-      Markup *p = new Markup;
-      markup_->swap(*p);
-      markup_ = p;
-    }
-    copied_ = 1;
-  }
-}
-
-EndElementEvent::EndElementEvent(const ElementType *elementType,
-				 const ConstPtr<Dtd> &dtd,
-				 const Location &startLocation,
-				 Markup *markup)
-: LocatedEvent(endElement, startLocation),
-  elementType_(elementType),
-  dtd_(dtd),
-  included_(0),
-  copied_(0),
-  markup_(markup)
-{
-}
-
-EndElementEvent::~EndElementEvent()
-{
-  if (copied_)
-    delete markup_;
-}
-
-void EndElementEvent::copyData()
-{
-  if (!copied_) {
-    if (markup_) {
-      Markup *p = new Markup;
-      markup_->swap(*p);
-      markup_ = p;
-    }
-    copied_ = 1;
-  }
-}
-
-DataEvent::DataEvent(Type type, const Char *p, size_t length,
-		     const Location &location)
-: p_(p),length_(length), LocatedEvent(type, location)
-{
-}
-
-const Entity *DataEvent::entity() const
-{
-  return 0;
-}
-
-Boolean DataEvent::isRe(unsigned long &) const
-{
-  return 0;
-}
-
-ImmediateDataEvent::ImmediateDataEvent(Type type, const Char *p, size_t length,
-				       const Location &location,
-				       Boolean copy)
-: DataEvent(type, p, length, location), alloc_(0)
-{
-  if (copy) 
-    ImmediateDataEvent::copyData();
-}
-
-ImmediateDataEvent::~ImmediateDataEvent()
-{
-  if (alloc_)
-    delete [] alloc_;
-}
-
-void ImmediateDataEvent::copyData()
-{
-  if (!alloc_) {
-    alloc_ = new Char[length_];
-    memcpy(alloc_, p_, length_*sizeof(Char));
-    p_ = alloc_;
-  }
-}
-
-ReEvent::ReEvent(const Char *p, const Location &location, unsigned long serial)
-: ImmediateDataEvent(characterData, p, 1, location, 0),
-  serial_(serial)
-{
-}
-
-Boolean ReEvent::isRe(unsigned long &serial) const
-{
-  serial = serial_;
-  return 1;
-}
-
-DataEntityEvent::DataEntityEvent(Type type, const InternalEntity *entity,
-				 const ConstPtr<Origin> &origin)
-: DataEvent(type,
-	    entity->string().data(),
-	    entity->string().size(),
-	    Location(origin, 0))
-{
-}
-
-const Entity *DataEntityEvent::entity() const
-{
-  return location().origin()->asEntityOrigin()->entity();
-}
-
-CdataEntityEvent::CdataEntityEvent(const InternalEntity *entity,
-				   const ConstPtr<Origin> &origin)
-: DataEntityEvent(characterData, entity, origin)
-{
-}
-
-SdataEntityEvent::SdataEntityEvent(const InternalEntity *entity,
-				   const ConstPtr<Origin> &origin)
-: DataEntityEvent(sdataEntity, entity, origin)
-{
-}
-
-MessageEvent::MessageEvent(const Message &m)
-: Event(Event::message), message_(m)
-{
-}
-
-MessageEvent::MessageEvent(Message &m)
-: Event(Event::message)
-{
-  m.swap(message_);
-}
-
-PiEvent::PiEvent(const Char *data, size_t dataLength, const Location &location)
-: data_(data), dataLength_(dataLength), LocatedEvent(pi, location)
-{
-}
-
-const Entity *PiEvent::entity() const
-{
-  return 0;
-}
-
-PiEntityEvent::PiEntityEvent(const PiEntity *entity,
-			     const ConstPtr<Origin> &origin)
-: PiEvent(entity->string().data(), entity->string().size(),
-	  Location(origin, 0))
-{
-}
-
-const Entity *PiEntityEvent::entity() const
-{
-  return location().origin()->asEntityOrigin()->entity();
-}
-
-ImmediatePiEvent::ImmediatePiEvent(StringC &str, const Location &loc)
-: PiEvent(str.data(), str.size(), loc)
-{
-  str.swap(string_);
-}
-
-ExternalEntityEvent::ExternalEntityEvent(Type type, 
-					 const ConstPtr<EntityOrigin> &origin)
-: origin_(origin), Event(type)
-{
-}
-
-ExternalDataEntityEvent::ExternalDataEntityEvent(const ExternalDataEntity *entity,
-						 const ConstPtr<EntityOrigin> &origin)
-: dataEntity_(entity), ExternalEntityEvent(externalDataEntity, origin)
-{
-}
-
-SubdocEntityEvent::SubdocEntityEvent(const SubdocEntity *entity,
-				     const ConstPtr<EntityOrigin> &origin)
-: subdocEntity_(entity), ExternalEntityEvent(subdocEntity, origin)
-{
-}
-
-NonSgmlCharEvent::NonSgmlCharEvent(Char c, const Location &location)
-: LocatedEvent(nonSgmlChar, location), c_(c)
-{
-}
-
-AppinfoEvent::AppinfoEvent(const Location &location)
-: LocatedEvent(appinfo, location), appinfoNone_(1)
-{
-}
-
-AppinfoEvent::AppinfoEvent(const Text &text, const Location &location)
-: LocatedEvent(appinfo, location), appinfoNone_(0), appinfo_(text)
-{
-}
-
-UselinkEvent::UselinkEvent(const ConstPtr<Lpd> &lpd,
-			   const LinkSet *linkSet,
-			   Boolean restore,
-			   const Location &loc,
-			   Markup *markup)
-: MarkupEvent(uselink, loc, markup),
-  lpd_(lpd),
-  linkSet_(linkSet),
-  restore_(restore)
-{
-}
-
-UsemapEvent::UsemapEvent(const ShortReferenceMap *map,
-			 Vector<const ElementType *> &elements,
-			 const ConstPtr<Dtd> &dtd,
-			 const Location &loc,
-			 Markup *markup)
-: MarkupEvent(usemap, loc, markup),
-  map_(map),
-  dtd_(dtd)
-{
-  elements.swap(elements_);
-}
-
-StartSubsetEvent::StartSubsetEvent(Type type,
-				   const StringC &name,
-				   const ConstPtr<Entity> &entity,
-				   Boolean hasInternalSubset,
-				   const Location &loc,
-				   Markup *markup)
-: name_(name), entity_(entity), hasInternalSubset_(hasInternalSubset),
-  MarkupEvent(type, loc, markup)
-{
-}
-
-StartDtdEvent::StartDtdEvent(const StringC &name,
-			     const ConstPtr<Entity> &entity,
-			     Boolean hasInternalSubset,
-			     const Location &loc,
-			     Markup *markup)
-: StartSubsetEvent(startDtd, name, entity, hasInternalSubset, loc, markup)
-{
-}
-
-StartLpdEvent::StartLpdEvent(Boolean active,
-			     const StringC &name,
-			     const ConstPtr<Entity> &entity,
-			     Boolean hasInternalSubset,
-			     const Location &loc,
-			     Markup *markup)
-: StartSubsetEvent(startLpd, name, entity, hasInternalSubset, loc, markup),
-  active_(active)
-{
-}
-
-EndDtdEvent::EndDtdEvent(const ConstPtr<Dtd> &dtd,
-			 const Location &loc,
-			 Markup *markup)
-:  MarkupEvent(endDtd, loc, markup), dtd_(dtd)
-{
-}
-
-EndLpdEvent::EndLpdEvent(const ConstPtr<Lpd> &lpd,
-			 const Location &loc,
-			 Markup *markup)
-:  MarkupEvent(endLpd, loc, markup), lpd_(lpd)
-{
-}
-
-EndPrologEvent::EndPrologEvent(const ConstPtr<Dtd> &dtd,
-			       const ConstPtr<ComplexLpd> &lpd,
-			       Vector<StringC> &simpleLinkNames,
-			       Vector<AttributeList> &simpleLinkAttributes,
-			       const Location &location)
-: LocatedEvent(endProlog, location), dtd_(dtd), lpd_(lpd)
-{
-  simpleLinkAttributes.swap(simpleLinkAttributes_);
-  simpleLinkNames.swap(simpleLinkNames_);
-}
-
-EndPrologEvent::EndPrologEvent(const ConstPtr<Dtd> &dtd,
-			       const Location &location)
-: LocatedEvent(endProlog, location), dtd_(dtd)
-{
-}
-
-SgmlDeclEvent::SgmlDeclEvent(const ConstPtr<Sd> &sd,
-			     const ConstPtr<Syntax> &syntax)
-
-: sd_(sd), prologSyntax_(syntax), instanceSyntax_(syntax),
-  nextIndex_(0), MarkupEvent(sgmlDecl)
-{
-}
-
-SgmlDeclEvent::SgmlDeclEvent(const ConstPtr<Sd> &sd,
-			     const ConstPtr<Syntax> &prologSyntax,
-			     const ConstPtr<Syntax> &instanceSyntax,
-			     const ConstPtr<Sd> &refSd,
-			     const ConstPtr<Syntax> &refSyntax,
-			     Index nextIndex,
-			     const StringC &implySystemId,
-			     const Location &loc,
-			     Markup *markup)
-: sd_(sd), prologSyntax_(prologSyntax), instanceSyntax_(instanceSyntax),
-  refSd_(refSd), refSyntax_(refSyntax),
-  nextIndex_(nextIndex), implySystemId_(implySystemId),
-  MarkupEvent(sgmlDecl, loc, markup)
-{
-}
-
-CommentDeclEvent::CommentDeclEvent(const Location &loc,
-				   Markup *markup)
-: MarkupEvent(commentDecl, loc, markup)
-{
-}
-
-SSepEvent::SSepEvent(const Char *p, size_t length,
-		     const Location &location, Boolean copy)
-: ImmediateDataEvent(sSep, p, length, location, copy)
-{
-}
-
-IgnoredRsEvent::IgnoredRsEvent(Char c, const Location &location)
-: LocatedEvent(ignoredRs, location), c_(c)
-{
-}
-
-IgnoredReEvent::IgnoredReEvent(Char c, const Location &location,
-			       unsigned long serial)
-: LocatedEvent(ignoredRe, location),
-  c_(c),
-  serial_(serial)
-{
-}
-
-ReOriginEvent::ReOriginEvent(Char c, const Location &location,
-			     unsigned long serial)
-: LocatedEvent(reOrigin, location), c_(c), serial_(serial)
-{
-}
-
-
-IgnoredCharsEvent::IgnoredCharsEvent(const Char *p, size_t length,
-				     const Location &location, Boolean copy)
-: ImmediateDataEvent(ignoredChars, p, length, location, copy)
-{
-}
-
-MarkedSectionEvent::MarkedSectionEvent(Type type, Status status,
-				       const Location &loc,
-				       Markup *markup)
-: MarkupEvent(type, loc, markup),
-  status_(status)
-{
-}
-
-MarkedSectionStartEvent::MarkedSectionStartEvent(Status status,
-						 const Location &loc,
-						 Markup *markup)
-: MarkedSectionEvent(markedSectionStart, status, loc, markup)
-{
-}
-
-MarkedSectionEndEvent::MarkedSectionEndEvent(Status status,
-					     const Location &loc,
-					     Markup *markup)
-: MarkedSectionEvent(markedSectionEnd, status, loc, markup)
-{
-}
-
-EntityStartEvent::EntityStartEvent(const ConstPtr<EntityOrigin> &origin)
-: Event(entityStart), origin_(origin)
-{
-}
-
-EntityEndEvent::EntityEndEvent(const Location &location)
-: LocatedEvent(entityEnd, location)
-{
-}
-
-EntityDeclEvent:: EntityDeclEvent(const ConstPtr<Entity> &entity,
-				  Boolean ignored, const Location &loc,
-				  Markup *markup)
-: MarkupEvent(entityDecl, loc, markup),
-  entity_(entity),
-  ignored_(ignored)
-{
-}
-
-NotationDeclEvent:: NotationDeclEvent(const ConstPtr<Notation> &notation,
-				      const Location &loc,
-				      Markup *markup)
-: MarkupEvent(notationDecl, loc, markup), notation_(notation)
-{
-}
-
-ElementDeclEvent::ElementDeclEvent(Vector<const ElementType *> &elements,
-				   const ConstPtr<Dtd> &dtd,
-				   const Location &loc,
-				   Markup *markup)
-: MarkupEvent(elementDecl, loc, markup), dtd_(dtd)
-{
-  elements.swap(elements_);
-}
-
-AttlistDeclEvent::AttlistDeclEvent(Vector<const ElementType *> &elements,
-				   const ConstPtr<Dtd> &dtd,
-				   const Location &loc,
-				   Markup *markup)
-: MarkupEvent(attlistDecl, loc, markup), dtd_(dtd)
-{
-  elements.swap(elements_);
-}
-
-AttlistNotationDeclEvent::AttlistNotationDeclEvent(
-  Vector<ConstPtr<Notation> > &notations, const Location &loc,
-						   Markup *markup)
-: MarkupEvent(attlistNotationDecl, loc, markup)
-{
-  notations.swap(notations_);
-}
-
-LinkAttlistDeclEvent
-::LinkAttlistDeclEvent(Vector<const ElementType *> &elements,
-		       const ConstPtr<Lpd> &lpd,
-		       const Location &loc,
-		       Markup *markup)
-: MarkupEvent(linkAttlistDecl, loc, markup), lpd_(lpd)
-{
-  elements.swap(elements_);
-}
-
-LinkDeclEvent::LinkDeclEvent(const LinkSet *linkSet,
-			     const ConstPtr<ComplexLpd> &lpd,
-			     const Location &loc,
-			     Markup *markup)
-: MarkupEvent(linkDecl, loc, markup), lpd_(lpd), linkSet_(linkSet)
-{
-}
-
-IdLinkDeclEvent::IdLinkDeclEvent(const ConstPtr<ComplexLpd> &lpd,
-				 const Location &loc,
-				 Markup *markup)
-: MarkupEvent(linkDecl, loc, markup), lpd_(lpd)
-{
-}
-
-ShortrefDeclEvent::ShortrefDeclEvent(const ShortReferenceMap *map,
-				     const ConstPtr<Dtd> &dtd,
-				     const Location &loc,
-				     Markup *markup)
-: MarkupEvent(shortrefDecl, loc, markup), map_(map), dtd_(dtd)
-{
-}
-
-IgnoredMarkupEvent::IgnoredMarkupEvent(const Location &loc,
-				       Markup *markup)
-: MarkupEvent(ignoredMarkup, loc, markup)
-{
-}
-
-EntityDefaultedEvent::EntityDefaultedEvent(const ConstPtr<Entity> &entity,
-					   const Location &loc)
-: LocatedEvent(entityDefaulted, loc), entity_(entity)
-{
-}
-
-SgmlDeclEntityEvent::  SgmlDeclEntityEvent(const PublicId &publicId,
-					   PublicId::TextClass entityType,
-					   const StringC &effectiveSystemId,
-					   const Location &loc)
-: LocatedEvent(sgmlDeclEntity, loc), publicId_(publicId),
-  entityType_(entityType), effectiveSystemId_(effectiveSystemId)
-{
-}
-
-EventHandler::~EventHandler()
-{
-}
-
-EventQueue::EventQueue()
-{
-}
-
-#define EVENT(c, f) \
-  void EventHandler::f(c *event) { delete event; } \
-  void EventQueue::f(c *event) { append(event); } \
-  void c::handle(EventHandler &handler) { handler.f(this); }
-#include "events.h"
-#undef EVENT
-
-Pass1EventHandler::Pass1EventHandler()
-: hadError_(0), origHandler_(0)
-{
-}
-
-void Pass1EventHandler::init(EventHandler *origHandler)
-{
-  hadError_ = 0;
-  origHandler_ = origHandler;
-}
-
-void Pass1EventHandler::message(MessageEvent *event)
-{
-  if (event->message().isError()) {
-    hadError_ = 1;
-    origHandler_->message(event);
-  }
-  else
-    IQueue<Event>::append(event);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/EventGenerator.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "Boolean.h"
-#include "EventGenerator.h"
-
-EventGenerator::~EventGenerator()
-{
-}
-
-void EventGenerator::inhibitMessages(bool)
-{
-}
-
-EventGenerator *
-EventGenerator::makeSubdocEventGenerator(const SGMLApplication::Char *,
-					 size_t)
-{
-  return 0;
-}
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/EventQueue.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef EventQueue_INCLUDED
-#define EventQueue_INCLUDED 1
-
-#include "IQueue.h"
-#include "Event.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class EventQueue : public EventHandler, public IQueue<Event> {
-public:
-  EventQueue();
-private:
-#define EVENT(c, f) void f(c *);
-#include "events.h"
-#undef EVENT
-  void append(Event *);
-};
-
-class Pass1EventHandler : public EventQueue {
-public:
-  Pass1EventHandler();
-  void init(EventHandler *origHandler);
-  void message(MessageEvent *);
-  Boolean hadError() const;
-  EventHandler *origHandler() const;
-private:
-  Boolean hadError_;
-  EventHandler *origHandler_;
-};
-
-inline
-void EventQueue::append(Event *event)
-{
-  IQueue<Event>::append(event);
-}
-
-inline
-Boolean Pass1EventHandler::hadError() const
-{
-  return hadError_;
-}
-
-inline
-EventHandler *Pass1EventHandler::origHandler() const
-{
-  return origHandler_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not EventQueue_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ExtendEntityManager.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2149 +0,0 @@
-// Copyright (c) 1994, 1995, 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "ExtendEntityManager.h"
-#include "Message.h"
-#include "MessageArg.h"
-#include "OffsetOrderedList.h"
-#include "rtti.h"
-#include "StorageManager.h"
-#include "Vector.h"
-#include "NCVector.h"
-#include "Owner.h"
-#include "constant.h"
-#include "EntityManagerMessages.h"
-#include "StorageObjectPosition.h"
-#include "Owner.h"
-#include "CodingSystem.h"
-#include "CodingSystemKit.h"
-#include "InputSource.h"
-#include "Mutex.h"
-#include "macros.h"
-#include "EntityCatalog.h"
-#include "CharMap.h"
-
-#include <stddef.h>
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <stdio.h>
-
-#ifdef DECLARE_MEMMOVE
-extern "C" {
-  void *memmove(void *, const void *, size_t);
-}
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const char EOFCHAR = '\032';	// Control-Z
-
-class ExternalInputSource;
-
-class EntityManagerImpl : public ExtendEntityManager {
-public:
-  EntityManagerImpl(StorageManager *defaultStorageManager,
-		    const InputCodingSystem *defaultCodingSystem,
-		    const ConstPtr<InputCodingSystemKit> &,
-		    Boolean internalCharsetIsDocCharset);
-  void setCatalogManager(CatalogManager *catalogManager);
-  void registerStorageManager(StorageManager *);
-  InputSource *open(const StringC &sysid,
-		    const CharsetInfo &,
-		    InputSourceOrigin *,
-		    unsigned flags,
-		    Messenger &);
-  const CharsetInfo &charset() const;
-  Boolean internalCharsetIsDocCharset() const;
-  ConstPtr<EntityCatalog> makeCatalog(StringC &systemId,
-				      const CharsetInfo &charset,
-				      Messenger &mgr);
-  Boolean expandSystemId(const StringC &,
-			 const Location &,
-			 Boolean isNdata,
-			 const CharsetInfo &,
-			 const StringC *,
-			 Messenger &,
-			 StringC &);
-  Boolean mergeSystemIds(const Vector<StringC> &,
-			 Boolean mapCatalogDocument,
-			 const CharsetInfo &,
-			 Messenger &mgr,
-			 StringC &) const;
-  StorageManager *lookupStorageType(const StringC &, const CharsetInfo &) const;
-  StorageManager *lookupStorageType(const char *) const;
-  StorageManager *guessStorageType(const StringC &, const CharsetInfo &) const;
-  const InputCodingSystem *lookupCodingSystem(const StringC &,
-					      const CharsetInfo &,
-					      Boolean isBctf,
-					      const char *&) const;
-  Boolean resolveSystemId(const StringC &str,
-			  const CharsetInfo &idCharset,
-			  Messenger &mgr,
-			  const Location &defLocation,
-			  Boolean isNdata,
-			  ParsedSystemId &parsedSysid) const;
-  Boolean parseSystemId(const StringC &str,
-			const CharsetInfo &idCharset,
-			Boolean isNdata,
-			const StorageObjectLocation *def,
-			Messenger &mgr,
-			ParsedSystemId &parsedSysid) const;
-  const CharsetInfo &internalCharset(const CharsetInfo &docCharset) const {
-    if (internalCharsetIsDocCharset_)
-      return docCharset;
-    else
-      return charset();
-  }
-private:
-  EntityManagerImpl(const EntityManagerImpl &); // undefined
-  void operator=(const EntityManagerImpl &); // undefined
-  static Boolean defLocation(const Location &, StorageObjectLocation &);
-  static Boolean matchKey(const StringC &type, const char *s,
-			  const CharsetInfo &internalCharset);
-  NCVector<Owner<StorageManager> > storageManagers_;
-  Owner<StorageManager> defaultStorageManager_;
-  const InputCodingSystem *defaultCodingSystem_;
-  Owner<CatalogManager> catalogManager_;
-  Boolean internalCharsetIsDocCharset_;
-  ConstPtr<InputCodingSystemKit> codingSystemKit_;
-  friend class FSIParser;
-};
-
-class ExternalInfoImpl : public ExternalInfo {
-  RTTI_CLASS
-public:
-  ExternalInfoImpl(ParsedSystemId &parsedSysid);
-  const StorageObjectSpec &spec(size_t i) const;
-  size_t nSpecs() const;
-  const ParsedSystemId &parsedSystemId() const;
-  void noteRS(Offset);
-  void noteStorageObjectEnd(Offset);
-  void noteInsertedRSs();
-  void setDecoder(size_t i, Decoder *);
-  void setId(size_t i, StringC &);
-  void getId(size_t i, StringC &) const;
-  Boolean convertOffset(Offset, StorageObjectLocation &) const;
-private:
-  ParsedSystemId parsedSysid_;
-  NCVector<StorageObjectPosition> position_;
-  size_t currentIndex_;
-  // list of inserted RSs
-  OffsetOrderedList rsList_;
-  Boolean notrack_;
-  Mutex mutex_;
-};
-
-class ExternalInputSource : public InputSource {
-public:
-  ExternalInputSource(ParsedSystemId &parsedSysid,
-		      const CharsetInfo &internalCharset,
-		      const CharsetInfo &docCharset,
-		      Boolean internalCharsetIsDocCharset,
-		      Char replacementChar,
-		      InputSourceOrigin *origin,
-		      unsigned flags);
-  void pushCharRef(Char, const NamedCharRef &);
-  ~ExternalInputSource();
-private:
-  Xchar fill(Messenger &);
-  Boolean rewind(Messenger &);
-  void willNotRewind();
-  void setDocCharset(const CharsetInfo &, const CharsetInfo &);
-  void willNotSetDocCharset();
-
-  void init();
-  void noteRS();
-  void noteRSAt(const Char *);
-  void reallocateBuffer(size_t size);
-  void insertChar(Char);
-  void buildMap(const CharsetInfo &internalCharset,
-		const CharsetInfo &docCharset);
-  void buildMap1(const CharsetInfo &, const CharsetInfo &);
-  static const Char *findNextCr(const Char *start, const Char *end);
-  static const Char *findNextLf(const Char *start, const Char *end);
-  static const Char *findNextCrOrLf(const Char *start, const Char *end);
-
-  ExternalInfoImpl *info_;
-  Char *buf_;
-  const Char *bufLim_;
-  Offset bufLimOffset_;
-  size_t bufSize_;
-  size_t readSize_;
-  NCVector<Owner<StorageObject> > sov_;
-  StorageObject *so_;
-  size_t soIndex_;
-  Boolean insertRS_;
-  Decoder *decoder_;
-  const char *leftOver_;
-  size_t nLeftOver_;
-  Boolean mayRewind_;
-  Boolean maySetDocCharset_;
-  Boolean mayNotExist_;
-  enum RecordType {
-    unknown,
-    crUnknown,
-    crlf,
-    lf,
-    cr,
-    asis
-    };
-  RecordType recordType_;
-  Boolean zapEof_;
-  Boolean internalCharsetIsDocCharset_;
-  Char replacementChar_;
-  Ptr<CharMapResource<Unsigned32> > map_;
-};
-
-class FSIParser {
-public:
-  FSIParser(const StringC &, const CharsetInfo &idCharset,
-	    Boolean isNdata,
-	    const StorageObjectLocation *defLoc,
-	    const EntityManagerImpl *em,
-	    Messenger &mgr);
-  Boolean parse(ParsedSystemId &parsedSysid);
-  static const char *recordsName(StorageObjectSpec::Records records);
-  struct RecordType {
-    const char *name;
-    StorageObjectSpec::Records value;
-  };
-private:
-  Boolean handleInformal(size_t startIndex, ParsedSystemId &parsedSysid);
-  Boolean convertId(StringC &, Xchar smcrd, const StorageManager *);
-  Xchar get();
-  void unget();
-  StorageManager *lookupStorageType(const StringC &key, Boolean &neutral);
-  Boolean matchKey(const StringC &, const char *);
-  Boolean matchChar(Xchar, char);
-  Boolean isS(Xchar);
-  Boolean convertDigit(Xchar c, int &weight);
-  void uncharref(StringC &);
-  Boolean setAttributes(StorageObjectSpec &sos, Boolean neutral,
-			Xchar &smcrd, Boolean &fold);
-  Boolean setCatalogAttributes(ParsedSystemId &parsedSysid);
-  void setDefaults(StorageObjectSpec &sos);
-  Boolean parseAttribute(StringC &token, Boolean &gotValue, StringC &value);
-  Boolean lookupRecords(const StringC &token, StorageObjectSpec::Records &);
-  void convertMinimumLiteral(const StringC &from, StringC &to);
-
-  const StringC &str_;
-  size_t strIndex_;
-  Messenger &mgr_;
-  const EntityManagerImpl *em_;
-  const StorageObjectSpec *defSpec_;
-  const StringC *defId_;
-  const CharsetInfo &idCharset_;
-  Boolean isNdata_;
-  static RecordType recordTypeTable[];
-};
-
-const Char RS = '\n';
-const Char RE = '\r';
-
-ExtendEntityManager::CatalogManager::~CatalogManager()
-{
-}
-
-ExtendEntityManager *ExtendEntityManager::make(StorageManager *sm,
-					       const InputCodingSystem *cs,
-					       const ConstPtr<InputCodingSystemKit> &csKit,
-					       Boolean internalCharsetIsDocCharset)
-{
-  return new EntityManagerImpl(sm, cs, csKit, internalCharsetIsDocCharset);
-}
-
-Boolean ExtendEntityManager::externalize(const ExternalInfo *info,
-					 Offset off,
-					 StorageObjectLocation &loc)
-{
-  if (!info)
-    return false;
-  const ExternalInfoImpl *p = DYNAMIC_CAST_CONST_PTR(ExternalInfoImpl, info);
-  if (!p)
-    return false;
-  return p->convertOffset(off, loc);
-}
-
-const ParsedSystemId *
-ExtendEntityManager::externalInfoParsedSystemId(const ExternalInfo *info)
-{
-  if (!info)
-    return 0;
-  const ExternalInfoImpl *p = DYNAMIC_CAST_CONST_PTR(ExternalInfoImpl, info);
-  if (!p)
-    return 0;
-  return &p->parsedSystemId();
-}
-
-EntityManagerImpl::EntityManagerImpl(StorageManager *defaultStorageManager,
-				     const InputCodingSystem *defaultCodingSystem,
-				     const ConstPtr<InputCodingSystemKit> &codingSystemKit,
-				     Boolean internalCharsetIsDocCharset)
-: defaultStorageManager_(defaultStorageManager),
-  defaultCodingSystem_(defaultCodingSystem),
-  codingSystemKit_(codingSystemKit),
-  internalCharsetIsDocCharset_(internalCharsetIsDocCharset)
-{
-}
-
-Boolean EntityManagerImpl::internalCharsetIsDocCharset() const
-{
-  return internalCharsetIsDocCharset_;
-}
-
-const CharsetInfo &EntityManagerImpl::charset() const
-{
-  return codingSystemKit_->systemCharset();
-}
-
-InputSource *EntityManagerImpl::open(const StringC &sysid,
-				     const CharsetInfo &docCharset,
-				     InputSourceOrigin *origin,
-				     unsigned flags,
-				     Messenger &mgr)
-{
-  ParsedSystemId parsedSysid;
-  if (!parseSystemId(sysid, docCharset, (flags & ExtendEntityManager::isNdata) != 0,
-		     0, mgr, parsedSysid)
-      || !catalogManager_->mapCatalog(parsedSysid, this, mgr))
-    return 0;
-  return new ExternalInputSource(parsedSysid,
-				 charset(),
-				 docCharset,
-				 internalCharsetIsDocCharset_,
-				 codingSystemKit_->replacementChar(),
-				 origin, flags);
-}
-
-
-ConstPtr<EntityCatalog>
-EntityManagerImpl::makeCatalog(StringC &systemId,
-			       const CharsetInfo &docCharset,
-			       Messenger &mgr)
-{
-  return catalogManager_->makeCatalog(systemId, docCharset, this, mgr);
-}
-
-Boolean
-EntityManagerImpl::mergeSystemIds(const Vector<StringC> &sysids,
-				  Boolean mapCatalogDocument,
-				  const CharsetInfo &docCharset,
-				  Messenger &mgr,
-				  StringC &result) const
-{
-  ParsedSystemId parsedSysid;
-  if (mapCatalogDocument) {
-    parsedSysid.maps.resize(parsedSysid.maps.size() + 1);
-    parsedSysid.maps.back().type = ParsedSystemId::Map::catalogDocument;
-  }
-  for (size_t i = 0; i < sysids.size(); i++)
-    if (!parseSystemId(sysids[i],
-		       docCharset,
-		       0,
-		       0,
-		       mgr,
-		       parsedSysid))
-      return 0;
-  parsedSysid.unparse(internalCharset(docCharset), 0, result);
-  return 1;
-}
-
-Boolean
-EntityManagerImpl::expandSystemId(const StringC &str,
-				  const Location &defLoc,
-				  Boolean LOCALisNdata,
-				  const CharsetInfo &docCharset,
-				  const StringC *mapCatalogPublic,
-				  Messenger &mgr,
-				  StringC &result)
-{
-  ParsedSystemId parsedSysid;
-  StorageObjectLocation defSoLoc;
-  const StorageObjectLocation *defSoLocP;
-  if (defLocation(defLoc, defSoLoc))
-    defSoLocP = &defSoLoc;
-  else
-    defSoLocP = 0;
-  if (!parseSystemId(str, docCharset, LOCALisNdata, defSoLocP, mgr, parsedSysid))
-    return 0;
-  if (mapCatalogPublic) {
-    ParsedSystemId::Map map;
-    map.type = ParsedSystemId::Map::catalogPublic;
-    map.publicId = *mapCatalogPublic;
-    parsedSysid.maps.insert(parsedSysid.maps.begin(), 1, map);
-  }
-  parsedSysid.unparse(internalCharset(docCharset), LOCALisNdata, result);
-  return 1;
-}
-
-Boolean EntityManagerImpl::parseSystemId(const StringC &str,
-					 const CharsetInfo &docCharset,
-					 Boolean LOCALisNdata,
-					 const StorageObjectLocation *defLoc,
-					 Messenger &mgr,
-					 ParsedSystemId &parsedSysid) const
-{
-  FSIParser fsiParser(str, internalCharset(docCharset), LOCALisNdata, defLoc, this, mgr);
-  return fsiParser.parse(parsedSysid);
-}
-
-StorageManager *
-EntityManagerImpl::guessStorageType(const StringC &type,
-				    const CharsetInfo &internalCharset) const
-{
-  for (size_t i = 0; i < storageManagers_.size(); i++)
-    if (storageManagers_[i]->guessIsId(type, internalCharset))
-      return storageManagers_[i].pointer();
-  if (defaultStorageManager_->guessIsId(type, internalCharset))
-    return defaultStorageManager_.pointer();
-  return 0;
-}
-
-StorageManager *
-EntityManagerImpl::lookupStorageType(const StringC &type,
-				     const CharsetInfo &internalCharset) const
-{
-  if (type.size() == 0)
-    return 0;
-  if (matchKey(type, defaultStorageManager_->type(), internalCharset))
-    return defaultStorageManager_.pointer();
-  for (size_t i = 0; i < storageManagers_.size(); i++)
-    if (matchKey(type, storageManagers_[i]->type(), internalCharset))
-      return storageManagers_[i].pointer();
-  return 0;
-}
-
-StorageManager *
-EntityManagerImpl::lookupStorageType(const char *type) const
-{
-  if (type == defaultStorageManager_->type())
-    return defaultStorageManager_.pointer();
-  for (size_t i = 0; i < storageManagers_.size(); i++)
-    if (type == storageManagers_[i]->type())
-      return storageManagers_[i].pointer();
-  return 0;
-}
-
-const InputCodingSystem *
-EntityManagerImpl::lookupCodingSystem(const StringC &type,
-				      const CharsetInfo &internalCharset,
-				      Boolean isBctf,
-				      const char *&name) const
-{
-  return codingSystemKit_->makeInputCodingSystem(type, internalCharset, isBctf, name);
-}
-
-Boolean
-EntityManagerImpl::matchKey(const StringC &type,
-			    const char *s,
-			    const CharsetInfo &internalCharset)
-{
-  if (strlen(s) != type.size())
-    return false;
-  for (size_t i = 0; i < type.size(); i++)
-    if (internalCharset.execToDesc(toupper(s[i])) != type[i]
-	&& internalCharset.execToDesc(tolower(s[i])) != type[i])
-      return false;
-  return true;
-}
-
-void EntityManagerImpl::registerStorageManager(StorageManager *sm)
-{
-  storageManagers_.resize(storageManagers_.size() + 1);
-  storageManagers_.back() = sm;
-}
-
-void EntityManagerImpl::setCatalogManager(CatalogManager *catalogManager)
-{
-  catalogManager_ = catalogManager;
-}
-
-Boolean
-EntityManagerImpl::defLocation(const Location &defLocation,
-			       StorageObjectLocation &soLoc)
-{
-  Offset off;
-  const ExternalInfo *info;
-  const Origin *origin = defLocation.origin().pointer();
-  Index index = defLocation.index();
-  for (;;) {
-    if (!origin)
-      return 0;
-    const InputSourceOrigin *inputSourceOrigin = origin->asInputSourceOrigin();
-    if (inputSourceOrigin) {
-      off = inputSourceOrigin->startOffset(index);
-      info = inputSourceOrigin->externalInfo();
-      if (info)
-	break;
-      if (!inputSourceOrigin->defLocation(off, origin, index))
-	return 0;
-    }
-    else {
-      const Location &parentLoc = origin->parent();
-      origin = parentLoc.origin().pointer();
-      index = parentLoc.index();
-    }
-  }
-  return ExtendEntityManager::externalize(info, off, soLoc);
-}
-
-class UnbufferingStorageObject : public StorageObject {
-public:
-  UnbufferingStorageObject(StorageObject *sub,
-			   const Boolean *unbuffer)
-    : sub_(sub), buf_(0), bufAvail_(0), bufNext_(0), unbuffer_(unbuffer) { }
-  ~UnbufferingStorageObject() { delete [] buf_; }
-  Boolean read(char *buf, size_t bufSize, Messenger &mgr,
-               size_t &nread) {
-    if (bufNext_ >= bufAvail_) {
-      bufAvail_ = bufNext_ = 0;
-      if (!*unbuffer_)
-	return sub_->read(buf, bufSize, mgr, nread);
-      if (buf_ == 0)
-	buf_ = new char[bufSize_ = bufSize];
-      if (!sub_->read(buf_, bufSize_, mgr, bufAvail_))
-	return 0;
-    }
-    *buf = buf_[bufNext_++];
-    nread = 1;
-    return 1;
-  }
-  Boolean rewind(Messenger &mgr) {
-    bufAvail_ = bufNext_ = 0;
-    return sub_->rewind(mgr);
-  }
-  void willNotRewind() { sub_->willNotRewind(); }
-  size_t getBlockSize() const { return sub_->getBlockSize(); }
-private:
-  Owner<StorageObject> sub_;
-  size_t bufSize_;
-  size_t bufAvail_;
-  size_t bufNext_;
-  char *buf_;
-  const Boolean *unbuffer_;
-};
-
-class MappingDecoder : public Decoder {
-public:
-  MappingDecoder(Decoder *,
-		 const ConstPtr<CharMapResource<Unsigned32> > &);
-  Boolean convertOffset(unsigned long &offset) const;
-  size_t decode(Char *, const char *, size_t, const char **);
-private:
-  Owner<Decoder> sub_;
-  ConstPtr<CharMapResource<Unsigned32> > map_;
-};
-
-MappingDecoder::MappingDecoder(Decoder *sub,
-			       const ConstPtr<CharMapResource<Unsigned32> > &map)
-: Decoder(sub->minBytesPerChar()), sub_(sub), map_(map)
-{
-}
-
-size_t MappingDecoder::decode(Char *to, const char *s,
-			      size_t slen, const char **rest)
-{
-  size_t n = sub_->decode(to, s, slen, rest);
-  const CharMap<Unsigned32> &map = *map_;
-  for (size_t i = 0; i < n; i++) {
-    Unsigned32 d = map[to[i]];
-    if (d & (unsigned(1) << 31))
-      to[i] = (d & ~(unsigned(1) << 31));
-    else
-      to[i] += d;
-  }
-  return n;
-}
-
-Boolean MappingDecoder::convertOffset(unsigned long &offset) const
-{
-  return sub_->convertOffset(offset);
-}
-  
-ExternalInputSource::ExternalInputSource(ParsedSystemId &parsedSysid,
-					 const CharsetInfo &systemCharset,
-					 const CharsetInfo &docCharset,
-					 Boolean internalCharsetIsDocCharset,
-					 Char replacementChar,
-					 InputSourceOrigin *origin,
-					 unsigned flags)
-: InputSource(origin, 0, 0),
-  mayRewind_((flags & EntityManager::mayRewind) != 0),
-  mayNotExist_((flags & ExtendEntityManager::mayNotExist) != 0),
-  sov_(parsedSysid.size()),
-  internalCharsetIsDocCharset_(internalCharsetIsDocCharset),
-  // hack
-  maySetDocCharset_((flags & EntityManager::maySetDocCharset) != 0),
-  replacementChar_(replacementChar)
-{
-  for (size_t i = 0; i < parsedSysid.size(); i++) {
-    if (parsedSysid[i].codingSystemType
-        != (internalCharsetIsDocCharset
-	    ? StorageObjectSpec::bctf
-	    : StorageObjectSpec::encoding)
-	&& parsedSysid[i].codingSystemType != StorageObjectSpec::special) {
-      map_ = new CharMapResource<Unsigned32>;
-      buildMap(systemCharset, docCharset);
-      break;
-    }
-  }
-  for (size_t i = 0; i < sov_.size(); i++)
-    sov_[i] = 0;
-  init();
-  info_ = new ExternalInfoImpl(parsedSysid);
-  origin->setExternalInfo(info_);
-}
-
-void ExternalInputSource::setDocCharset(const CharsetInfo &docCharset,
-					const CharsetInfo &systemCharset)
-{
-  if (!map_.isNull())
-    buildMap(systemCharset, docCharset);
-  willNotSetDocCharset();
-}
-
-void ExternalInputSource::willNotSetDocCharset()
-{
-  maySetDocCharset_ = 0;
-}
-
-void ExternalInputSource::buildMap(const CharsetInfo &systemCharset,
-				   const CharsetInfo &docCharset)
-{
-  CharMap<Unsigned32> &map = *map_;
-  // FIXME How should invalidChar be chosen when internalCharsetIsDocCharset_?
-  Char invalidChar
-    = internalCharsetIsDocCharset_ ? 0 : replacementChar_;
-  map.setAll((Unsigned32(1) << 31) | invalidChar);
-  if (internalCharsetIsDocCharset_)
-    buildMap1(systemCharset, docCharset);
-  else
-    buildMap1(docCharset, systemCharset);
-}
-
-void ExternalInputSource::buildMap1(const CharsetInfo &fromCharset,
-				    const CharsetInfo &toCharset)
-{
-  UnivCharsetDescIter iter(fromCharset.desc());
-  for (;;) {
-    WideChar descMin, descMax;
-    UnivChar univMin;
-    if (!iter.next(descMin, descMax, univMin))
-      break;
-    if (descMin > charMax)
-      break;
-    if (descMax > charMax)
-      descMax = charMax;
-    WideChar totalCount = 1 + (descMax - descMin);
-    do {
-      WideChar count;
-      WideChar toMin;
-      ISet<WideChar> set;
-      int nMap = toCharset.univToDesc(univMin, toMin, set, count);
-      if (count > totalCount)
-	count = totalCount;
-      if (nMap && toMin <= charMax) {
-	Char toMax;
-	if (count - 1 > charMax - toMin)
-	  toMax = charMax;
-	else
-	  toMax = toMin + (count - 1);
-	map_->setRange(descMin, descMin + (toMax - toMin), Char(toMin - descMin));
-      }
-      descMin += count;
-      univMin += count;
-      totalCount -= count;
-    } while (totalCount > 0);
-  }
-}
-
-void ExternalInputSource::init()
-{
-  so_ = 0;
-  buf_ = 0;
-  bufSize_ = 0;
-  bufLim_ = 0;
-  bufLimOffset_ = 0;
-  insertRS_ = true;
-  soIndex_ = 0;
-  leftOver_ = 0;
-  nLeftOver_ = 0;  
-}
-
-ExternalInputSource::~ExternalInputSource()
-{
-  if (buf_)
-    delete [] buf_;
-}
-
-Boolean ExternalInputSource::rewind(Messenger &mgr)
-{
-  reset(0, 0);
-  if (buf_)
-    delete [] buf_;
-  // reset makes a new EntityOrigin
-  ParsedSystemId parsedSysid(info_->parsedSystemId());
-  ExternalInfoImpl *oldInfo = info_;
-  info_ = new ExternalInfoImpl(parsedSysid);
-  so_ = 0;
-  for (size_t i = 0; i < soIndex_; i++) {
-    if (sov_[i] && !sov_[i]->rewind(mgr))
-      return 0;
-    StringC tem;
-    oldInfo->getId(i, tem);
-    info_->setId(i, tem);
-  }
-  inputSourceOrigin()->setExternalInfo(info_);
-  init();
-  return 1;
-}
-
-void ExternalInputSource::willNotRewind()
-{
-  for (size_t i = 0; i < sov_.size(); i++)
-    if (sov_[i])
-      sov_[i]->willNotRewind();
-  mayRewind_ = 0;
-}
-
-
-// Round up N so that it is a power of TO.
-// TO must be a power of 2.
-
-inline
-size_t roundUp(size_t n, size_t to)
-{
-  return (n + (to - 1)) & ~(to - 1);
-}
-
-inline
-void ExternalInputSource::noteRSAt(const Char *p)
-{
-  info_->noteRS(bufLimOffset_ - (bufLim_ - p));
-}
-
-inline
-void ExternalInputSource::noteRS()
-{
-  noteRSAt(cur());
-}
-
-Xchar ExternalInputSource::fill(Messenger &mgr)
-{
-  ASSERT(cur() == end());
-  while (end() >= bufLim_) {
-    // need more data
-    while (so_ == 0) {
-      if (soIndex_ >= sov_.size())
-	return eE;
-      if (soIndex_ > 0)
-	info_->noteStorageObjectEnd(bufLimOffset_ - (bufLim_ - end()));
-      const StorageObjectSpec &spec = info_->spec(soIndex_);
-      if (!sov_[soIndex_]) {
-	StringC id;
-	if (mayNotExist_) {
-	  NullMessenger nullMgr;
-	  sov_[soIndex_]
-	    = spec.storageManager->makeStorageObject(spec.specId, spec.baseId,
-						     spec.search,
-						     mayRewind_, nullMgr, id);
-	}
-	else
-	  sov_[soIndex_]
-	    = spec.storageManager->makeStorageObject(spec.specId, spec.baseId,
-						     spec.search,
-						     mayRewind_, mgr, id);
-	info_->setId(soIndex_, id);
-      }
-      so_ = sov_[soIndex_].pointer();
-      if (so_) {
-	decoder_ = spec.codingSystem->makeDecoder();
-	if (spec.codingSystemType != StorageObjectSpec::special
-	    && spec.codingSystemType != (internalCharsetIsDocCharset_ 
-					 ? StorageObjectSpec::bctf
-					 : StorageObjectSpec::encoding)) {
-	  decoder_ = new MappingDecoder(decoder_, map_);
-	  if (maySetDocCharset_) {
-	    sov_[soIndex_] = new UnbufferingStorageObject(sov_[soIndex_].extract(), &maySetDocCharset_);
-	    so_ = sov_[soIndex_].pointer();
-	  }
-	}
-	info_->setDecoder(soIndex_, decoder_);
-	zapEof_ = spec.zapEof;
-	switch (spec.records) {
-	case StorageObjectSpec::asis:
-	  recordType_ = asis;
-	  insertRS_ = false;
-	  break;
-	case StorageObjectSpec::cr:
-	  recordType_ = cr;
-	  break;
-	case StorageObjectSpec::lf:
-	  recordType_ = lf;
-	  break;
-	case StorageObjectSpec::crlf:
-	  recordType_ = crlf;
-	  break;
-	case StorageObjectSpec::find:
-	  recordType_ = unknown;
-	  break;
-	default:
-	  CANNOT_HAPPEN();
-	}
-	soIndex_++;
-	readSize_ = so_->getBlockSize();
-	nLeftOver_ = 0;
-	break;
-      }
-      else
-	setAccessError();
-      soIndex_++;
-    }
-
-    size_t keepSize = end() - start();
-    const size_t align = sizeof(int)/sizeof(Char);
-    size_t readSizeChars = (readSize_ + (sizeof(Char) - 1))/sizeof(Char);
-    readSizeChars = roundUp(readSizeChars, align);
-    size_t neededSize;		// in Chars
-    size_t startOffset;
-    // compute neededSize and readSize
-    unsigned minBytesPerChar = decoder_->minBytesPerChar();
-    if (nLeftOver_ == 0 && minBytesPerChar >= sizeof(Char)) {
-      // In this case we want to do decoding in place.
-      // FIXME It might be a win on some systems (Irix?) to arrange that the
-      // read buffer is on a page boundary.
-
-      if (keepSize >= size_t(-1)/sizeof(Char) - (align - 1) - insertRS_)
-	abort();			// FIXME throw an exception
-      
-      // Now size_t(-1)/sizeof(Char) - (align - 1) - insertRS_ - keepSize > 0
-      if (readSizeChars
-	  > size_t(-1)/sizeof(Char) - (align - 1) - insertRS_ - keepSize)
-	abort();
-      neededSize = roundUp(readSizeChars + keepSize + insertRS_, align);
-      startOffset = ((neededSize > bufSize_ ? neededSize : bufSize_)
-		     - readSizeChars - insertRS_ - keepSize);
-    }
-    else {
-      // Needs to be room for everything before decoding.
-      neededSize = (keepSize + insertRS_ + readSizeChars
-		    + (nLeftOver_ + sizeof(Char) - 1)/sizeof(Char));
-      // Also must be room for everything after decoding.
-      size_t neededSize2
-	= (keepSize + insertRS_
-	   // all the converted characters
-	   + (nLeftOver_ + readSize_)/minBytesPerChar
-	   // enough Chars to contain left over bytes
-	   + ((readSize_ % minBytesPerChar + sizeof(Char) - 1)
-	      / sizeof(Char)));
-      if (neededSize2 > neededSize)
-	neededSize = neededSize2;
-      neededSize = roundUp(neededSize, align);
-      if (neededSize > size_t(-1)/sizeof(Char))
-	abort();
-      startOffset = 0;
-    }
-    if (bufSize_ < neededSize)
-      reallocateBuffer(neededSize);
-    Char *newStart = buf_ + startOffset;
-    if (newStart != start() && keepSize > 0)
-      memmove(newStart, start(), keepSize*sizeof(Char));
-    char *bytesStart = (char *)(buf_ + bufSize_ - readSizeChars) - nLeftOver_;
-    if (nLeftOver_ > 0 && leftOver_ != bytesStart)
-      memmove(bytesStart, leftOver_, nLeftOver_);
-    moveStart(newStart);
-    bufLim_ = end();
-
-    size_t nread;
-    if (so_->read((char *)(buf_ + bufSize_ - readSizeChars), readSize_,
-		  mgr, nread)) {
-      if (nread > 0) {
-	const char *bytesEnd = bytesStart + nLeftOver_ + nread;
-	size_t nChars = decoder_->decode((Char *)end() + insertRS_,
-					 bytesStart,
-					 nLeftOver_ + nread
-					 - (zapEof_ && bytesEnd[-1] == EOFCHAR),
-					 &leftOver_);
-	nLeftOver_ = bytesEnd - leftOver_;
-	if (nChars > 0) {
-	  if (insertRS_) {
-	    noteRS();
-	    *(Char *)end() = RS;
-	    advanceEnd(end() + 1);
-	    insertRS_ = false;
-	    bufLim_ += 1;
-	    bufLimOffset_ += 1;
-	  }
-	  bufLim_ += nChars;
-	  bufLimOffset_ += nChars;
-	  break;
-	}
-      }
-    }
-    else
-      so_ = 0;
-  }
-  ASSERT(end() < bufLim_);
-  if (insertRS_) {
-    noteRS();
-    insertChar(RS);
-    insertRS_ = false;
-    bufLimOffset_ += 1;
-  }
-  switch (recordType_) {
-  case unknown:
-    {
-      const Char *e = findNextCrOrLf(end(), bufLim_);
-      if (e) {
-	if (*e == '\n') {
-	  recordType_ = lf;
-	  info_->noteInsertedRSs();
-	  *(Char *)e = RE;
-	  advanceEnd(e + 1);
-	  insertRS_ = true;
-	}
-	else {
-	  if (e + 1 < bufLim_) {
-	    if (e[1] == '\n') {
-	      recordType_ = crlf;
-	      advanceEnd(e + 1);
-	      if (e + 2 == bufLim_) {
-		bufLim_--;
-		bufLimOffset_--;
-		insertRS_ = true;
-	      }
-	    }
-	    else {
-	      advanceEnd(e + 1);
-	      recordType_ = cr;
-	      info_->noteInsertedRSs();
-	      insertRS_ = true;
-	    }
-	  }
-	  else {
-	    recordType_ = crUnknown;
-	    advanceEnd(e + 1);
-	  }
-	}
-      }
-      else
-	advanceEnd(bufLim_);
-    }
-    break;
-  case crUnknown:
-    {
-      if (*cur() == '\n') {
-	noteRS();
-	advanceEnd(cur() + 1);
-	recordType_ = crlf;
-      }
-      else {
-	advanceEnd(cur() + 1);
-	insertRS_ = true;
-	recordType_ = cr;
-	info_->noteInsertedRSs();
-      }
-    }
-    break;
-  case lf:
-    {
-      Char *e = (Char *)findNextLf(end(), bufLim_);
-      if (e) {
-	advanceEnd(e + 1);
-	*e = RE;
-	insertRS_ = true;
-      }
-      else
-	advanceEnd(bufLim_);
-    }
-    break;
-  case cr:
-    {
-      const Char *e = findNextCr(end(), bufLim_);
-      if (e) {
-	advanceEnd(e + 1);
-	insertRS_ = true;
-      }
-      else
-	advanceEnd(bufLim_);
-    }
-    break;
-  case crlf:
-    {
-      const Char *e = end();
-      for (;;) {
-	e = findNextLf(e, bufLim_);
-	if (!e) {
-	  advanceEnd(bufLim_);
-	  break;
-	}
-	// Need to delete final RS if not followed by anything.
-	if (e + 1 == bufLim_) {
-	  bufLim_--;
-	  bufLimOffset_--;
-	  advanceEnd(e);
-	  insertRS_ = true;
-	  if (cur() == end())
-	    return fill(mgr);
-	  break;
-	}
-	noteRSAt(e);
-	e++;
-      }
-    }
-    break;
-  case asis:
-    advanceEnd(bufLim_);
-    break;
-  default:
-    CANNOT_HAPPEN();
-  }
-  ASSERT(cur() < end());
-  return nextChar();
-}
-
-const Char *ExternalInputSource::findNextCr(const Char *start,
-					    const Char *end)
-{
-  for (; start < end; start++)
-    if (*start == '\r')
-      return start;
-  return 0;
-}
-
-const Char *ExternalInputSource::findNextLf(const Char *start,
-					    const Char *end)
-{
-  for (; start < end; start++)
-    if (*start == '\n')
-      return start;
-  return 0;
-}
-
-const Char *ExternalInputSource::findNextCrOrLf(const Char *start,
-						const Char *end)
-{
-  for (; start < end; start++)
-    if (*start == '\n' || *start == '\r')
-      return start;
-  return 0;
-}
-
-void ExternalInputSource::pushCharRef(Char ch, const NamedCharRef &ref)
-{
-  ASSERT(cur() == start());
-  noteCharRef(startIndex() + (cur() - start()), ref);
-  insertChar(ch);
-}
-
-void ExternalInputSource::insertChar(Char ch)
-{
-  if (start() > buf_) {
-    if (cur() > start())
-      memmove((Char *)start() - 1, start(), (cur() - start())*sizeof(Char));
-    moveLeft();
-    *(Char *)cur() = ch;
-  }
-  else {
-    // must have start == buf
-    if (buf_ + (bufSize_ - (nLeftOver_ + sizeof(Char) - 1)/sizeof(Char))
-	== bufLim_) {
-      if (bufSize_ == size_t(-1))
-	abort();		// FIXME throw an exception
-      reallocateBuffer(bufSize_ + 1);
-    }
-    else if (nLeftOver_ > 0 && ((char *)(bufLim_ + 1) > leftOver_)) {
-      char *s = (char *)(buf_ + bufSize_) - nLeftOver_;
-      memmove(s, leftOver_, nLeftOver_);
-      leftOver_ = s;
-    }
-    if (cur() < bufLim_)
-      memmove((Char *)cur() + 1, cur(), (bufLim_ - cur())*sizeof(Char));
-    *(Char *)cur() = ch;
-    advanceEnd(end() + 1);
-    bufLim_ += 1;
-  }
-}
-
-void ExternalInputSource::reallocateBuffer(size_t newSize)
-{
-  Char *newBuf = new Char[newSize];
-  
-  memcpy(newBuf, buf_, bufSize_*sizeof(Char));
-  bufSize_ = newSize;
-  changeBuffer(newBuf, buf_);
-  bufLim_ = newBuf + (bufLim_ - buf_);
-  if (nLeftOver_ > 0) {
-    char *s = (char *)(newBuf + bufSize_) - nLeftOver_;
-    memmove(s,
-	    (char *)newBuf + (leftOver_ - (char *)buf_),
-	    nLeftOver_);
-    leftOver_ = s;
-  }
-  delete [] buf_;
-  buf_ = newBuf;
-}
-
-RTTI_DEF1(ExternalInfoImpl, ExternalInfo)
-
-ExternalInfoImpl::ExternalInfoImpl(ParsedSystemId &parsedSysid)
-: currentIndex_(0), position_(parsedSysid.size())
-{
-  parsedSysid.swap(parsedSysid_);
-  if (parsedSysid_.size() > 0)
-    notrack_ = parsedSysid_[0].notrack;
-}
-
-void ExternalInfoImpl::setId(size_t i, StringC &id)
-{
-  Mutex::Lock lock(&mutex_);
-  id.swap(position_[i].id);
-}
-
-void ExternalInfoImpl::getId(size_t i, StringC &id) const
-{
-  Mutex::Lock lock(&((ExternalInfoImpl *)this)->mutex_);
-  id = position_[i].id;
-}
-
-void ExternalInfoImpl::setDecoder(size_t i, Decoder *decoder)
-{
-  Mutex::Lock lock(&mutex_);
-  position_[i].decoder = decoder;
-}
-
-void ExternalInfoImpl::noteInsertedRSs()
-{
-  position_[currentIndex_].insertedRSs = 1;
-}
-
-void ExternalInfoImpl::noteRS(Offset offset)
-{
-  // We do the locking in OffsetOrderedList.
-  if (!notrack_)
-    rsList_.append(offset);
-  if (offset
-      == (currentIndex_ == 0 ? 0 : position_[currentIndex_- 1].endOffset))
-    position_[currentIndex_].startsWithRS = 1;
-}
-
-void ExternalInfoImpl::noteStorageObjectEnd(Offset offset)
-{
-  Mutex::Lock lock(&mutex_);
-  ASSERT(currentIndex_ < position_.size());
-  // The last endOffset_ must be -1.
-  if (currentIndex_ < position_.size() - 1) {
-    position_[currentIndex_++].endOffset = offset;
-    position_[currentIndex_].line1RS = rsList_.size();
-    notrack_ = parsedSysid_[currentIndex_].notrack;
-  }
-}
-
-Boolean ExternalInfoImpl::convertOffset(Offset off,
-					StorageObjectLocation &ret) const
-{
-  Mutex::Lock lock(&((ExternalInfoImpl *)this)->mutex_);
-  if (off == Offset(-1) || position_.size() == 0)
-    return false;
-  // the last endOffset_ is Offset(-1), so this will
-  // terminate
-  int i;
-  for (i = 0; off >= position_[i].endOffset; i++)
-    ;
-  for (; position_[i].id.size() == 0; i--)
-    if (i == 0)
-      return false;
-  ret.storageObjectSpec = &parsedSysid_[i];
-  ret.actualStorageId = position_[i].id;
-  Offset startOffset = i == 0 ? 0 : position_[i - 1].endOffset;
-  ret.storageObjectOffset = off - startOffset;
-  ret.byteIndex = ret.storageObjectOffset;
-  if (parsedSysid_[i].notrack
-      || parsedSysid_[i].records == StorageObjectSpec::asis) {
-    ret.lineNumber = (unsigned long)-1;
-    if (parsedSysid_[i].records != StorageObjectSpec::asis) {
-      if (position_[i].insertedRSs)
-	ret.byteIndex = (unsigned long)-1;
-      else if (ret.byteIndex > 0 && position_[i].startsWithRS)
-	ret.byteIndex--;	// first RS is inserted
-    }
-    ret.columnNumber = (unsigned long)-1;
-    return true;
-  }
-  else {
-    size_t line1RS = position_[i].line1RS;
-    // line1RS is now the number of RSs that are before or on the current line.
-    size_t j;
-    Offset colStart;
-    if (rsList_.findPreceding(off, j, colStart)) {
-      if (position_[i].insertedRSs)
-	ret.byteIndex -= j + 1 - line1RS;
-      else if (ret.byteIndex > 0 && position_[i].startsWithRS)
-	ret.byteIndex--;	// first RS is inserted
-      j++;
-      colStart++;
-    }
-    else {
-      j = 0;
-      colStart = 0;
-    }
-    // j is now the number of RSs that are before or on the current line
-    // colStart is the offset of the first column
-    ret.lineNumber = j - line1RS + 1 - position_[i].startsWithRS;
-    // the offset of the first column
-    if (colStart < startOffset)
-      colStart = startOffset;
-    // the RS that starts a line will be in column 0;
-    // the first real character of a line will be column 1
-    ret.columnNumber = 1 + off - colStart;
-  }
-  if (!position_[i].decoder
-      || !position_[i].decoder->convertOffset(ret.byteIndex))
-    ret.byteIndex = (unsigned long)-1;
-  return true;
-}
-
-const StorageObjectSpec &ExternalInfoImpl::spec(size_t i) const
-{
-  return parsedSysid_[i];
-}
-
-size_t ExternalInfoImpl::nSpecs() const
-{
-  return parsedSysid_.size();
-}
-
-const ParsedSystemId &ExternalInfoImpl::parsedSystemId() const
-{
-  return parsedSysid_;
-}
-
-StorageObjectSpec::StorageObjectSpec()
-: storageManager(0), codingSystem(0), codingSystemName(0), notrack(0),
-  records(find), zapEof(1), search(1)
-{
-}
-
-StorageObjectPosition::StorageObjectPosition()
-: endOffset(Offset(-1)), line1RS(0), startsWithRS(0), insertedRSs(0)
-{
-}
-
-FSIParser::FSIParser(const StringC &str,
-		     const CharsetInfo &idCharset,
-		     Boolean isNdata,
-		     const StorageObjectLocation *defLoc,
-		     const EntityManagerImpl *em,
-		     Messenger &mgr)
-: str_(str),
-  strIndex_(0),
-  idCharset_(idCharset),
-  isNdata_(isNdata),
-  defSpec_(defLoc ? defLoc->storageObjectSpec : 0),
-  defId_(defLoc ? &defLoc->actualStorageId : 0),
-  em_(em),
-  mgr_(mgr)
-{
-}
-
-Xchar FSIParser::get()
-{
-  if (strIndex_ < str_.size())
-    return str_[strIndex_++];
-  else
-    return -1;
-}
-
-void FSIParser::unget()
-{
-  if (strIndex_ > 0)
-    strIndex_ -= 1;
-}
-
-Boolean FSIParser::matchKey(const StringC &str, const char *s)
-{
-  if (strlen(s) != str.size())
-    return false;
-  for (size_t i = 0; i < str.size(); i++)
-    if (idCharset_.execToDesc(toupper(s[i])) != str[i]
-	&& idCharset_.execToDesc(tolower(s[i])) != str[i])
-      return false;
-  return true;
-}
-
-Boolean FSIParser::matchChar(Xchar ch, char execC)
-{
-  return ch == idCharset_.execToDesc(execC);
-}
-
-Boolean FSIParser::isS(Xchar c)
-{
-  return (matchChar(c, ' ')
-	  || matchChar(c, '\r')
-	  || matchChar(c, '\n')
-	  || matchChar(c, ' '));
-}
-
-Boolean FSIParser::convertDigit(Xchar c, int &weight)
-{
-  static const char digits[] = "0123456789";
-  for (int i = 0; digits[i] != '\0'; i++)
-    if (matchChar(c, digits[i])) {
-      weight = i;
-      return 1;
-    }
-  return 0;
-}
-
-Boolean FSIParser::parse(ParsedSystemId &parsedSysid)
-{
-  size_t startIndex = strIndex_;
-  if (!matchChar(get(), '<'))
-    return handleInformal(startIndex, parsedSysid);
-  StringC key;
-  for (;;) {
-    Xchar c = get();
-    if (c == -1)
-      return handleInformal(startIndex, parsedSysid);
-    if (isS(c) || matchChar(c, '>'))
-      break;
-    key += Char(c);
-  }
-  unget();
-  if (matchKey(key, "CATALOG")) {
-    if (!setCatalogAttributes(parsedSysid))
-      return 0;
-    return parse(parsedSysid);
-  }
-  Boolean neutral;
-  StorageManager *sm = lookupStorageType(key, neutral);
-  if (!sm)
-    return handleInformal(startIndex, parsedSysid);
-  for (;;) {
-    parsedSysid.resize(parsedSysid.size() + 1);
-    StorageObjectSpec &sos = parsedSysid.back();
-    sos.storageManager = sm;
-    Xchar smcrd;
-    Boolean fold;
-    if (!setAttributes(sos, neutral, smcrd, fold))
-      return 0;
-    sm = 0;
-    StringC id;
-    Boolean hadData = 0;
-    for (;;) {
-      Xchar c = get();
-      if (c == -1)
-	break;
-      if (matchChar(c, '<')) {
-	hadData = 1;
-	Char stago = c;
-	key.resize(0);
-	for (;;) {
-	  c = get();
-	  if (c == -1) {
-	    id += stago;
-	    id += key;
-	    break;
-	  }
-	  if (isS(c) || matchChar(c, '>')) {
-	    unget();
-	    sm = lookupStorageType(key, neutral);
-	    if (!sm) {
-	      id += stago;
-	      id += key;
-	    }
-	    break;
-	  }
-	  key += c;
-	}
-	if (sm)
-	  break;
-      }
-      else if (!((!hadData && matchChar(c, '\r')) // ignored RE
-		 || matchChar(c, '\n') )) {	  // ignored RS
-	hadData = 1;
-	id += c;
-      }
-    }
-    if (id.size() > 0 && matchChar(id[id.size() - 1], '\r'))
-      id.resize(id.size() - 1);
-    uncharref(id);
-    id.swap(sos.specId);
-    if (!convertId(sos.specId, smcrd, sos.storageManager))
-      return 0;
-    if (neutral) {
-      if (!sos.storageManager->transformNeutral(sos.specId, fold, mgr_))
-	return 0;
-    }
-    if (sos.storageManager->resolveRelative(sos.baseId, sos.specId,
-					    sos.search))
-      sos.baseId.resize(0);
-    if (!sm)
-      break;
-  }
-  return 1;
-}
-
-Boolean FSIParser::handleInformal(size_t index, ParsedSystemId &parsedSysid)
-{
-  parsedSysid.resize(parsedSysid.size() + 1);
-  StorageObjectSpec &sos = parsedSysid.back();
-  sos.specId.assign(str_.data() + index,
-		    str_.size() - index);
-  sos.storageManager = em_->guessStorageType(sos.specId, idCharset_);
-  if (!sos.storageManager) {
-    if (defSpec_ && defSpec_->storageManager->inheritable())
-      sos.storageManager = defSpec_->storageManager;
-    else
-      sos.storageManager = em_->defaultStorageManager_.pointer();
-  }
-  setDefaults(sos);
-  if (!convertId(sos.specId, -1, sos.storageManager))
-    return 0;
-  if (sos.storageManager->resolveRelative(sos.baseId, sos.specId, sos.search))
-    sos.baseId.resize(0);
-  return 1;
-}
-
-StorageManager *FSIParser::lookupStorageType(const StringC &key,
-					     Boolean &neutral)
-{
-  if (matchKey(key, "NEUTRAL")) {
-    neutral = 1;
-    if (defSpec_ && defSpec_->storageManager->inheritable())
-      return defSpec_->storageManager;
-    else
-      return em_->defaultStorageManager_.pointer();
-  }
-  else {
-    StorageManager *sm = em_->lookupStorageType(key, idCharset_);
-    if (sm)
-      neutral = 0;
-    return sm;
-  }
-}
-
-Boolean FSIParser::setCatalogAttributes(ParsedSystemId &parsedSysid)
-{
-  Boolean hadPublic = 0;
-  parsedSysid.maps.resize(parsedSysid.maps.size() + 1);
-  parsedSysid.maps.back().type = ParsedSystemId::Map::catalogDocument;
-  for (;;) {
-    StringC token, value;
-    Boolean gotValue;
-    if (!parseAttribute(token, gotValue, value)) {
-      mgr_.message(EntityManagerMessages::fsiSyntax, StringMessageArg(str_));
-      return 0;
-    }
-    if (token.size() == 0)
-      break;
-    if (matchKey(token, "PUBLIC")) {
-      if (hadPublic)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(idCharset_.execToDesc("PUBLIC")));
-      else if (gotValue) {
-	convertMinimumLiteral(value, parsedSysid.maps.back().publicId);
-	parsedSysid.maps.back().type = ParsedSystemId::Map::catalogPublic;
-      }
-      else
-	mgr_.message(EntityManagerMessages::fsiMissingValue,
-		     StringMessageArg(token));
-      hadPublic = 1;
-    }
-    else
-      mgr_.message(gotValue
-		   ? EntityManagerMessages::fsiUnsupportedAttribute
-		   : EntityManagerMessages::fsiUnsupportedAttributeToken,
-		   StringMessageArg(token));
-  }
-  return 1;
-}
-
-void FSIParser::convertMinimumLiteral(const StringC &from, StringC &to)
-{
-  // Do just enough to ensure it can be reparsed.
-  to.resize(0);
-  for (size_t i = 0; i < from.size(); i++) {
-    Char c = from[i];
-    if (matchChar(c, '"') || matchChar(c, '#'))
-      mgr_.message(EntityManagerMessages::fsiLookupChar, NumberMessageArg(c));
-    else if (matchChar(c, ' ')) {
-      if (to.size() && to[to.size() - 1] != c)
-	to += c;
-    }
-    else
-      to += c;
-  }
-  if (to.size() && matchChar(to[to.size() - 1], ' '))
-    to.resize(to.size() - 1);
-}
-
-// FIXME This should be table driven.
-
-Boolean FSIParser::setAttributes(StorageObjectSpec &sos,
-				 Boolean neutral,
-				 Xchar &smcrd,
-				 Boolean &fold)
-{
-  Boolean hadBctf = 0;
-  Boolean hadEncoding = 0;
-  Boolean hadTracking = 0;
-  Boolean hadSmcrd = 0;
-  smcrd = -1;
-  fold = 1;
-  Boolean hadRecords = 0;
-  Boolean hadBase = 0;
-  Boolean hadZapeof = 0;
-  Boolean hadSearch = 0;
-  Boolean hadFold = 0;
-  StorageObjectSpec::Records records;
-  setDefaults(sos);
-  for (;;) {
-    StringC token, value;
-    Boolean gotValue;
-    if (!parseAttribute(token, gotValue, value)) {
-      mgr_.message(EntityManagerMessages::fsiSyntax, StringMessageArg(str_));
-      return 0;
-    }
-    if (token.size() == 0)
-      break;
-    if (matchKey(token, "BCTF")) {
-      if (sos.storageManager->requiredCodingSystem())
-	mgr_.message(EntityManagerMessages::fsiBctfEncodingNotApplicable);
-      else if (hadBctf)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(token));
-      else if (hadEncoding)
-	mgr_.message(EntityManagerMessages::fsiBctfAndEncoding);
-      else if (gotValue) {
-	const char *codingSystemName;
-	const InputCodingSystem *codingSystem
-	  = em_->lookupCodingSystem(value, idCharset_, 1, codingSystemName);
-	if (codingSystem) {
-	  sos.codingSystem = codingSystem;
-	  sos.codingSystemName = codingSystemName;
-	  sos.codingSystemType = StorageObjectSpec::bctf;
-	}
-	else if (matchKey(value, "SAME")) {
-	  if (!isNdata_) {
-	    if (defSpec_) {
-	      sos.codingSystem = defSpec_->codingSystem;
-	      sos.codingSystemName = defSpec_->codingSystemName;
-	      sos.codingSystemType = defSpec_->codingSystemType;
-	    }
-	    else {
-	      sos.codingSystem = em_->defaultCodingSystem_;
-	      sos.codingSystemName = 0;
-	      sos.codingSystemType = (em_->internalCharsetIsDocCharset_
-				      ? StorageObjectSpec::bctf
-				      : StorageObjectSpec::encoding);
-	    }
-	  }
-	}
-	else
-	  mgr_.message(EntityManagerMessages::fsiUnknownBctf,
-		       StringMessageArg(value));
-      }
-      else
-	mgr_.message(EntityManagerMessages::fsiMissingValue,
-		     StringMessageArg(token));
-      hadBctf = 1;
-    }
-    else if (matchKey(token, "ENCODING")) {
-      if (sos.storageManager->requiredCodingSystem())
-	mgr_.message(EntityManagerMessages::fsiBctfEncodingNotApplicable);
-      else if (hadEncoding)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(token));
-      else if (hadBctf)
-	mgr_.message(EntityManagerMessages::fsiBctfAndEncoding);
-      else if (gotValue) {
-	const char *codingSystemName;
-	const InputCodingSystem *codingSystem
-	  = em_->lookupCodingSystem(value, idCharset_, 0, codingSystemName);
-	if (codingSystem) {
-	  sos.codingSystem = codingSystem;
-	  sos.codingSystemName = codingSystemName;
-	  sos.codingSystemType = StorageObjectSpec::encoding;
-	}
-	else if (matchKey(value, "SAME")) {
-	  if (!isNdata_) {
-	    if (defSpec_) {
-	      sos.codingSystem = defSpec_->codingSystem;
-	      sos.codingSystemName = defSpec_->codingSystemName;
-	      sos.codingSystemType = defSpec_->codingSystemType;
-	    }
-	    else {
-	      sos.codingSystem = em_->defaultCodingSystem_;
-	      sos.codingSystemName = 0;
-	      sos.codingSystemType = (em_->internalCharsetIsDocCharset_
-				      ? StorageObjectSpec::bctf
-				      : StorageObjectSpec::encoding);
-	    }
-	  }
-	}
-	else
-	  mgr_.message(EntityManagerMessages::fsiUnknownEncoding,
-		       StringMessageArg(value));
-      }
-      else
-	mgr_.message(EntityManagerMessages::fsiMissingValue,
-		     StringMessageArg(token));
-      hadEncoding = 1;
-    }
-    else if (matchKey(token, "TRACKING")) {
-      if (hadTracking)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(token));
-      else if (gotValue) {
-	if (matchKey(value, "NOTRACK"))
-	  sos.notrack = 1;
-	else if (!matchKey(value, "TRACK"))
-	  mgr_.message(EntityManagerMessages::fsiBadTracking,
-		       StringMessageArg(value));
-      }
-      else
-	mgr_.message(EntityManagerMessages::fsiMissingValue,
-		     StringMessageArg(token));
-      hadTracking = 1;
-    }
-    else if (matchKey(token, "ZAPEOF")) {
-      if (sos.storageManager->requiredCodingSystem())
-	mgr_.message(EntityManagerMessages::fsiZapeofNotApplicable);
-      else if (hadZapeof)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(token));
-      else if (gotValue) {
-	if (matchKey(value, "ZAPEOF"))
-	  sos.zapEof = 1;
-	else if (matchKey(value, "NOZAPEOF"))
-	  sos.zapEof = 0;
-	else
-	  mgr_.message(EntityManagerMessages::fsiBadZapeof,
-		       StringMessageArg(value));
-      }
-      else
-	sos.zapEof = 1;
-      hadZapeof = 1;
-    }
-    else if (matchKey(token, "NOZAPEOF")) {
-      if (sos.storageManager->requiredCodingSystem())
-	mgr_.message(EntityManagerMessages::fsiZapeofNotApplicable);
-      else if (hadZapeof)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(idCharset_.execToDesc("ZAPEOF")));
-      else if (gotValue)
-	mgr_.message(EntityManagerMessages::fsiValueAsName,
-		     StringMessageArg(token));
-      else
-	sos.zapEof = 0;
-      hadZapeof = 1;
-    }
-    else if (matchKey(token, "SEARCH")) {
-      if (hadSearch)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(token));
-      else if (gotValue) {
-	if (matchKey(value, "SEARCH"))
-	  sos.search = 1;
-	else if (matchKey(value, "NOSEARCH"))
-	  sos.search = 0;
-	else
-	  mgr_.message(EntityManagerMessages::fsiBadSearch,
-		       StringMessageArg(value));
-      }
-      else
-	sos.search = 1;
-      hadSearch = 1;
-    }
-    else if (matchKey(token, "NOSEARCH")) {
-      if (hadSearch)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(idCharset_.execToDesc("SEARCH")));
-      else if (gotValue)
-	mgr_.message(EntityManagerMessages::fsiValueAsName,
-		     StringMessageArg(token));
-      else
-	sos.search = 0;
-      hadSearch = 1;
-    }
-    else if (matchKey(token, "FOLD")) {
-      if (!neutral)
-	mgr_.message(EntityManagerMessages::fsiFoldNotNeutral);
-      else if (hadFold)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(token));
-      else if (gotValue) {
-	if (matchKey(value, "FOLD"))
-	  fold = 1;
-	else if (matchKey(value, "NOFOLD"))
-	  fold = 0;
-	else
-	  mgr_.message(EntityManagerMessages::fsiBadFold,
-		       StringMessageArg(value));
-      }
-      else
-	fold = 1;
-      hadFold = 1;
-    }
-    else if (matchKey(token, "NOFOLD")) {
-      if (!neutral)
-	mgr_.message(EntityManagerMessages::fsiFoldNotNeutral);
-      else if (hadFold)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(idCharset_.execToDesc("FOLD")));
-      else if (gotValue)
-	mgr_.message(EntityManagerMessages::fsiValueAsName,
-		     StringMessageArg(token));
-      else
-	fold = 0;
-      hadFold = 1;
-    }
-    else if (matchKey(token, "SMCRD")) {
-      if (hadSmcrd)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(token));
-      else if (gotValue) {
-	if (value.size() == 0)
-	  smcrd = -1;
-	else if (value.size() == 1)
-	  smcrd = value[0];
-	else
-	  mgr_.message(EntityManagerMessages::fsiBadSmcrd,
-		       StringMessageArg(value));
-      }
-      else
-	mgr_.message(EntityManagerMessages::fsiMissingValue,
-		     StringMessageArg(token));
-      hadSmcrd = 1;
-    }
-    else if (matchKey(token, "RECORDS")) {
-      if (sos.storageManager->requiresCr())
-	mgr_.message(EntityManagerMessages::fsiRecordsNotApplicable);
-      else if (hadRecords)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(token));
-      else if (gotValue) {
-	if (!lookupRecords(value, sos.records))
-	  mgr_.message(EntityManagerMessages::fsiUnsupportedRecords,
-		       StringMessageArg(value));
-      }
-      else
-	mgr_.message(EntityManagerMessages::fsiMissingValue,
-		     StringMessageArg(token));
-      hadRecords = 1;
-    }
-    else if (matchKey(token, "SOIBASE")) {
-      if (hadBase)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(token));
-      else if (gotValue)
-	value.swap(sos.baseId);
-      else {
-	mgr_.message(EntityManagerMessages::fsiMissingValue,
-		     StringMessageArg(token));
-	sos.baseId.resize(0);
-      }
-      hadBase = 1;
-    }
-    else if (lookupRecords(token, records)) {
-      if (sos.storageManager->requiresCr())
-	mgr_.message(EntityManagerMessages::fsiRecordsNotApplicable);
-      else if (hadRecords)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(idCharset_.execToDesc("RECORDS")));
-      else if (!gotValue)
-	sos.records = records;
-      else
-	mgr_.message(EntityManagerMessages::fsiValueAsName,
-		     StringMessageArg(token));
-      hadRecords = 1;
-    }
-    else if (matchKey(token, "NOTRACK")) {
-      if (hadTracking)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(idCharset_.execToDesc("TRACKING")));
-      else if (!gotValue)
-	sos.notrack = 1;
-      else
-	mgr_.message(EntityManagerMessages::fsiValueAsName,
-		     StringMessageArg(token));
-      hadTracking = 1;
-    }
-    else if (matchKey(token, "TRACK")) {
-      if (hadTracking)
-	mgr_.message(EntityManagerMessages::fsiDuplicateAttribute,
-		     StringMessageArg(idCharset_.execToDesc("TRACKING")));
-      else if (gotValue)
-	mgr_.message(EntityManagerMessages::fsiValueAsName,
-		     StringMessageArg(token));
-      hadTracking = 1;
-    }
-    else
-      mgr_.message(gotValue
-		   ? EntityManagerMessages::fsiUnsupportedAttribute
-		   : EntityManagerMessages::fsiUnsupportedAttributeToken,
-		   StringMessageArg(token));
-  }
-  if (hadBase && sos.baseId.size() > 0) {
-    convertId(sos.baseId, smcrd, sos.storageManager);
-    if (neutral) {
-      if (!sos.storageManager->transformNeutral(sos.baseId, fold, mgr_))
-	sos.baseId.resize(0);
-    }
-  }
-  if (!hadZapeof && hadRecords && sos.records == StorageObjectSpec::asis)
-    sos.zapEof = 0;
-  return 1;
-}
-
-FSIParser::RecordType FSIParser::recordTypeTable[] = {
-  { "FIND", StorageObjectSpec::find },
-  { "ASIS", StorageObjectSpec::asis },
-  { "CR", StorageObjectSpec::cr },
-  { "LF", StorageObjectSpec::lf },
-  { "CRLF", StorageObjectSpec::crlf }
-};
-
-const char *FSIParser::recordsName(StorageObjectSpec::Records records)
-{
-  for (size_t i = 0; i < SIZEOF(recordTypeTable); i++)
-    if (records == recordTypeTable[i].value)
-      return recordTypeTable[i].name;
-  return 0;
-}
-
-Boolean FSIParser::lookupRecords(const StringC &token,
-				 StorageObjectSpec::Records &result)
-{
-  for (size_t i = 0; i < SIZEOF(recordTypeTable); i++)
-    if (matchKey(token, recordTypeTable[i].name)) {
-      result = recordTypeTable[i].value;
-      return 1;
-    }
-  return 0;
-}
-
-void FSIParser::setDefaults(StorageObjectSpec &sos)
-{
-  if (sos.storageManager->requiresCr())
-    sos.records = StorageObjectSpec::cr;
-  else if (isNdata_
-	   || (defSpec_ && defSpec_->records == StorageObjectSpec::asis))
-    sos.records = StorageObjectSpec::asis;
-  if (isNdata_ || (defSpec_ && !defSpec_->zapEof))
-    sos.zapEof = 0;
-  if (defSpec_ && defSpec_->storageManager == sos.storageManager) {
-    if (defId_)
-      sos.baseId = *defId_;
-    else {
-      sos.baseId = defSpec_->specId;
-      sos.storageManager->resolveRelative(defSpec_->baseId,
-					  sos.baseId,
-					  0);
-    }
-  }
-  sos.codingSystem = sos.storageManager->requiredCodingSystem();
-  if (sos.codingSystem) {
-    sos.zapEof = 0;		// hack
-    sos.codingSystemType = StorageObjectSpec::special;
-  }
-  else {
-    sos.codingSystem = em_->defaultCodingSystem_;
-    sos.codingSystemType
-      = (em_->internalCharsetIsDocCharset_
-         ? StorageObjectSpec::bctf
-	 : StorageObjectSpec::encoding);
-    if (isNdata_) {
-      sos.codingSystem = em_->codingSystemKit_->identityInputCodingSystem();
-      sos.codingSystemType = StorageObjectSpec::special;
-    }
-    else if (defSpec_) {
-      sos.codingSystem = defSpec_->codingSystem;
-      sos.codingSystemName = defSpec_->codingSystemName;
-      sos.codingSystemType = defSpec_->codingSystemType;
-    }
-  }
-}
-
-Boolean FSIParser::parseAttribute(StringC &token, Boolean &gotValue,
-				  StringC &value)
-{
-  Xchar c = get();
-  while (isS(c))
-    c = get();
-  if (c == -1) {
-    return 0;
-  }
-  token.resize(0);
-  if (matchChar(c, '>'))
-    return 1;
-  if (matchChar(c, '"') || matchChar(c, '\'') || matchChar(c, '='))
-    return 0;
-  for (;;) {
-    token += c;
-    c = get();
-    if (c == -1)
-      return 0;
-    if (isS(c))
-      break;
-    if (matchChar(c, '>') || matchChar(c, '='))
-      break;
-  }
-  while (isS(c))
-    c = get();
-  if (c == -1)
-    return 0;
-  if (!matchChar(c, '=')) {
-    unget();
-    gotValue = 0;
-    return 1;
-  }
-  gotValue = 1;
-  value.resize(0);
-
-  c = get();
-  while (isS(c))
-    c = get();
-  if (matchChar(c, '>') || matchChar(c, '='))
-    return 0;
-  if (matchChar(c, '"') || matchChar(c, '\'')) {
-    Char lit = c;
-    for (;;) {
-      Xchar c = get();
-      if (c == lit)
-	break;
-      if (c == -1)
-	return 0;
-      if (matchChar(c, '\n'))
-	;
-      else if (matchChar(c, '\r') || matchChar(c, '\t'))
-	value += idCharset_.execToDesc(' ');
-      else
-	value += c;
-    }
-    uncharref(value);
-  }
-  else {
-    for (;;) {
-      value += c;
-      c = get();
-      if (c == -1)
-	return 0;
-      if (isS(c))
-	break;
-      if (matchChar(c, '>') || matchChar(c, '=')) {
-	unget();
-	break;
-      }
-    }
-  }
-  return 1;
-}
-
-void FSIParser::uncharref(StringC &str)
-{
-  size_t j = 0;
-  size_t i = 0;
-  while (i < str.size()) {
-    int digit;
-    if (matchChar(str[i], '&')
-	&& i + 2 < str.size()
-	&& matchChar(str[i + 1], '#')
-	&& convertDigit(str[i + 2], digit)) {
-      unsigned long val = digit;
-      i += 3;
-      while (i < str.size() && convertDigit(str[i], digit)) {
-	val = val*10 + digit;
-	i++;
-      }
-      str[j++] = val;
-      if (i < str.size() && matchChar(str[i], ';'))
-	i++;
-    }
-    else
-      str[j++] = str[i++];
-  }
-  str.resize(j);
-}
-
-Boolean FSIParser::convertId(StringC &id, Xchar smcrd,
-			     const StorageManager *sm)
-{
-  const CharsetInfo *smCharset = sm->idCharset();
-  StringC newId;
-  size_t i = 0;
-  while (i < id.size()) {
-    UnivChar univ;
-    WideChar wide;
-    ISet<WideChar> wideSet;
-    int digit;
-    if (Xchar(id[i]) == smcrd
-	&& i + 1 < id.size()
-	&& convertDigit(id[i + 1], digit)) {
-      i += 2;
-      Char val = digit;
-      while (i < id.size() && convertDigit(id[i], digit)) {
-	val = val*10 + digit;
-	i++;
-      }
-      newId += val;
-      if (i < id.size() && matchChar(id[i], ';'))
-	i++;
-    }
-    else if (smCharset) {
-      if (!idCharset_.descToUniv(id[i++], univ))
-	return 0;
-      if (univ == UnivCharsetDesc::rs)
-	;
-      else if (univ == UnivCharsetDesc::re && sm->reString())
-	newId += *sm->reString();
-      else if (smCharset->univToDesc(univ, wide, wideSet) != 1
-	       || wide > charMax)
-	return 0;			// FIXME give error
-      else
-	newId += Char(wide);
-    }
-    else
-      newId += id[i++];
-  }
-  newId.swap(id);
-  return 1;
-}
-
-ParsedSystemId:: ParsedSystemId()
-{
-}
-
-static
-void unparseSoi(const StringC &soi,
-		const CharsetInfo *idCharset,
-		const CharsetInfo &resultCharset,
-		StringC &result,
-		Boolean &needSmcrd);
-
-void ParsedSystemId::unparse(const CharsetInfo &resultCharset,
-			     Boolean isNdata,
-			     StringC &result) const
-{
-  size_t len = size();
-  result.resize(0);
-  size_t i;
-  for (i = 0; i < maps.size(); i++) {
-    if (maps[i].type == Map::catalogDocument)
-      result += resultCharset.execToDesc("<CATALOG>");
-    else if (maps[i].type == Map::catalogPublic) {
-      result += resultCharset.execToDesc("<CATALOG PUBLIC=\"");
-      result += maps[i].publicId;
-      result += resultCharset.execToDesc("\">");
-    }
-  }
-  for (i = 0; i < len; i++) {
-    const StorageObjectSpec &sos = (*this)[i];
-    result += resultCharset.execToDesc('<');
-    result += resultCharset.execToDesc(sos.storageManager->type());
-    if (sos.notrack)
-      result += resultCharset.execToDesc(" NOTRACK");
-    if (!sos.search)
-      result += resultCharset.execToDesc(" NOSEARCH");
-    if (!sos.storageManager->requiresCr()
-        && sos.records != (isNdata ? StorageObjectSpec::asis : StorageObjectSpec::find)) {
-      result += resultCharset.execToDesc(' ');
-      result += resultCharset.execToDesc(FSIParser::recordsName(sos.records));
-    }
-    if (sos.codingSystemName && sos.codingSystemType != StorageObjectSpec::special) {
-      if (!sos.zapEof)
-	result += resultCharset.execToDesc(" NOZAPEOF");
-      result += resultCharset.execToDesc(sos.codingSystemType == StorageObjectSpec::bctf
-					 ? " BCTF="
-					 : " ENCODING=");
-      result += resultCharset.execToDesc(sos.codingSystemName);
-    }
-    Boolean needSmcrd = 0;
-    if (sos.baseId.size() != 0) {
-      result += resultCharset.execToDesc(" SOIBASE='");
-      unparseSoi(sos.baseId,
-		 sos.storageManager->idCharset(),
-		 resultCharset,
-		 result,
-		 needSmcrd);
-      result += resultCharset.execToDesc('\'');
-    }
-    StringC tem;
-    unparseSoi(sos.specId,
-	       sos.storageManager->idCharset(),
-	       resultCharset,
-	       tem,
-	       needSmcrd);
-    if (needSmcrd)
-      result += resultCharset.execToDesc(" SMCRD='^'");
-    result += resultCharset.execToDesc('>');
-    result += tem;
-  }
-}
-
-void unparseSoi(const StringC &soi,
-		const CharsetInfo *idCharset,
-		const CharsetInfo &resultCharset,
-		StringC &result,
-		Boolean &needSmcrd)
-{
-  if (!idCharset) {
-    for (size_t i = 0; i < soi.size(); i++) {
-      char buf[32];
-      sprintf(buf, "&#%lu;", (unsigned long)soi[i]);
-      result += resultCharset.execToDesc(buf);
-    }
-    return;
-  }
-  for (size_t i = 0; i < soi.size(); i++) {
-    UnivChar univ;
-    WideChar to;
-    ISet<WideChar> toSet;
-    if (!idCharset->descToUniv(soi[i], univ)
-	|| univ >= 127
-	|| univ < 32
-	|| univ == 36		// $
-	|| univ == 96		// `
-#ifndef MSDOS_FILENAMES
-	|| univ == 92		// backslash
-#endif
-	|| univ == 94		// ^
-	|| resultCharset.univToDesc(univ, to, toSet) != 1) {
-      needSmcrd = 1;
-      char buf[32];
-      sprintf(buf, "^%lu;", (unsigned long)soi[i]);
-      result += resultCharset.execToDesc(buf);
-    }
-    else {
-      switch (univ) {
-      case 34:		// double quote
-      case 35:		// #
-      case 39:		// apostrophe
-      case 60:		// <
-	{
-	  char buf[32];
-	  sprintf(buf, "&#%lu;", (unsigned long)to);
-	  result += resultCharset.execToDesc(buf);
-	}
-	break;
-      default:
-	result += Char(to);
-	break;
-      }
-    }
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ExternalId.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "ExternalId.h"
-#include "CharsetInfo.h"
-#include "macros.h"
-#include "ParserMessages.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-ExternalId::ExternalId()
-: haveSystem_(0), havePublic_(0)
-{
-}
-
-void ExternalId::setSystem(Text &text)
-{
-  text.swap(system_);
-  haveSystem_ = 1;
-}
-
-Boolean ExternalId::setPublic(Text &text, const CharsetInfo &charset,
-			      Char space, const MessageType1 *&error)
-{
-  havePublic_ = 1;
-  return public_.init(text, charset, space, error);
-}
-
-void ExternalId::setLocation(const Location &loc)
-{
-  loc_ = loc;
-}
-
-PublicId::PublicId()
-: formal_(0)
-{
-}
-
-Boolean PublicId::init(Text &text, const CharsetInfo &charset,
-		       Char space, const MessageType1 *&error)
-{
-  text.swap(text_);
-  const StringC &str = text_.string();
-  formal_ = 0;
-  const Char *next = str.data();
-  const Char *lim = str.data() + str.size();
-  Char solidus = charset.execToDesc('/');
-  Char minus = charset.execToDesc('-');
-  Char plus = charset.execToDesc('+');
-  const Char *fieldStart;
-  size_t fieldLength;
-  if (!nextField(solidus, next, lim, fieldStart, fieldLength)) {
-    error = &ParserMessages::fpiMissingField;
-    return 0;
-  }
-  if (fieldLength == 1 && (*fieldStart == minus || *fieldStart == plus)) {
-    ownerType_ = (*fieldStart == plus ? registered : unregistered);
-    if (!nextField(solidus, next, lim, fieldStart, fieldLength)) {
-      error = &ParserMessages::fpiMissingField;
-      return 0;
-    }
-  }
-  else
-    ownerType_ = ISO;
-  owner_.assign(fieldStart, fieldLength);
-  if (!nextField(solidus, next, lim, fieldStart, fieldLength)) {
-    error = &ParserMessages::fpiMissingField;
-    return 0;
-  }
-  size_t i;
-  for (i = 0; i < fieldLength; i++)
-    if (fieldStart[i] == space)
-      break;
-  if (i >= fieldLength) {
-    error = &ParserMessages::fpiMissingTextClassSpace;
-    return 0;
-  }
-  StringC textClassString(fieldStart, i);
-  if (!lookupTextClass(textClassString, charset, textClass_)) {
-    error = &ParserMessages::fpiInvalidTextClass;
-    return 0;
-  }
-  i++;				// skip the space
-  fieldStart += i;
-  fieldLength -= i;
-  if (fieldLength  == 1 && *fieldStart == minus) {
-    unavailable_ = 1;
-    if (!nextField(solidus, next, lim, fieldStart, fieldLength)) {
-      error = &ParserMessages::fpiMissingField;
-      return 0;
-    }
-  }
-  else
-    unavailable_ = 0;
-  description_.assign(fieldStart, fieldLength);
-  if (!nextField(solidus, next, lim, fieldStart, fieldLength)) {
-    error = &ParserMessages::fpiMissingField;
-    return 0;
-  }
-  if (textClass_ != CHARSET) {
-    for (i = 0; i < fieldLength; i++) {
-      UnivChar c;
-      if (!charset.descToUniv(fieldStart[i], c)
-	  || c < UnivCharsetDesc::A || c >= UnivCharsetDesc::A + 26) {
-	error = &ParserMessages::fpiInvalidLanguage;
-	return 0;
-      }
-    }
-    // The public text language must be a name.
-    // Names cannot be empty.
-    if (fieldLength == 0) {
-      error = &ParserMessages::fpiInvalidLanguage;
-      return 0;
-    }
-  }
-  languageOrDesignatingSequence_.assign(fieldStart, fieldLength);
-  if (nextField(solidus, next, lim, fieldStart, fieldLength)) {
-    switch (textClass_) {
-    case CAPACITY:
-    case CHARSET:
-    case NOTATION:
-    case SYNTAX:
-      error = &ParserMessages::fpiIllegalDisplayVersion;
-      return 0;
-    default:
-      break;
-    }
-    haveDisplayVersion_ = 1;
-    displayVersion_.assign(fieldStart, fieldLength);
-  }
-  else
-    haveDisplayVersion_ = 0;
-  if (next != 0) {
-    error = &ParserMessages::fpiExtraField;
-    return 0;
-  }
-  formal_ = 1;
-  return 1;
-}
-
-Boolean PublicId::nextField(Char solidus,
-				  const Char *&next,
-				  const Char *lim,
-				  const Char *&fieldStart,
-				  size_t &fieldLength)
-
-{
-  if (next == 0)
-    return 0;
-  fieldStart = next;
-  for (; next < lim; next++) {
-    if (next[0] == solidus && next + 1 < lim && next[1] == solidus) {
-      fieldLength = next - fieldStart;
-      next += 2;
-      return 1;
-    }
-  }
-  fieldLength = lim - fieldStart;
-  next = 0;
-  return 1;
-}
-
-const char *const PublicId::textClasses[] = {
-  "CAPACITY",
-  "CHARSET",
-  "DOCUMENT",
-  "DTD",
-  "ELEMENTS",
-  "ENTITIES",
-  "LPD",
-  "NONSGML",
-  "NOTATION",
-  "SD",
-  "SHORTREF",
-  "SUBDOC",
-  "SYNTAX",
-  "TEXT",
-};
-
-Boolean PublicId::lookupTextClass(const StringC &str,
-					const CharsetInfo &charset,
-					TextClass &textClass)
-{
-  for (size_t i = 0; i < SIZEOF(textClasses); i++)
-    if (str == charset.execToDesc(textClasses[i])) {
-      textClass = TextClass(i);
-      return 1;
-    }
-  return 0;
-}
-
-Boolean PublicId::getOwnerType(OwnerType &result) const
-{
-  if (!formal_)
-    return 0;
-  result = ownerType_;
-  return 1;
-}
-
-Boolean PublicId::getOwner(StringC &result) const
-{
-  if (!formal_)
-    return 0;
-  result = owner_;
-  return 1;
-}
-
-Boolean PublicId::getTextClass(TextClass &result) const
-{
-  if (!formal_)
-    return 0;
-  result = textClass_;
-  return 1;
-}
-
-Boolean PublicId::getUnavailable(Boolean &result) const
-{
-  if (!formal_)
-    return 0;
-  result = unavailable_;
-  return 1;
-}
-
-Boolean PublicId::getDescription(StringC &result) const
-{
-  if (!formal_)
-    return 0;
-  result = description_;
-  return 1;
-}
-
-Boolean PublicId::getLanguage(StringC &result) const
-{
-  if (!formal_ || textClass_ == CHARSET)
-    return 0;
-  result = languageOrDesignatingSequence_;
-  return 1;
-}
-
-Boolean PublicId::getDesignatingSequence(StringC &result) const
-{
-  if (!formal_ || textClass_ != CHARSET)
-    return 0;
-  result = languageOrDesignatingSequence_;
-  return 1;
-}
-
-Boolean PublicId::getDisplayVersion(StringC &result) const
-{
-  if (!formal_)
-    return 0;
-  if (haveDisplayVersion_)
-    result = displayVersion_;
-  return 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Fixed2CodingSystem.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-// This uses a big endian byte order irrespective of host byte order.
-// Nothing special is done with FEFF/FFFE.
-
-#include "splib.h"
-
-#ifdef SP_MULTI_BYTE
-
-#include "Fixed2CodingSystem.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Fixed2Decoder : public Decoder {
-public:
-  Fixed2Decoder();
-  size_t decode(Char *to, const char *from, size_t fromLen,
-		const char **rest);
-  Boolean convertOffset(unsigned long &offset) const;
-};
-
-class Fixed2Encoder : public Encoder {
-public:
-  Fixed2Encoder();
-  ~Fixed2Encoder();
-  void output(Char *, size_t, OutputByteStream *);
-  void output(const Char *, size_t, OutputByteStream *);
-private:
-  void allocBuf(size_t);
-  char *buf_;
-  size_t bufSize_;
-};
-
-Decoder *Fixed2CodingSystem::makeDecoder() const
-{
-  return new Fixed2Decoder;
-}
-
-Encoder *Fixed2CodingSystem::makeEncoder() const
-{
-  return new Fixed2Encoder;
-}
-
-unsigned Fixed2CodingSystem::fixedBytesPerChar() const
-{
-  return 2;
-}
-
-Fixed2Decoder::Fixed2Decoder()
-: Decoder(2)
-{
-}
-
-size_t Fixed2Decoder::decode(Char *to, const char *from, size_t fromLen,
-			   const char **rest)
-{
-#ifdef SP_BIG_ENDIAN
-  if (sizeof(Char) == 2 && from == (char *)to) {
-    *rest = from + (fromLen & ~1);
-    return fromLen/2;
-  }
-#endif
-  fromLen &= ~1;
-  *rest = from + fromLen;
-  for (size_t n = fromLen; n > 0; n -= 2) {
-    *to++ = ((unsigned char)from[0] << 8) + (unsigned char)from[1];
-    from += 2;
-  }
-  return fromLen/2;
-}
-
-Boolean Fixed2Decoder::convertOffset(unsigned long &n) const
-{
-  n *= 2;
-  return true;
-}
-
-Fixed2Encoder::Fixed2Encoder()
-: buf_(0), bufSize_(0)
-{
-}
-
-Fixed2Encoder::~Fixed2Encoder()
-{
-  delete [] buf_;
-}
-
-void Fixed2Encoder::allocBuf(size_t n)
-{
-  if (bufSize_ < n) {
-    delete [] buf_;
-    buf_ = new char[bufSize_ = n];
-  }
-}
-
-void Fixed2Encoder::output(Char *s, size_t n, OutputByteStream *sb)
-{
-#ifdef SP_BIG_ENDIAN
-  if (sizeof(Char) == 2) {
-    sb->sputn((char *)s, n*2);
-    return;
-  }
-#endif
-  ASSERT(sizeof(Char) >= 2);
-  char *p = (char *)s;
-  for (size_t i = 0; i < n; i++) {
-    Char c = s[i];
-    *p++ = (c >> 8) & 0xff;
-    *p++ = c & 0xff;
-  }
-  sb->sputn((char *)s, n*2);
-}
-
-void Fixed2Encoder::output(const Char *s, size_t n, OutputByteStream *sb)
-{
-#ifdef SP_BIG_ENDIAN
-  if (sizeof(Char) == 2) {
-    sb->sputn((char *)s, n*2);
-    return;
-  }
-#endif
-  allocBuf(n*2);
-  for (size_t i = 0; i < n; i++) {
-    buf_[i*2] = (s[i] >> 8) & 0xff;
-    buf_[i*2 + 1] = s[i] & 0xff;
-  }
-  sb->sputn(buf_, n*2);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#else /* not SP_MULTI_BYTE */
-
-#ifndef __GNUG__
-static char non_empty_translation_unit;	// sigh
-#endif
-
-#endif /* not SP_MULTI_BYTE */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/GenericEventHandler.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,807 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "GenericEventHandler.h"
-#include "macros.h"
-#include "ExtendEntityManager.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SpOpenEntity : public SGMLApplication::OpenEntity {
-public:
-  SpOpenEntity(const ConstPtr<Origin> &origin);
-  SGMLApplication::Location location(SGMLApplication::Position) const;
-private:
-  ConstPtr<Origin> origin_;
-  StorageObjectLocation soLoc_;
-};
-
-inline
-void GenericEventHandler::freeAll()
-{
-  if (allocBlocks_)
-    freeAll1();
-}
-
-inline
-void GenericEventHandler::clearNotation(SGMLApplication::Notation &to)
-{
-  clearString(to.name);
-}
-
-inline
-void GenericEventHandler::setLocation(SGMLApplication::Position &pos,
-				  const Location &loc)
-{
-  if (lastOrigin_ != loc.origin())
-    setLocation1(pos, loc);
-  else
-    pos = loc.index();
-}
-
-GenericEventHandler::GenericEventHandler(SGMLApplication &app,
-					 bool generalEntities)
-: app_(&app), generalEntities_(generalEntities),
-  freeBlocks_(0), allocBlocks_(0), firstBlockSpare_(0), firstBlockUsed_(0)
-{
-}
-
-GenericEventHandler::~GenericEventHandler()
-{
-  freeAll();
-  while (freeBlocks_) {
-    Block *tem = freeBlocks_;
-    freeBlocks_ = freeBlocks_->next;
-    delete [] tem->mem;
-    delete tem;
-  }
-}
-
-void GenericEventHandler::freeAll1()
-{
-  Block **p;
-  for (p = &allocBlocks_; *p; p = &(*p)->next)
-    ;
-  *p = freeBlocks_;
-  freeBlocks_ = allocBlocks_;
-  allocBlocks_ = 0;
-  if (freeBlocks_)
-    firstBlockSpare_ = freeBlocks_->size;
-  else
-    firstBlockSpare_ = 0;
-  firstBlockUsed_ = 0;
-}
-
-void *GenericEventHandler::allocate(size_t n)
-{
-  if (n == 0)
-    return 0;
-  // round up to avoid alignment problems
-  n = (n + sizeof(char *) - 1) & ~(sizeof(char *) - 1);
-  enum { BIG = 1024 };
-  if (n > firstBlockSpare_) {
-    if (freeBlocks_ && firstBlockUsed_) {
-      Block *tem = freeBlocks_;
-      freeBlocks_ = freeBlocks_->next;
-      tem->next = allocBlocks_;
-      allocBlocks_ = tem;
-    }
-    if (!freeBlocks_ || freeBlocks_->size < n) {
-      Block *tem = new Block;
-      tem->size = n < BIG ? int(BIG) : n;
-      tem->mem = new char[tem->size];
-      tem->next = freeBlocks_;
-      freeBlocks_ = tem;
-    }
-    firstBlockUsed_ = 0;
-    firstBlockSpare_ = freeBlocks_->size;
-  }
-  char *tem = freeBlocks_->mem + firstBlockUsed_;
-  firstBlockUsed_ += n;
-  firstBlockSpare_ -= n;
-  return tem;
-}
-
-void GenericEventHandler::startElement(StartElementEvent *event)
-{
-  SGMLApplication::StartElementEvent appEvent;
-  setString(appEvent.gi, event->name());
-  const ElementDefinition *def = event->elementType()->definition();
-  switch (def->declaredContent()) {
-  case ElementDefinition::modelGroup:
-    appEvent.contentType
-      = (def->compiledModelGroup()->containsPcdata()
-	 ? SGMLApplication::StartElementEvent::mixed
-	 : SGMLApplication::StartElementEvent::element);
-    break;
-  case ElementDefinition::any:
-    appEvent.contentType = SGMLApplication::StartElementEvent::mixed;
-    break;
-  case ElementDefinition::cdata:
-    appEvent.contentType = SGMLApplication::StartElementEvent::cdata;
-    break;
-  case ElementDefinition::rcdata:
-    appEvent.contentType = SGMLApplication::StartElementEvent::rcdata;
-    break;
-  case ElementDefinition::empty:
-    appEvent.contentType = SGMLApplication::StartElementEvent::empty;
-    break;
-  }
-  appEvent.included = event->included();
-  appEvent.nAttributes = event->attributes().size();
-  if (appEvent.nAttributes != 0) {
-    if (event->attributes().conref())
-      appEvent.contentType = SGMLApplication::StartElementEvent::empty;
-    setAttributes(appEvent.attributes, event->attributes());
-  }
-  setLocation(appEvent.pos, event->location());
-  app_->startElement(appEvent);
-  freeAll();
-  delete event;
-}
-
-void GenericEventHandler::endElement(EndElementEvent *event)
-{
-  SGMLApplication::EndElementEvent appEvent;
-  setString(appEvent.gi, event->name());
-  setLocation(appEvent.pos, event->location());
-  app_->endElement(appEvent);
-  delete event;
-}
-
-void GenericEventHandler::data(DataEvent *event)
-{
-  SGMLApplication::DataEvent appEvent;
-  appEvent.data.ptr = event->data();
-  appEvent.data.len = event->dataLength();
-  setLocation(appEvent.pos, event->location());
-  app_->data(appEvent);
-  delete event;
-}
-
-void GenericEventHandler::pi(PiEvent *event)
-{
-  SGMLApplication::PiEvent appEvent;
-  appEvent.data.ptr = event->data();
-  appEvent.data.len = event->dataLength();
-  const Entity *entity = event->entity();
-  if (entity)
-    setString(appEvent.entityName, entity->name());
-  else
-    appEvent.entityName.len = 0;
-  setLocation(appEvent.pos, event->location());
-  app_->pi(appEvent);
-  delete event;
-}
-
-void GenericEventHandler::sdataEntity(SdataEntityEvent *event)
-{
-  SGMLApplication::SdataEvent appEvent;
-  appEvent.text.ptr = event->data();
-  appEvent.text.len = event->dataLength();
-  setString(appEvent.entityName, event->entity()->name());
-  // Don't want location of chars in entity.
-  setLocation(appEvent.pos, event->location().origin()->parent());
-  app_->sdata(appEvent);
-  delete event;
-}
-
-void GenericEventHandler::externalDataEntity(ExternalDataEntityEvent *event)
-{
-  SGMLApplication::ExternalDataEntityRefEvent appEvent;
-  setEntity(appEvent.entity, *event->entity());
-  setLocation(appEvent.pos, event->location());
-  app_->externalDataEntityRef(appEvent);
-  freeAll();
-  delete event;
-}
-
-void GenericEventHandler::subdocEntity(SubdocEntityEvent *event)
-{
-  SGMLApplication::SubdocEntityRefEvent appEvent;
-  setEntity(appEvent.entity, *event->entity());
-  setLocation(appEvent.pos, event->location());
-  app_->subdocEntityRef(appEvent);
-  freeAll();
-  delete event;
-}
-
-void GenericEventHandler::nonSgmlChar(NonSgmlCharEvent *event)
-{
-  SGMLApplication::NonSgmlCharEvent appEvent;
-  appEvent.c = event->character();
-  setLocation(appEvent.pos, event->location());
-  app_->nonSgmlChar(appEvent);
-  delete event;
-}
-
-void GenericEventHandler::startDtd(StartDtdEvent *event)
-{
-  SGMLApplication::StartDtdEvent appEvent;
-  setString(appEvent.name, event->name());
-  const Entity *entity = event->entity().pointer();
-  if (entity) {
-    appEvent.haveExternalId = 1;
-    setExternalId(appEvent.externalId,
-		  entity->asExternalEntity()->externalId());
-  }
-  else
-    appEvent.haveExternalId = 0;
-  setLocation(appEvent.pos, event->location());
-  app_->startDtd(appEvent);
-  freeAll();
-  delete event;
-}
-
-void GenericEventHandler::endDtd(EndDtdEvent *event)
-{
-  SGMLApplication::EndDtdEvent appEvent;
-  setString(appEvent.name, event->dtd().name());
-  setLocation(appEvent.pos, event->location());
-  app_->endDtd(appEvent);
-  delete event;
-}
-
-void GenericEventHandler::endProlog(EndPrologEvent *event)
-{
-  if (generalEntities_) {
-    SGMLApplication::GeneralEntityEvent entityEvent;
-    const Dtd &dtd = event->dtd();
-    Dtd::ConstEntityIter iter(dtd.generalEntityIter());
-    for (;;) {
-      const Entity *entity = iter.nextTemp();
-      if (!entity)
-	break;
-      setEntity(entityEvent.entity, *entity);
-      app_->generalEntity(entityEvent);
-    }
-    freeAll();
-  }
-  SGMLApplication::EndPrologEvent appEvent;
-  setLocation(appEvent.pos, event->location());
-  app_->endProlog(appEvent);
-  delete event;
-}
-
-void GenericEventHandler::entityDefaulted(EntityDefaultedEvent *event)
-{
-  if (generalEntities_) {
-    SGMLApplication::GeneralEntityEvent appEvent;
-    setEntity(appEvent.entity, event->entity());
-    app_->generalEntity(appEvent);
-  }
-  delete event;
-}
-
-void GenericEventHandler::appinfo(AppinfoEvent *event)
-{
-  SGMLApplication::AppinfoEvent appEvent;
-  const StringC *str;
-  if (event->literal(str)) {
-    setString(appEvent.string, *str);
-    appEvent.none = 0;
-  }
-  else
-    appEvent.none = 1;
-  setLocation(appEvent.pos, event->location());
-  app_->appinfo(appEvent);
-  delete event;
-}
-
-void GenericEventHandler::commentDecl(CommentDeclEvent *event)
-{
-  SGMLApplication::CommentDeclEvent appEvent;
-  appEvent.nComments = 0;
-  {
-    for (MarkupIter iter(event->markup()); iter.valid(); iter.advance())
-      if (iter.type() == Markup::comment)
-	appEvent.nComments++;
-  }
-  SGMLApplication::CharString *comments
-    = (SGMLApplication::CharString *)allocate(appEvent.nComments * 2
-					      * sizeof(SGMLApplication::CharString));
-  appEvent.comments = comments;
-  appEvent.seps = appEvent.comments + appEvent.nComments;
-  size_t i = 0;
-  for (MarkupIter iter(event->markup()); iter.valid(); iter.advance())
-    switch (iter.type()) {
-    case Markup::comment:
-      comments[i].ptr = iter.charsPointer();
-      comments[i].len = iter.charsLength();
-      clearString(comments[appEvent.nComments + i]);
-      i++;
-      break;
-    case Markup::s:
-      comments[appEvent.nComments + i - 1].ptr = iter.charsPointer();
-      comments[appEvent.nComments + i - 1].len = iter.charsLength();
-      break;
-    default:
-      break;
-    }
-  setLocation(appEvent.pos, event->location());
-  app_->commentDecl(appEvent);
-  freeAll();
-  delete event;
-}
-
-void GenericEventHandler::markedSectionStart(MarkedSectionStartEvent *event)
-{
-  SGMLApplication::MarkedSectionStartEvent appEvent;
-  unsigned depth = 0;
-  appEvent.nParams = 0;
-  {
-    for (MarkupIter iter(event->markup()); iter.valid(); iter.advance())
-      switch (iter.type()) {
-      case Markup::reservedName:
-	if (!depth)
-	  appEvent.nParams++;
-	break;
-      case Markup::entityStart:
-	if (!depth)
-	  appEvent.nParams++;
-	depth++;
-	break;
-      case Markup::entityEnd:
-	depth--;
-	break;
-      default:
-	break;
-      }
-  }
-  SGMLApplication::MarkedSectionStartEvent::Param *params
-    = (SGMLApplication::MarkedSectionStartEvent::Param *)
-      allocate(appEvent.nParams * sizeof(appEvent.params[0]));
-  appEvent.params = params;
-  size_t i = 0;
-  for (MarkupIter iter(event->markup()); iter.valid(); iter.advance())
-    switch (iter.type()) {
-    case Markup::reservedName:
-      if (!depth) {
-	switch (iter.reservedName()) {
-	case Syntax::rTEMP:
-	  params[i].type
-	    = SGMLApplication::MarkedSectionStartEvent::Param::temp;
-	  break;
-	case Syntax::rINCLUDE:
-	  params[i].type
-	    = SGMLApplication::MarkedSectionStartEvent::Param::include;
-	  break;
-	case Syntax::rRCDATA:
-	  params[i].type
-	    = SGMLApplication::MarkedSectionStartEvent::Param::rcdata;
-	  break;
-	case Syntax::rCDATA:
-	  params[i].type
-	    = SGMLApplication::MarkedSectionStartEvent::Param::cdata;
-	  break;
-	case Syntax::rIGNORE:
-	  params[i].type
-	    = SGMLApplication::MarkedSectionStartEvent::Param::ignore;
-	  break;
-	default:
-	  CANNOT_HAPPEN();
-	}
-	clearString(params[i].entityName);
-	i++;
-      }
-      break;
-    case Markup::entityStart:
-      if (!depth) {
-	params[i].type
-	  = SGMLApplication::MarkedSectionStartEvent::Param::entityRef;
-	setString(params[i].entityName,
-		  iter.entityOrigin()->entity()->name());
-	i++;
-      }
-      depth++;
-      break;
-    case Markup::entityEnd:
-      depth--;
-      break;
-    default:
-      break;
-    }
-  switch (event->status()) {
-  case MarkedSectionEvent::include:
-    appEvent.status = SGMLApplication::MarkedSectionStartEvent::include;
-    break;
-  case MarkedSectionEvent::rcdata:
-    appEvent.status = SGMLApplication::MarkedSectionStartEvent::rcdata;
-    break;
-  case MarkedSectionEvent::cdata:
-    appEvent.status = SGMLApplication::MarkedSectionStartEvent::cdata;
-    break;
-  case MarkedSectionEvent::ignore:
-    appEvent.status = SGMLApplication::MarkedSectionStartEvent::ignore;
-    break;
-  }
-  setLocation(appEvent.pos, event->location());
-  app_->markedSectionStart(appEvent);
-  freeAll();
-  delete event;
-}
-
-void GenericEventHandler::ignoredChars(IgnoredCharsEvent *event)
-{
-  SGMLApplication::IgnoredCharsEvent appEvent;
-  appEvent.data.ptr = event->data();
-  appEvent.data.len = event->dataLength();
-  setLocation(appEvent.pos, event->location());
-  app_->ignoredChars(appEvent);
-  delete event;
-}
-
-void GenericEventHandler::markedSectionEnd(MarkedSectionEndEvent *event)
-{
-  SGMLApplication::MarkedSectionEndEvent appEvent;
-  switch (event->status()) {
-  case MarkedSectionEvent::include:
-    appEvent.status = SGMLApplication::MarkedSectionEndEvent::include;
-    break;
-  case MarkedSectionEvent::rcdata:
-    appEvent.status = SGMLApplication::MarkedSectionEndEvent::rcdata;
-    break;
-  case MarkedSectionEvent::cdata:
-    appEvent.status = SGMLApplication::MarkedSectionEndEvent::cdata;
-    break;
-  case MarkedSectionEvent::ignore:
-    appEvent.status = SGMLApplication::MarkedSectionEndEvent::ignore;
-    break;
-  }
-  setLocation(appEvent.pos, event->location());
-  app_->markedSectionEnd(appEvent);
-  delete event;
-}
-
-void GenericEventHandler::message(MessageEvent *event)
-{
-  SGMLApplication::ErrorEvent appEvent;
-  switch (event->message().type->severity()) {
-  case MessageType::quantityError:
-    appEvent.type = SGMLApplication::ErrorEvent::quantity;
-    break;
-  case MessageType::idrefError:
-    appEvent.type = SGMLApplication::ErrorEvent::idref;
-    break;
-  case MessageType::error:
-    appEvent.type = SGMLApplication::ErrorEvent::otherError;
-    break;
-  case MessageType::info:
-    appEvent.type = SGMLApplication::ErrorEvent::info;
-    break;
-  case MessageType::warning:
-    appEvent.type = SGMLApplication::ErrorEvent::warning;
-    break;
-  }
-  setLocation(appEvent.pos, event->message().loc);
-  StringC str;
-  reportMessage(event->message(), str);
-  setString(appEvent.message, str);
-  app_->error(appEvent);
-  ErrorCountEventHandler::message(event);
-}
-
-void GenericEventHandler::setLocation1(SGMLApplication::Position &pos,
-				   const Location &loc)
-{
-  const Location *locp = &loc;
-  for (;;) {
-    if (locp->origin().isNull()) {
-      lastOrigin_.clear();
-      openEntityPtr_ = (SpOpenEntity *)0;
-      return;
-    }
-    const InputSourceOrigin *origin = locp->origin()->asInputSourceOrigin();
-    if (origin && origin->externalInfo())
-      break;
-    locp = &locp->origin()->parent();
-  }
-  lastOrigin_ = locp->origin();
-  pos = locp->index();
-  openEntityPtr_ = new SpOpenEntity(locp->origin());
-  app_->openEntityChange(openEntityPtr_);
-}
-
-void 
-GenericEventHandler::setAttributes(const SGMLApplication::Attribute *&attributes,
-			       const AttributeList &attributeList)
-{
-  size_t nAttributes = attributeList.size();
-  SGMLApplication::Attribute *to
-    = (SGMLApplication::Attribute *)allocate(nAttributes * sizeof(*to));
-  attributes = to;
-  for (size_t i = 0; i < nAttributes; i++) {
-    SGMLApplication::Attribute *p = to + i;
-    setString(p->name, attributeList.name(i));
-    const AttributeValue *value = attributeList.value(i);
-    if (!value)
-      p->type = SGMLApplication::Attribute::invalid;
-    else {
-      const Text *text;
-      const StringC *string;
-      switch (value->info(text, string)) {
-      case AttributeValue::implied:
-	p->type = SGMLApplication::Attribute::implied;
-	break;
-      case AttributeValue::tokenized:
-	{
-	  if (attributeList.specified(i))
-	    p->defaulted = SGMLApplication::Attribute::specified;
-	  else if (attributeList.current(i))
-	    p->defaulted = SGMLApplication::Attribute::current;
-	  else
-	    p->defaulted = SGMLApplication::Attribute::definition;
-	  p->type = SGMLApplication::Attribute::tokenized;
-	  p->nEntities = 0;
-	  p->notation.name.len = 0;
-	  p->isId = attributeList.id(i);
-	  p->isGroup = (attributeList.getAllowedTokens(i) != 0);
-	  setString(p->tokens, *string);
-	  const AttributeSemantics *semantics = attributeList.semantics(i);
-	  if (semantics) {
-	    ConstPtr<Notation> notation = semantics->notation();
-	    if (!notation.isNull())
-	      setNotation(p->notation, *notation);
-	    else {
-	      size_t nEntities = semantics->nEntities();
-	      if (nEntities) {
-		SGMLApplication::Entity *v
-		  = (SGMLApplication::Entity *)allocate(nEntities * sizeof(*v));
-		p->entities = v;
-		p->nEntities = nEntities;
-		for (size_t i = 0; i < nEntities; i++)
-		  setEntity(v[i], *semantics->entity(i));
-	      }
-	    }
-	  }
-	}
-	break;
-      case AttributeValue::cdata:
-	{
-	  p->type = SGMLApplication::Attribute::cdata;
-	  if (attributeList.specified(i))
-	    p->defaulted = SGMLApplication::Attribute::specified;
-	  else if (attributeList.current(i))
-	    p->defaulted = SGMLApplication::Attribute::current;
-	  else
-	    p->defaulted = SGMLApplication::Attribute::definition;
-	  TextItem::Type type;
-	  const Char *s;
-	  size_t length;
-	  const Location *loc;
-	  size_t nChunks = 0;
-	  {
-	    TextIter iter(*text);
-	    while (iter.next(type, s, length, loc))
-	      switch (type) {
-	      case TextItem::data:
-	      case TextItem::sdata:
-	      case TextItem::cdata:
-	      case TextItem::nonSgml:
-		nChunks++;
-		break;
-	      default:
-		break;
-	      }
-	  }
-	  p->cdataChunks
-	    = (SGMLApplication::Attribute::CdataChunk *)allocate(nChunks * sizeof(SGMLApplication::Attribute::CdataChunk));
-	  p->nCdataChunks = nChunks;
-
-	  {
-	    size_t i = 0;
-	    for (TextIter iter(*text); iter.next(type, s, length, loc);) {
-	      switch (type) {
-	      case TextItem::data:
-	      case TextItem::sdata:
-	      case TextItem::cdata:
-		{
-		  SGMLApplication::Attribute::CdataChunk *chunk
-		    = (SGMLApplication::Attribute::CdataChunk *)(p->cdataChunks + i++);
-		  if (type != TextItem::sdata) {
-		    chunk->isSdata = 0;
-		    chunk->isNonSgml = 0;
-		  }
-		  else {
-		    chunk->isSdata = 1;
-		    setString(chunk->entityName,
-			      *loc->origin()->asInputSourceOrigin()->entityName());
-		  }
-		  chunk->data.ptr = s;
-		  chunk->data.len = length;
-		}
-		break;
-	      case TextItem::nonSgml:
-		{
-		  SGMLApplication::Attribute::CdataChunk *chunk
-		    = (SGMLApplication::Attribute::CdataChunk *)(p->cdataChunks + i++);
-		  chunk->isSdata = 0;
-		  chunk->isNonSgml = 1;
-		  chunk->nonSgmlChar = *s;
-		  chunk->data.len = 0;
-		  chunk->data.ptr = 0;
-		}
-		break;
-	      default:
-		break;
-	      }
-	    }
-	  }
-	}
-	break;
-      }
-    }
-  }
-}
-
-
-void GenericEventHandler::setEntity(SGMLApplication::Entity &to,
-				const Entity &from)
-{
-  setString(to.name, from.name());
-  switch (from.declType()) {
-  case Entity::generalEntity:
-    to.declType = SGMLApplication::Entity::general;
-    break;
-  case Entity::parameterEntity:
-    to.declType = SGMLApplication::Entity::parameter;
-    break;
-  case Entity::doctype:
-    to.declType = SGMLApplication::Entity::doctype;
-    break;
-  case Entity::linktype:
-    to.declType = SGMLApplication::Entity::linktype;
-    break;
-  default:
-    CANNOT_HAPPEN();
-  }
-  switch (from.dataType()) {
-  case Entity::sgmlText:
-    to.dataType = SGMLApplication::Entity::sgml;
-    break;
-  case Entity::cdata:
-    to.dataType = SGMLApplication::Entity::cdata;
-    break;
-  case Entity::sdata:
-    to.dataType = SGMLApplication::Entity::sdata;
-    break;
-  case Entity::ndata:
-    to.dataType = SGMLApplication::Entity::ndata;
-    break;
-  case Entity::subdoc:
-    to.dataType = SGMLApplication::Entity::subdoc;
-    break;
-  case Entity::pi:
-    to.dataType = SGMLApplication::Entity::pi;
-    break;
-  }
-  const InternalEntity *internal = from.asInternalEntity();
-  if (internal) {
-    to.isInternal = 1;
-    setString(to.text, internal->string());
-  }
-  else {
-    const ExternalEntity *external = from.asExternalEntity();
-    to.isInternal = 0;
-    setExternalId(to.externalId, external->externalId());
-    const ExternalDataEntity *externalData = from.asExternalDataEntity();
-    if (externalData) {
-      setNotation(to.notation, *externalData->notation());
-      to.nAttributes = externalData->attributes().size();
-      if (to.nAttributes)
-	setAttributes(to.attributes, externalData->attributes());
-    }
-    else {
-      to.notation.name.len = 0;
-      to.nAttributes = 0;
-    }
-  }
-}
-
-
-void GenericEventHandler::setNotation(SGMLApplication::Notation &to,
-				      const Notation &from)
-{
-  setString(to.name, from.name());
-  setExternalId(to.externalId, from.externalId());
-}
-
-void GenericEventHandler::setExternalId(SGMLApplication::ExternalId &to,
-					const ExternalId &from)
-{
-  const StringC *str;
-  str = from.systemIdString();
-  if (str) {
-    to.haveSystemId = 1;
-    setString(to.systemId, *str);
-  }
-  else
-    to.haveSystemId = 0;
-  str = from.publicIdString();
-  if (str) {
-    to.havePublicId = 1;
-    setString(to.publicId, *str);
-  }
-  else
-    to.havePublicId = 0;
-  str = &from.effectiveSystemId();
-  if (str->size()) {
-    to.haveGeneratedSystemId = 1;
-    setString(to.generatedSystemId, *str);
-  }
-  else
-    to.haveGeneratedSystemId = 0;
-}
-
-MsgGenericEventHandler::MsgGenericEventHandler(SGMLApplication &app, 
-					       bool generalEntities,
-					       MessageReporter &reporter,
-					       const bool *messagesInhibitedPtr)
-: GenericEventHandler(app, generalEntities),
-  reporter_(&reporter),
-  messagesInhibitedPtr_(messagesInhibitedPtr)
-{
-}
-
-void MsgGenericEventHandler::reportMessage(const Message &msg, StringC &str)
-{
-  WrapReporter wrap(reporter_);
-  reporter_->dispatchMessage(msg);
-  wrap.strStream.extractString(str);
-  if (!*messagesInhibitedPtr_)
-    *wrap.origStream << str;
-}
-
-SpOpenEntity::SpOpenEntity(const ConstPtr<Origin> &origin)
-: origin_(origin)
-{
-}
-
-SGMLApplication::Location
-SpOpenEntity::location(SGMLApplication::Position pos) const
-{
-  SGMLApplication::Location loc;
-  const Origin *origin = origin_.pointer();
-  const InputSourceOrigin *inputSourceOrigin;
-  const ExternalInfo *externalInfo;
-  Index index = Index(pos);
-  for (;;) {
-    if (!origin)
-      return loc;
-    inputSourceOrigin = origin->asInputSourceOrigin();
-    if (inputSourceOrigin) {
-      externalInfo = inputSourceOrigin->externalInfo();
-      if (externalInfo)
-	break;
-    }
-    // Qualifier is for CodeWarrior
-    const ::SP_NAMESPACE_SCOPE Location &loc = origin->parent();
-    index = loc.index();
-    origin = loc.origin().pointer();
-  }
-  const StringC *entityName = inputSourceOrigin->entityName();
-  if (entityName)
-    GenericEventHandler::setString(loc.entityName, *entityName);
-  Offset off = inputSourceOrigin->startOffset(index);
-  loc.entityOffset = off;
-  if (!ExtendEntityManager::externalize(externalInfo, off, ((SpOpenEntity *)this)->soLoc_))
-    return loc;
-  loc.lineNumber = soLoc_.lineNumber;
-  GenericEventHandler::setString(loc.filename, soLoc_.actualStorageId);
-  loc.columnNumber = soLoc_.columnNumber;
-  loc.byteOffset = soLoc_.byteIndex;
-  loc.other = soLoc_.storageObjectSpec;
-  return loc;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Group.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Group.h"
-#include "MessageBuilder.h"
-#include "ParserMessages.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-AllowedGroupTokens::AllowedGroupTokens(GroupToken::Type t1, GroupToken::Type t2,
-				       GroupToken::Type t3, GroupToken::Type t4)
-: flags_(0)
-{
-  allow(t1);
-  allow(t2);
-  allow(t3);
-  allow(t4);
-}
-
-AllowedGroupConnectors::AllowedGroupConnectors(GroupConnector::Type c1)
-: flags_(0)
-{
-  allow(c1);
-}
-
-AllowedGroupConnectors::AllowedGroupConnectors(GroupConnector::Type c1,
-					       GroupConnector::Type c2)
-: flags_(0)
-{
-  allow(c1);
-  allow(c2);
-}
-
-AllowedGroupConnectors::AllowedGroupConnectors(GroupConnector::Type c1,
-					       GroupConnector::Type c2,
-					       GroupConnector::Type c3)
-: flags_(0)
-{
-  allow(c1);
-  allow(c2);
-  allow(c3);
-}
-
-AllowedGroupConnectors::AllowedGroupConnectors(GroupConnector::Type c1,
-					       GroupConnector::Type c2,
-					       GroupConnector::Type c3,
-					       GroupConnector::Type c4)
-: flags_(0)
-{
-  allow(c1);
-  allow(c2);
-  allow(c3);
-  allow(c4);
-}
-
-
-AllowedGroupConnectorsMessageArg::AllowedGroupConnectorsMessageArg(
-  const AllowedGroupConnectors &allow,
-  const ConstPtr<Syntax> &syntax)
-: allow_(allow),
-  syntax_(syntax)
-{
-}
-
-MessageArg *AllowedGroupConnectorsMessageArg::copy() const
-{
-  return new AllowedGroupConnectorsMessageArg(*this);
-}
-
-void AllowedGroupConnectorsMessageArg::append(MessageBuilder &builder) const
-{
-  static GroupConnector::Type types[] = {
-    GroupConnector::andGC, GroupConnector::orGC, GroupConnector::seqGC,
-    GroupConnector::grpcGC, GroupConnector::dtgcGC
-    };
-  static Syntax::DelimGeneral delims[] = {
-    Syntax::dAND, Syntax::dOR, Syntax::dSEQ,
-    Syntax::dGRPC, Syntax::dDTGC
-    };
-  Boolean first = 1;
-  for (size_t i = 0; i < SIZEOF(types); i++)
-    if (allow_.groupConnector(types[i])) {
-      if (!first)
-	builder.appendFragment(ParserMessages::listSep);
-      else
-	first = 0;
-      const StringC &delim = syntax_->delimGeneral(delims[i]);
-      builder.appendFragment(ParserMessages::delimStart);
-      builder.appendChars(delim.data(), delim.size());
-      builder.appendFragment(ParserMessages::delimEnd);
-    }
-}
-
-AllowedGroupTokensMessageArg::AllowedGroupTokensMessageArg(
-  const AllowedGroupTokens &allow,
-  const ConstPtr<Syntax> &syntax)
-: allow_(allow),
-  syntax_(syntax)
-{
-}
-
-MessageArg *AllowedGroupTokensMessageArg::copy() const
-{
-  return new AllowedGroupTokensMessageArg(*this);
-}
-
-void AllowedGroupTokensMessageArg::append(MessageBuilder &builder) const
-{
-  const MessageFragment *fragment[4];
-  int nFragments = 0;
-  if (allow_.groupToken(GroupToken::dataTagLiteral))
-    fragment[nFragments++] = &ParserMessages::parameterLiteral;
-  if (allow_.groupToken(GroupToken::dataTagGroup))
-    fragment[nFragments++] = &ParserMessages::dataTagGroup;
-  switch (allow_.group()) {
-  case GroupToken::modelGroup:
-    fragment[nFragments++] = &ParserMessages::modelGroup;
-    break;
-  case GroupToken::dataTagTemplateGroup:
-    fragment[nFragments++] = &ParserMessages::dataTagTemplateGroup;
-    break;
-  default:
-    break;
-  }
-  switch (allow_.nameStart()) {
-  case GroupToken::name:
-    fragment[nFragments++] = &ParserMessages::name;
-    break;
-  case GroupToken::nameToken:
-    fragment[nFragments++] = &ParserMessages::nameToken;
-    break;
-  case GroupToken::elementToken:
-    fragment[nFragments++] = &ParserMessages::elementToken;
-    break;
-  default:
-    break;
-  }
-  Boolean first = 1;
-  for (int i = 0; i < nFragments; i++) {
-    if (!first)
-      builder.appendFragment(ParserMessages::listSep);
-    else
-      first = 0;
-    builder.appendFragment(*fragment[i]);
-  }
-  if (allow_.groupToken(GroupToken::pcdata)) {
-    if (!first)
-      builder.appendFragment(ParserMessages::listSep);
-    StringC pcdata(syntax_->delimGeneral(Syntax::dRNI));
-    pcdata += syntax_->reservedName(Syntax::rPCDATA);
-    builder.appendChars(pcdata.data(), pcdata.size());
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Group.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Group_INCLUDED
-#define Group_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Boolean.h"
-#include "ContentToken.h"
-#include "StringC.h"
-#include "MessageArg.h"
-#include "Owner.h"
-#include "Syntax.h"
-#include "Text.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class GroupToken {
-public:
-  GroupToken() { }
-  enum Type {
-    invalid,
-    nameToken,
-    name,
-    dataTagLiteral,		// data tag (padding) template
-    dataTagGroup,
-    elementToken,
-    modelGroup,
-    pcdata,
-    dataTagTemplateGroup
-    };
-  Type type;
-  StringC token;		// name nameToken; with substitution
-  Owner<ModelGroup> model;
-  Owner<ContentToken> contentToken; // elementToken pcdata dataTagGroup
-  Text text;
-  Vector<Text> textVector;
-private:
-  GroupToken(const GroupToken &); // undefined
-  void operator=(const GroupToken &); // undefined
-};
-
-class AllowedGroupTokens {
-public:
-  AllowedGroupTokens(GroupToken::Type,
-		     GroupToken::Type = GroupToken::invalid,
-		     GroupToken::Type = GroupToken::invalid,
-		     GroupToken::Type = GroupToken::invalid);
-  Boolean groupToken(GroupToken::Type) const;
-  // modelGroup, dataTagTemplateGroup
-  GroupToken::Type group() const;
-  GroupToken::Type nameStart() const;
-private:
-  void allow(GroupToken::Type);
-  unsigned flags_;
-};
-
-struct GroupConnector {
-  enum Type {
-    andGC,
-    orGC,
-    seqGC,
-    grpcGC,
-    dtgcGC
-  };
-  Type type;
-};
-
-class AllowedGroupConnectors {
-public:
-  AllowedGroupConnectors(GroupConnector::Type);
-  AllowedGroupConnectors(GroupConnector::Type, GroupConnector::Type);
-  AllowedGroupConnectors(GroupConnector::Type, GroupConnector::Type,
-			 GroupConnector::Type);
-  AllowedGroupConnectors(GroupConnector::Type, GroupConnector::Type,
-			 GroupConnector::Type, GroupConnector::Type);
-  Boolean groupConnector(GroupConnector::Type) const;
-private:
-  void allow(GroupConnector::Type);
-  unsigned flags_;
-};
-
-class AllowedGroupTokensMessageArg : public MessageArg {
-public:
-  AllowedGroupTokensMessageArg(const AllowedGroupTokens &allow,
-			       const ConstPtr<Syntax> &syntax);
-  MessageArg *copy() const;
-  void append(MessageBuilder &) const;
-private:
-  AllowedGroupTokens allow_;
-  ConstPtr<Syntax> syntax_;
-};
-
-class AllowedGroupConnectorsMessageArg : public MessageArg {
-public:
-  AllowedGroupConnectorsMessageArg(const AllowedGroupConnectors &allow,
-				   const ConstPtr<Syntax> &syntax);
-  MessageArg *copy() const;
-  void append(MessageBuilder &) const;
-private:
-  AllowedGroupConnectors allow_;
-  ConstPtr<Syntax> syntax_;
-};
-
-inline
-Boolean AllowedGroupTokens::groupToken(GroupToken::Type i) const
-{
-  return ((1 << i) & flags_) != 0;
-}
-
-inline
-GroupToken::Type AllowedGroupTokens::group() const
-{
-  if (groupToken(GroupToken::modelGroup))
-    return GroupToken::modelGroup;
-  else if (groupToken(GroupToken::dataTagTemplateGroup))
-    return GroupToken::dataTagTemplateGroup;
-  else
-    return GroupToken::invalid;
-}
-
-inline
-GroupToken::Type AllowedGroupTokens::nameStart() const
-{
-  if (groupToken(GroupToken::elementToken))
-    return GroupToken::elementToken;
-  else if (groupToken(GroupToken::nameToken))
-    return GroupToken::nameToken;
-  else if (groupToken(GroupToken::name))
-    return GroupToken::name;
-  else
-    return GroupToken::invalid;
-}
-
-inline
-void AllowedGroupTokens::allow(GroupToken::Type t)
-{
-  flags_ |= (1 << t);
-}
-
-
-inline
-Boolean AllowedGroupConnectors::groupConnector(GroupConnector::Type c) const
-{
-  return (flags_ & (1 << c)) != 0;
-}
-
-inline
-void AllowedGroupConnectors::allow(GroupConnector::Type c)
-{
-  flags_ |= (1 << c);
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Group_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Hash.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Hash.h"
-#include "StringC.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-unsigned long Hash::hash(const StringC &str)
-{
-  const Char *p = str.data();
-  unsigned long h = 0;
-  for (size_t n = str.size(); n > 0; n--)
-    h = (h << 5) + h + *p++;	// from Chris Torek
-  return h;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/IListBase.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "IListBase.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-void IListBase::append(Link *p)
-{
-  Link **pp;
-  for (pp = &head_; *pp; pp = &(*pp)->next_)
-    ;
-  *pp = p;
-}
-
-void IListBase::remove(Link *p)
-{
-  for (Link **pp = &head_; *pp; pp = &(*pp)->next_)
-    if (*pp == p) {
-      *pp = p->next_;
-      break;
-    }
-}
-
-void IListBase::clear()
-{
-  while (!empty())
-    delete get();
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Id.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "Id.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Id::Id(const StringC &name)
-: Named(name)
-{
-}
-
-void Id::define(const Location &loc)
-{
-  defLocation_ = loc;
-  // release memory for pendingRefs_
-  Vector<Location> tem;
-  pendingRefs_.swap(tem);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Id.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Id_INCLUDED
-#define Id_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Named.h"
-#include "Location.h"
-#include "Vector.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Id : public Named {
-public:
-  Id(const StringC &);
-  void define(const Location &);
-  void addPendingRef(const Location &);
-  Boolean defined() const;
-  const Location &defLocation() const;
-  const Vector<Location> &pendingRefs() const;
-private:
-  Location defLocation_;
-  Vector<Location> pendingRefs_;
-};
-
-inline
-Boolean Id::defined() const
-{
-  return !defLocation_.origin().isNull();
-}
-
-inline
-const Location &Id::defLocation() const
-{
-  return defLocation_;
-}
-
-inline
-const Vector<Location> &Id::pendingRefs() const
-{
-  return pendingRefs_;
-}
-
-inline
-void Id::addPendingRef(const Location &loc)
-{
-  pendingRefs_.push_back(loc);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Id_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/IdentityCodingSystem.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "IdentityCodingSystem.h"
-#include <limits.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class IdentityDecoder : public Decoder {
-public:
-  size_t decode(Char *to, const char *from, size_t fromLen,
-		const char **rest);
-  Boolean convertOffset(unsigned long &offset) const;
-};
-
-class IdentityEncoder : public RecoveringEncoder {
-public:
-  IdentityEncoder();
-  void output(const Char *, size_t, OutputByteStream *);
-  void output(Char *tmp_char, size_t tmp_size_t, OutputByteStream *tmp_obs) { 
-	output((const Char *)tmp_char, (size_t) tmp_size_t, (OutputByteStream *)tmp_obs);
-  }
-};
-
-IdentityCodingSystem::IdentityCodingSystem()
-{
-}
-
-Decoder *IdentityCodingSystem::makeDecoder() const
-{
-  return new IdentityDecoder;
-}
-
-Encoder *IdentityCodingSystem::makeEncoder() const
-{
-  return new IdentityEncoder;
-}
-
-Boolean IdentityCodingSystem::isIdentity() const
-{
-  return 1;
-}
-
-size_t IdentityDecoder::decode(Char *to, const char *from, size_t fromLen,
-			       const char **rest)
-{
-  if (sizeof(Char) == sizeof(char) && from == (char *)to) {
-    *rest = from + fromLen;
-    return fromLen;
-  }
-  for (size_t n = fromLen; n > 0; n--)
-    *to++ = (unsigned char)*from++; // zero extend
-  *rest = from;
-  return fromLen;
-}
-
-Boolean IdentityDecoder::convertOffset(unsigned long &) const
-{
-  return true;
-}
-
-IdentityEncoder::IdentityEncoder()
-{
-}
-
-void IdentityEncoder::output(const Char *s, size_t n, OutputByteStream *sb)
-{
-  if (sizeof(Char) != sizeof(char)) {
-    for (size_t i = 0; i < n; i++) {
-      Char c = s[i];
-      if (c > UCHAR_MAX)
-	handleUnencodable(c, sb);
-      else
-	sb->sputc((unsigned char)c);
-    }
-  }
-  else
-    sb->sputn((const char *)s, n);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/InputSource.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "InputSource.h"
-#include "MarkupScan.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-InputSource::InputSource(InputSourceOrigin *origin, const Char *start,
-			 const Char *end)
-: origin_(origin), start_(start), end_(end), cur_(start), accessError_(0),
-  startLocation_(origin, 0), multicode_(0), scanSuppress_(0)
-{
-}
-
-void InputSource::reset(const Char *start,
-			const Char *end)
-{
-  origin_ = origin_->copy();
-  start_ = start;
-  end_ = end;
-  cur_ = start_;
-  startLocation_ = Location(origin_.pointer(), 0);
-  multicode_ = 0;
-  scanSuppress_ = 0;
-  markupScanTable_.clear();
-}
-
-InputSource::~InputSource()
-{
-}
-
-void InputSource::advanceStartMulticode(const Char *to)
-{
-  while (start_ < to) {
-    switch (markupScanTable_[*start_]) {
-    case MarkupScan::normal:
-      break;
-    case MarkupScan::in:
-      scanSuppress_ = 0;
-      break;
-    case MarkupScan::out:
-      if (!scanSuppress()) {
-	scanSuppress_ = 1;
-	scanSuppressSingle_ = 0;
-      }
-      break;
-    case MarkupScan::suppress:
-      // what's the effect of MSSCHAR followed by MSSCHAR
-      if (!scanSuppress()) {
-	scanSuppress_ = 1;
-	scanSuppressSingle_ = 1;
-	scanSuppressIndex_ = startLocation_.index() + 1;
-      }
-      break;
-    }
-    start_++;
-    startLocation_ += 1;
-  }
-}
-
-void InputSource::willNotRewind()
-{
-}
-
-void InputSource::setDocCharset(const CharsetInfo &,
-				const CharsetInfo &)
-{
-}
-
-void InputSource::willNotSetDocCharset()
-{
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/InternalInputSource.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include <string.h>
-#include "InternalInputSource.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-InternalInputSource::InternalInputSource(const StringC &str,
-					 InputSourceOrigin *origin)
-: InputSource(origin, str.data(), str.data() + str.size()), buf_(0),
-  contents_(&str)
-{
-}
-
-InternalInputSource::~InternalInputSource()
-{
-  if (buf_)
-    delete [] buf_;
-}
-  
-Xchar InternalInputSource::fill(Messenger &)
-{
-  return eE;
-}
-
-void InternalInputSource::pushCharRef(Char c, const NamedCharRef &ref)
-{
-  ASSERT(cur() == start());
-  noteCharRef(startIndex() + (cur() - start()), ref);
-  if (buf_ == 0) {
-    buf_ = new Char[end() - start() + 1];
-    memcpy(buf_ + 1, cur(), (end() - start())*sizeof(Char));
-    changeBuffer(buf_ + 1, cur());
-  }
-  moveLeft();
-  *(Char *)cur() = c;
-}
-
-Boolean InternalInputSource::rewind(Messenger &)
-{
-  reset(contents_->data(),
-	contents_->data() + contents_->size());
-  if (buf_) {
-    delete [] buf_;
-    buf_ = 0;
-  }
-  return 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Link.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "Link.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Link::~Link()
-{
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/LinkProcess.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "LinkProcess.h"
-// ParserState is used for access to parser messages
-#include "ParserState.h"
-#include "MessageArg.h"
-#include "ParserMessages.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-LinkProcess::LinkProcess()
-{
-}
-
-void LinkProcess::init(const ConstPtr<ComplexLpd> &lpd)
-{
-  lpd_ = lpd;
-  open_.clear();
-  open_.insert(new LinkProcessOpenElement(lpd_->initialLinkSet()));
-}
-
-Boolean LinkProcess::startElement(const ElementType *element,
-				  const AttributeList &attributes,
-				  const Location &location,
-				  Messenger &mgr,
-				  const AttributeList *&linkAttributes,
-				  const ResultElementSpec *&resultElementSpec)
-{
-  if (lpd_.isNull()) {
-    linkAttributes = 0;
-    resultElementSpec = 0;
-    return 1;
-  }
-  const StringC *id = attributes.getId();
-  if (id) {
-    const IdLinkRuleGroup *p = lpd_->lookupIdLink(*id);
-    if (p) {
-      size_t selected;
-      if (p->nLinkRules() > 1) {
-	linkAttributes_.resize(p->nLinkRules());
-	for (size_t i = 0; i < linkAttributes_.size(); i++)
-	  linkAttributes_[i] = &p->linkRule(i).attributes();
-	if (!selectLinkRule(linkAttributes_,
-			    location,
-			    selected))
-	  return 0;
-      }
-      else
-	selected = 0;
-      const IdLinkRule &rule = p->linkRule(selected);
-      open_.insert(new LinkProcessOpenElement(open_.head()->current,
-					      rule));
-      linkAttributes = &rule.attributes();
-      resultElementSpec = &rule.resultElementSpec();
-      if (!rule.isAssociatedWith(element)) {
-	mgr.setNextLocation(location);
-	mgr.message(ParserMessages::idlinkElementType,
-		    StringMessageArg(element->name()),
-		    StringMessageArg(*id));
-      }
-      return 1;
-    }
-  }
-  const LinkSet *currentLinkSet = open_.head()->current;
-  size_t nRules = currentLinkSet->nLinkRules(element);
-  if (nRules > 0) {
-    size_t selected;
-    if (nRules > 1) {
-      linkAttributes_.resize(nRules);
-      for (size_t i = 0; i < nRules; i++)
-	linkAttributes_[i]
-	  = &currentLinkSet->linkRule(element, i).attributes();
-      if (!selectLinkRule(linkAttributes_,
-			  location,
-			  selected))
-	return 0;
-    }
-    else
-      selected = 0;
-    const SourceLinkRule &rule = currentLinkSet->linkRule(element, selected);
-    open_.insert(new LinkProcessOpenElement(open_.head()->current,
-					    rule));
-    linkAttributes = &rule.attributes();
-    resultElementSpec = &rule.resultElementSpec();
-    return 1;
-  }
-  // FIXME construct attributes from attribute definition list
-  linkAttributes = 0;
-  resultElementSpec = 0;
-  open_.insert(new LinkProcessOpenElement(open_.head()->current));
-  return 1;
-}
-
-
-void LinkProcess::endElement()
-{
-  if (lpd_.isNull())
-    return;
-  LinkProcessOpenElement *top = open_.get();
-  if (top->post)
-    open_.head()->current = top->post;
-  else if (top->postRestore)
-    open_.head()->current = open_.head()->restore;
-  delete top;
-}
-
-void LinkProcess::uselink(const LinkSet *linkSet,
-			  Boolean restore,
-			  const Lpd *lpd)
-{
-  if (lpd_.isNull())
-    return;
-  if (lpd != lpd_.pointer())
-    return;
-  if (restore)
-    open_.head()->current = open_.head()->restore;
-  else if (linkSet)
-    open_.head()->current = linkSet;
-}
-
-size_t LinkProcess::nImpliedLinkRules() const
-{
-  if (!open_.head())
-    return 0;
-  return open_.head()->current->nImpliedLinkRules();
-}
-
-const ResultElementSpec &LinkProcess::impliedLinkRule(size_t i) const
-{
-  return open_.head()->current->impliedLinkRule(i);
-}
-
-// Usually redefined by application.
-
-Boolean LinkProcess::selectLinkRule(const Vector<const AttributeList *> &,
-				    const Location &,
-				    size_t &selected)
-{
-  selected = 0;
-  return 1;
-}
-
-void LinkProcess::clear()
-{
-  open_.clear();
-  lpd_.clear();
-  linkAttributes_.clear();
-}
-
-void LinkProcess::swap(LinkProcess &to)
-{
-  open_.swap(to.open_);
-  lpd_.swap(to.lpd_);
-  linkAttributes_.swap(to.linkAttributes_);
-}
-
-LinkProcessOpenElement::LinkProcessOpenElement(const LinkSet *cur,
-					       const SourceLinkRule &rule)
-{
-  current = rule.uselink();
-  if (!current)
-    current = cur;
-  restore = cur;
-  post = rule.postlink();
-  postRestore = rule.postlinkRestore();
-}
-
-LinkProcessOpenElement::LinkProcessOpenElement(const LinkSet *cur)
-{
-  restore = current = cur;
-  post = 0;
-  postRestore = 0;
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/LiteralStorage.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "LiteralStorage.h"
-#include "CodingSystem.h"
-#include <string.h>
-
-#ifdef DECLARE_MEMMOVE
-extern "C" {
-  void *memmove(void *, const void *, size_t);
-}
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class LiteralStorageObject : public StorageObject {
-public:
-  LiteralStorageObject(const StringC &);
-  Boolean read(char *buf, size_t bufSize, Messenger &, size_t &nread);
-  Boolean rewind(Messenger &);
-private:
-  LiteralStorageObject(const LiteralStorageObject &);	// undefined
-  void operator=(const LiteralStorageObject &); // undefined
-
-  StringC str_;
-  size_t nBytesRead_;
-};
-
-class MemoryInputCodingSystem : public InputCodingSystem {
-public:
-  Decoder *makeDecoder() const;
-};
-
-class MemoryDecoder : public Decoder {
-public:
-  MemoryDecoder();
-  size_t decode(Char *, const char *, size_t, const char **);
-};
-
-LiteralStorageManager::LiteralStorageManager(const char *type)
-: type_(type)
-{
-}
-
-StorageObject *LiteralStorageManager::makeStorageObject(const StringC &id,
-							const StringC &,
-							Boolean,
-							Boolean,
-							Messenger &,
-							StringC &foundId)
-{
-  foundId = id;
-  return new LiteralStorageObject(id);
-}
-
-const InputCodingSystem *LiteralStorageManager::requiredCodingSystem() const
-{
-  static MemoryInputCodingSystem cs;
-  return &cs;
-}
-
-Boolean LiteralStorageManager::requiresCr() const
-{
-  return 1;
-}
-
-const char *LiteralStorageManager::type() const
-{
-  return type_;
-}
-
-Boolean LiteralStorageManager::inheritable() const
-{
-  return 0;
-}
-
-LiteralStorageObject::LiteralStorageObject(const StringC &str)
-: str_(str), nBytesRead_(0)
-{
-}
-
-Boolean LiteralStorageObject::rewind(Messenger &)
-{
-  nBytesRead_ = 0;
-  return 1;
-}
-
-Boolean LiteralStorageObject::read(char *buf, size_t bufSize,
-				   Messenger &, size_t &nread)
-{
-  if (nBytesRead_ >= str_.size()*sizeof(Char))
-    return 0;
-  nread = str_.size()*sizeof(Char) - nBytesRead_;
-  if (nread > bufSize)
-    nread = bufSize;
-  memcpy(buf, (char *)str_.data() + nBytesRead_, nread);
-  nBytesRead_ += nread;
-  return 1;
-}
-
-Decoder *MemoryInputCodingSystem::makeDecoder() const
-{
-  return new MemoryDecoder;
-}
-
-MemoryDecoder::MemoryDecoder()
-: Decoder(sizeof(Char))
-{
-}
-
-size_t MemoryDecoder::decode(Char *to, const char *from, size_t fromLen,
-			     const char **rest)
-{
-  size_t nChars = fromLen/sizeof(Char);
-  *rest = from + nChars*sizeof(Char);
-  if (from != (char *)to)
-    memmove(to, from, nChars*sizeof(Char));
-  return nChars;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Location.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,557 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Location.h"
-#include "Entity.h"
-#include "Mutex.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class InputSourceOriginImpl : public EntityOrigin {
-public:
-  InputSourceOriginImpl();
-  InputSourceOriginImpl(const Location &refLocation);
-  const Location &parent() const;
-  const ExternalInfo *externalInfo() const;
-  Offset startOffset(Index ind) const;
-  void noteCharRef(Index replacementIndex, const NamedCharRef &);
-  Boolean isNamedCharRef(Index ind, NamedCharRef &ref) const;
-  void setExternalInfo(ExternalInfo *);
-  virtual InputSourceOrigin *copy() const;
-  const InputSourceOrigin *asInputSourceOrigin() const;
-private:
-  InputSourceOriginImpl(const InputSourceOriginImpl &); // undefined
-  void operator=(const InputSourceOriginImpl &);	// undefined
-  size_t nPrecedingCharRefs(Index ind) const;
-  Vector<InputSourceOriginNamedCharRef> charRefs_;
-  StringC charRefOrigNames_;
-  Owner<ExternalInfo> externalInfo_; // 0 for internal entities
-  Location refLocation_;	// where referenced from
-  Mutex mutex_;
-};
-
-class EntityOriginImpl : public InputSourceOriginImpl {
-public:
-  void *operator new(size_t sz, Allocator &alloc) {
-    return alloc.alloc(sz);
-  }
-  void *operator new(size_t sz) {
-    return Allocator::allocSimple(sz);
-  }
-  void operator delete(void *p) {
-    Allocator::free(p);
-  }
-  EntityOriginImpl(const ConstPtr<Entity> &);
-  EntityOriginImpl(const ConstPtr<Entity> &,
-		   const Location &refLocation);
-  EntityOriginImpl(const ConstPtr<Entity> &,
-		   const Location &refLocation, Index refLength,
-		   Owner<Markup> &markup);
-  ~EntityOriginImpl();
-  InputSourceOrigin *copy() const;
-  const Entity *entity() const { return entity_.pointer(); }
-  const EntityDecl *entityDecl() const;
-  const EntityOrigin *asEntityOrigin() const;
-  Boolean defLocation(Offset off, const Origin *&, Index &) const;
-  Index refLength() const;
-  const Markup *markup() const;
-private:
-  EntityOriginImpl(const EntityOriginImpl &); // undefined
-  void operator=(const EntityOriginImpl &);	// undefined
-  ConstPtr<Entity> entity_;	// 0 for document entity
-  // total length of reference
-  // (characters that were replaced by the entity)
-  Index refLength_;
-  Owner<Markup> markup_;
-};
-
-const size_t EntityOrigin::allocSize = sizeof(EntityOriginImpl);
-
-Location::Location()
-{
-}
-
-Location::Location(Origin *origin, Index i)
-: origin_(origin), index_(i)
-{
-}
-
-Location::Location(ConstPtr<Origin> origin, Index i)
-: origin_(origin), index_(i)
-{
-}
-
-Origin::~Origin()
-{
-}
-
-const EntityOrigin *Origin::asEntityOrigin() const
-{
-  return 0;
-}
-
-const InputSourceOrigin *Origin::asInputSourceOrigin() const
-{
-  return 0;
-}
-
-Index Origin::refLength() const
-{
-  return 0;
-}
-
-Boolean Origin::origChars(const Char *&) const
-{
-  return 0;
-}
-
-Boolean Origin::inBracketedTextOpenDelim() const
-{
-  return 0;
-}
-
-Boolean Origin::inBracketedTextCloseDelim() const
-{
-  return 0;
-}
-
-Boolean Origin::isNumericCharRef(const Markup *&) const
-{
-  return 0;
-}
-
-Boolean Origin::isNamedCharRef(Index, NamedCharRef &) const
-{
-  return 0;
-}
-
-const EntityDecl *Origin::entityDecl() const
-{
-  return 0;
-}
-
-const Markup *Origin::markup() const
-{
-  return 0;
-}
-  
-const Entity *Origin::entity() const
-{
-  return 0;
-}
-
-Boolean Origin::defLocation(Offset, const Origin *&, Index &) const
-{
-  return 0;
-}
-
-const ExternalInfo *Origin::externalInfo() const
-{
-  return 0;
-}
-
-Offset Origin::startOffset(Index ind) const
-{
-  return ind;
-}
-
-const StringC *Origin::entityName() const
-{
-  const EntityDecl *ent = entityDecl();
-  if (ent)
-    return &ent->name();
-  else
-    return 0;
-}
-
-BracketOrigin::BracketOrigin(const Location &loc, Position pos)
-: loc_(loc), pos_(pos)
-{
-}
-
-const Location &BracketOrigin::parent() const
-{
-  return loc_;
-}
-
-Boolean BracketOrigin::inBracketedTextOpenDelim() const
-{
-  return pos_ == open;
-}
-
-Boolean BracketOrigin::inBracketedTextCloseDelim() const
-{
-  return pos_ == close;
-}
-
-InputSourceOrigin *InputSourceOrigin::make()
-{
-  return new InputSourceOriginImpl;
-}
-
-InputSourceOrigin *InputSourceOrigin::make(const Location &refLocation)
-{
-  return new InputSourceOriginImpl(refLocation);
-}
-
-InputSourceOriginImpl::InputSourceOriginImpl()
-{
-}
-
-InputSourceOriginImpl::InputSourceOriginImpl(const Location &refLocation)
-: refLocation_(refLocation)
-{
-}
-
-const InputSourceOrigin *InputSourceOriginImpl::asInputSourceOrigin() const
-{
-  return this;
-}
-
-const ExternalInfo *InputSourceOriginImpl::externalInfo() const
-{
-  return externalInfo_.pointer();
-}
-
-InputSourceOrigin *InputSourceOriginImpl::copy() const
-{
-  return new InputSourceOriginImpl(refLocation_);
-}
-
-const Location &InputSourceOriginImpl::parent() const
-{
-  return refLocation_;
-}
-
-void InputSourceOriginImpl::setExternalInfo(ExternalInfo *info)
-{
-  externalInfo_ = info;
-}
-
-void InputSourceOriginImpl::noteCharRef(Index replacementIndex,
-					const NamedCharRef &ref)
-{
-  Mutex::Lock lock(&mutex_);
-  charRefs_.resize(charRefs_.size() + 1);
-  charRefs_.back().replacementIndex = replacementIndex;
-  charRefs_.back().refStartIndex = ref.refStartIndex();
-  charRefs_.back().refEndType = ref.refEndType();
-  charRefs_.back().origNameOffset = charRefOrigNames_.size();
-  charRefOrigNames_ += ref.origName();
-}
-
-// Number of character references whose replacement index < ind.
-
-size_t InputSourceOriginImpl::nPrecedingCharRefs(Index ind) const
-{
-  size_t i;
-  // Find i such that
-  // charRefs_[I].replacementIndex >= ind
-  // charRefs_[i - 1].replacementIndex < ind
-  if (charRefs_.size() == 0
-      || ind > charRefs_.back().replacementIndex)
-    // This will be a common case, so optimize it.
-    i = charRefs_.size();
-  else {
-    // Binary search
-    // Invariant:
-    // charRefs_ < i have replacementIndex < ind
-    // charRefs_ >= lim have replacementIndex >= ind
-    i = 0;
-    size_t lim = charRefs_.size();
-    while (i < lim) {
-      size_t mid = i + (lim - i)/2;
-      if (charRefs_[mid].replacementIndex >= ind)
-	lim = mid;
-      else
-	i = mid + 1;
-    }
-  }
-  return i;
-}
-
-Offset InputSourceOriginImpl::startOffset(Index ind) const
-{
-  Mutex::Lock lock(&((InputSourceOriginImpl *)this)->mutex_);
-  size_t n = nPrecedingCharRefs(ind);
-  if (n < charRefs_.size()
-      && ind == charRefs_[n].replacementIndex) {
-    for (;;) {
-      ind = charRefs_[n].refStartIndex;
-      if (n == 0 || charRefs_[n - 1].replacementIndex != ind)
-	break;
-      --n;
-    }
-  }
-  // charRefs[n - 1].replacementIndex < ind
-  return Offset(ind - n);
-}
-
-Boolean InputSourceOriginImpl::isNamedCharRef(Index ind, NamedCharRef &ref) const
-{
-  Mutex::Lock lock(&((InputSourceOriginImpl *)this)->mutex_);
-  size_t n = nPrecedingCharRefs(ind);
-  if (n < charRefs_.size() && ind == charRefs_[n].replacementIndex) {
-    ref.set(charRefs_[n].refStartIndex,
-	    charRefs_[n].refEndType,
-	    charRefOrigNames_.data() + charRefs_[n].origNameOffset,
-	    (n + 1 < charRefs_.size()
-	     ? charRefs_[n + 1].origNameOffset
-	     : charRefOrigNames_.size())
-	    - charRefs_[n].origNameOffset);
-    return 1;
-  }
-  return 0;
-}
-
-EntityOrigin *EntityOrigin::make(Allocator &alloc,
-				 const ConstPtr<Entity> &entity)
-{
-  return new (alloc) EntityOriginImpl(entity);
-}
-
-EntityOrigin *EntityOrigin::make(Allocator &alloc,
-				 const ConstPtr<Entity> &entity,
-				 const Location &refLocation)
-{
-  return new (alloc) EntityOriginImpl(entity, refLocation);
-}
-
-EntityOrigin *EntityOrigin::make(Allocator &alloc,
-				 const ConstPtr<Entity> &entity,
-				 const Location &refLocation,
-				 Index refLength,
-				 Owner<Markup> &markup)
-{
-  return new (alloc) EntityOriginImpl(entity, refLocation, refLength, markup);
-}
-
-EntityOrigin *EntityOrigin::make(const ConstPtr<Entity> &entity,
-				 const Location &refLocation,
-				 Index refLength,
-				 Owner<Markup> &markup)
-{
-  return new EntityOriginImpl(entity, refLocation, refLength, markup);
-}
-
-EntityOrigin *EntityOrigin::make(const ConstPtr<Entity> &entity,
-				 const Location &refLocation)
-{
-  return new EntityOriginImpl(entity, refLocation);
-}
-
-EntityOriginImpl::EntityOriginImpl(const ConstPtr<Entity> &entity)
-: refLength_(0), entity_(entity)
-{
-}
-
-EntityOriginImpl::EntityOriginImpl(const ConstPtr<Entity> &entity,
-				   const Location &refLocation)
-: InputSourceOriginImpl(refLocation), refLength_(0), entity_(entity)
-{
-}
-
-EntityOriginImpl::EntityOriginImpl(const ConstPtr<Entity> &entity,
-				   const Location &refLocation,
-				   Index refLength,
-				   Owner<Markup> &markup)
-: InputSourceOriginImpl(refLocation), refLength_(refLength), entity_(entity)
-{
-  markup.swap(markup_);
-}
-
-EntityOriginImpl::~EntityOriginImpl()
-{
-}
-
-InputSourceOrigin *EntityOriginImpl::copy() const
-{
-  Owner<Markup> m;
-  if (markup_)
-    m = new Markup(*markup_);
-  return new EntityOriginImpl(entity_, parent(), refLength_, m);
-}
-
-Index EntityOriginImpl::refLength() const
-{
-  return refLength_;
-}
-
-const EntityOrigin *EntityOriginImpl::asEntityOrigin() const
-{
-  return this;
-}
-
-Boolean EntityOriginImpl::defLocation(Offset off, const Origin *&origin, Index &index) const
-{
-  if (entity_.isNull())
-    return 0;
-  const InternalEntity *internal = entity_->asInternalEntity();
-  if (!internal)
-    return 0;
-  return internal->text().charLocation(off, origin, index);
-}
-
-const EntityDecl *EntityOriginImpl::entityDecl() const
-{
-  return entity_.pointer();
-}
-
-const Markup *EntityOriginImpl::markup() const
-{
-  return markup_.pointer();
-}
-
-
-ReplacementOrigin::ReplacementOrigin(const Location &loc, Char origChar)
-: loc_(loc), origChar_(origChar)
-{
-}
-
-const Location &ReplacementOrigin::parent() const
-{
-  return loc_;
-}
-
-Boolean ReplacementOrigin::origChars(const Char *&s) const
-{
-  if (loc_.origin().isNull() || !loc_.origin()->origChars(s))
-    s = &origChar_;
-  return 1;
-}
-
-MultiReplacementOrigin::MultiReplacementOrigin(const Location &loc,
-					       StringC &origChars)
-: loc_(loc)
-{
-  origChars.swap(origChars_);
-}
-
-const Location &MultiReplacementOrigin::parent() const
-{
-  return loc_;
-}
-
-Boolean MultiReplacementOrigin::origChars(const Char *&s) const
-{
-  if (loc_.origin().isNull() || !loc_.origin()->origChars(s))
-    s = origChars_.data();
-  return 1;
-}
-
-ProxyOrigin::ProxyOrigin(const Origin *origin)
-: origin_(origin)
-{
-}
- 
-const EntityOrigin *ProxyOrigin::asEntityOrigin() const
-{
-  return origin_->asEntityOrigin();
-}
-
-const InputSourceOrigin *ProxyOrigin::asInputSourceOrigin() const
-{
-  return origin_->asInputSourceOrigin();
-}
-
-const Location &ProxyOrigin::parent() const
-{
-  return origin_->parent();
-}
-
-Index ProxyOrigin::refLength() const
-{
-  return origin_->refLength();
-}
-
-Boolean ProxyOrigin::origChars(const Char *&p) const
-{
-  return origin_->origChars(p);
-}
-
-Boolean ProxyOrigin::inBracketedTextOpenDelim() const
-{
-  return origin_->inBracketedTextOpenDelim();
-}
-
-Boolean ProxyOrigin::inBracketedTextCloseDelim() const
-{
-  return origin_->inBracketedTextCloseDelim();
-}
-
-Boolean ProxyOrigin::isNumericCharRef(const Markup *&markup) const
-{
-  return origin_->isNumericCharRef(markup);
-}
-
-Boolean ProxyOrigin::isNamedCharRef(Index ind, NamedCharRef &ref) const
-{
-  return origin_->isNamedCharRef(ind, ref);
-}
-
-const EntityDecl *ProxyOrigin::entityDecl() const
-{
-  return origin_->entityDecl();
-}
-
-Boolean ProxyOrigin::defLocation(Offset off, const Origin *&origin, Index &index) const
-{
-  return origin_->defLocation(off, origin, index);
-}
-
-const Markup *ProxyOrigin::markup() const
-{
-  return origin_->markup();
-}
-
-const Entity *ProxyOrigin::entity() const
-{
-  return origin_->entity();
-}
-
-const ExternalInfo *ProxyOrigin::externalInfo() const
-{
-  return origin_->externalInfo();
-}
-
-Offset ProxyOrigin::startOffset(Index ind) const
-{
-  return origin_->startOffset(ind);
-}
-
-ExternalInfo::~ExternalInfo()
-{
-}
-
-RTTI_DEF0(ExternalInfo)
-
-NamedCharRef::NamedCharRef()
-{
-}
-
-NamedCharRef::NamedCharRef(Index refStartIndex, RefEndType refEndType,
-			   const StringC &origName)
-: refStartIndex_(refStartIndex),
-  refEndType_(refEndType),
-  origName_(origName)
-{
-}
-
-void NamedCharRef::set(Index refStartIndex, RefEndType refEndType,
-		       const Char *s, size_t n)
-{
-  refStartIndex_ = refStartIndex;
-  refEndType_ = refEndType;
-  origName_.assign(s, n);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Lpd.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Lpd.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Lpd::Lpd(const StringC &name, Type type, const Location &location,
-	 const Ptr<Dtd> &sourceDtd)
-: name_(new StringResource<Char>(name)), type_(type), location_(location),
-  active_(0), sourceDtd_(sourceDtd)
-{
-}
-
-Lpd::~Lpd()
-{
-}
-
-SimpleLpd::SimpleLpd(const StringC &name, const Location &location,
-		     const Ptr<Dtd> &sourceDtd)
-: Lpd(name, simpleLink, location, sourceDtd)
-{
-}
-
-ResultElementSpec::ResultElementSpec()
-: elementType(0)
-{
-}
-
-void ResultElementSpec::swap(ResultElementSpec &to)
-{
-  attributeList.swap(to.attributeList);
-  {
-    const ElementType *tem = to.elementType;
-    to.elementType = elementType;
-    elementType = tem;
-  }
-}
-
-SourceLinkRule::SourceLinkRule()
-: uselink_(0), postlink_(0), postlinkRestore_(0)
-{
-}
-
-void SourceLinkRule::swap(SourceLinkRule &to)
-{
-  linkAttributes_.swap(to.linkAttributes_);
-  resultElementSpec_.swap(to.resultElementSpec_);
-  {
-    const LinkSet *tem = to.uselink_;
-    to.uselink_ = uselink_;
-    uselink_ = tem;
-  }
-  {
-    const LinkSet *tem = to.postlink_;
-    to.postlink_ = postlink_;
-    postlink_ = tem;
-  }
-  {
-    Boolean tem = to.postlinkRestore_;
-    to.postlinkRestore_ = postlinkRestore_;
-    postlinkRestore_ = tem;
-  }
-}
-
-SourceLinkRuleResource::SourceLinkRuleResource()
-{
-}
-
-LinkSet::LinkSet(const StringC &name, const Dtd *dtd)
-: Named(name), defined_(0), linkRules_(dtd ? dtd->nElementTypeIndex() : 0)
-{
-}
-
-void LinkSet::addLinkRule(const ElementType *element,
-			  const ConstPtr<SourceLinkRuleResource> &rule)
-{
-  linkRules_[element->index()].push_back(rule);
-}
-
-void LinkSet::addImplied(const ElementType *element, AttributeList &attributes)
-{
-  impliedSourceLinkRules_.resize(impliedSourceLinkRules_.size() + 1);
-  ResultElementSpec &result = impliedSourceLinkRules_.back();
-  result.elementType = element;
-  result.attributeList = attributes;
-}
-
-Boolean LinkSet::impliedResultAttributes(const ElementType *resultType,
-					 const AttributeList *&attributes)
-{
-  for (size_t i = 0; i < impliedSourceLinkRules_.size(); i++)
-    if (impliedSourceLinkRules_[i].elementType == resultType) {
-      attributes = &impliedSourceLinkRules_[i].attributeList;
-      return 1;
-    }
-  return 0;
-}
-
-size_t LinkSet::nLinkRules(const ElementType *e) const
-{
-  if (e->index() >= linkRules_.size())
-    return 0;
-  return linkRules_[e->index()].size();
-}
-
-IdLinkRule::IdLinkRule()
-{
-}
-
-Boolean IdLinkRule::isAssociatedWith(const ElementType *e) const
-{
-  for (size_t i = 0; i < assocElementTypes_.size(); i++)
-    if (assocElementTypes_[i] == e)
-      return 1;
-  return 0;
-}
-
-void IdLinkRule::setAssocElementTypes(Vector<const ElementType *> &v)
-{
-  v.swap(assocElementTypes_);
-}
-
-void IdLinkRule::swap(IdLinkRule &to)
-{
-  SourceLinkRule::swap(to);
-  assocElementTypes_.swap(to.assocElementTypes_);
-}
-
-IdLinkRuleGroup::IdLinkRuleGroup(const StringC &name)
-: Named(name)
-{
-}
-
-void IdLinkRuleGroup::addLinkRule(IdLinkRule &rule)
-{
-  linkRules_.resize(linkRules_.size() + 1);
-  rule.swap(linkRules_.back());
-}
-
-ComplexLpd::ComplexLpd(const StringC &name, Type type,
-		       const Location &location,
-		       const Syntax &syntax,
-		       const Ptr<Dtd> &sourceDtd,
-		       const Ptr<Dtd> &resultDtd)
-: Lpd(name, type, location, sourceDtd), resultDtd_(resultDtd),
-  hadIdLinkSet_(0), nAttributeDefinitionList_(0),
-  initialLinkSet_(syntax.rniReservedName(Syntax::rINITIAL),
-		  sourceDtd.pointer()),
-  emptyLinkSet_(syntax.rniReservedName(Syntax::rEMPTY),
-		sourceDtd.pointer()),
-  linkAttributeDefs_(sourceDtd.isNull() ? 0 : sourceDtd->nElementTypeIndex())
-{
-}
-
-IdLinkRuleGroup *ComplexLpd::lookupCreateIdLink(const StringC &id)
-{
-  IdLinkRuleGroup *group = idLinkTable_.lookup(id);
-  if (!group) {
-    group = new IdLinkRuleGroup(id);
-    idLinkTable_.insert(group);
-  }
-  return group;
-}
-
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/LpdEntityRef.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef LpdEntityRef_INCLUDED
-#define LpdEntityRef_INCLUDED 1
-
-#include "Entity.h"
-#include "Boolean.h"
-#include "Ptr.h"
-
-// Information about a reference to an entity that
-// used a definition in an LPD.
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct LpdEntityRef {
-  ConstPtr<Entity> entity;
-  PackedBoolean lookedAtDefault;
-  PackedBoolean foundInPass1Dtd;
-  static inline const LpdEntityRef &key(const LpdEntityRef &r) { return r; }
-  static inline unsigned long hash(const LpdEntityRef &r) {
-    return Hash::hash(r.entity->name());
-  }
-};
-
-inline
-Boolean operator==(const LpdEntityRef &r1, const LpdEntityRef &r2)
-{
-  return (r1.entity == r2.entity
-	  && r1.foundInPass1Dtd == r2.foundInPass1Dtd
-	  && r1.lookedAtDefault == r2.lookedAtDefault);
-}
-
-inline
-Boolean operator!=(const LpdEntityRef &r1, const LpdEntityRef &r2)
-{
-  return !(r1 == r2);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not LpdEntityRef_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Makefile.sub	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-LIB=sp
-INCLUDE=-I$(srcdir)/../generic
-MSGGENFLAGS=-l
-COMMON_OBJS=Allocator.o Link.o IListBase.o TypeId.o assert.o
-ENTMGR_OBJS=CharsetInfo.o EntityCatalog.o EntityDecl.o EntityManager.o \
- Hash.o InputSource.o Location.o Message.o MessageArg.o \
- UnivCharsetDesc.o entmgr_inst.o
-XENTMGR_OBJS=LiteralStorage.o URLStorage.o RewindStorageObject.o \
-  ErrnoMessageArg.o OffsetOrderedList.o DescriptorManager.o \
-  ExtendEntityManager.o PosixStorage.o StdioStorage.o NotationStorage.o \
-  StorageManager.o CodingSystem.o IdentityCodingSystem.o \
-  UTF8CodingSystem.o Fixed2CodingSystem.o UnicodeCodingSystem.o \
-  EUCJPCodingSystem.o SJISCodingSystem.o TranslateCodingSystem.o \
-  Big5CodingSystem.o XMLCodingSystem.o CodingSystemKit.o \
-  SearchResultMessageArg.o SOEntityCatalog.o OutputByteStream.o \
-  xentmgr_inst.o
-PARSER_OBJS=ContentState.o ParserState.o parser_inst.o parseSd.o Parser.o \
-  parseInstance.o parseMode.o parseAttribute.o \
-  LinkProcess.o Lpd.o parseDecl.o ShortReferenceMap.o \
-  parseParam.o parseCommon.o SgmlParser.o \
-  Entity.o Attribute.o OpenElement.o Notation.o ParserOptions.o Dtd.o \
-  Undo.o Param.o TokenMessageArg.o Group.o \
-  CharsetDecl.o CharsetRegistry.o ExternalId.o \
-  TrieBuilder.o Sd.o Syntax.o Partition.o ModeInfo.o Recognizer.o \
-  Markup.o Text.o ContentToken.o ElementType.o Event.o \
-  InternalInputSource.o OutputState.o ParserMessages.o \
-  SdText.o NumericCharRefOrigin.o Id.o StringVectorMessageArg.o
-APP_OBJS=ErrorCountEventHandler.o MessageEventHandler.o MessageFormatter.o \
-  MessageReporter.o MessageTable.o OutputCharStream.o ConsoleOutput.o \
-  CmdLineApp.o EntityApp.o ParserApp.o app_inst.o \
-  ArcEngine.o arc_inst.o
-GENERIC_OBJS=ParserEventGeneratorKit.o SGMLApplication.o EventGenerator.o \
- GenericEventHandler.o
-
-OBJS=$(COMMON_OBJS) $(ENTMGR_OBJS) $(XENTMGR_OBJS) $(PARSER_OBJS) $(APP_OBJS) \
- $(GENERIC_OBJS) $(LIBOBJS)
-
-GENSRCS=version.h entmgr_inst.cxx \
-  xentmgr_inst.cxx EntityManagerMessages.h CatalogMessages.h \
-  PosixStorageMessages.h URLStorageMessages.h StdioStorageMessages.h \
-  ParserMessages.h parser_inst.cxx app_inst.cxx \
-  ParserAppMessages.h CmdLineAppMessages.h \
-  ArcEngineMessages.h arc_inst.cxx MessageReporterMessages.h \
-  MessageFormatterMessages.h
-
-#$(srcdir)/version.h: $(srcdir)/../VERSION $(srcdir)/mkversion.pl
-#	rm -f $@
-#	$(PERL) -w $(srcdir)/mkversion.pl $(srcdir)/../VERSION >$@
-#	chmod -w $@
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Markup.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,423 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "Markup.h"
-#include "InputSource.h"
-#include "Location.h"
-#include "macros.h"
-#include "Entity.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-MarkupItem::MarkupItem()
-: type(Markup::delimiter), index(0)
-{
-}
-
-MarkupItem::~MarkupItem()
-{
-  switch (type) {
-  case Markup::entityStart:
-    delete origin;
-    break;
-  case Markup::literal:
-    delete text;
-    break;
-  case Markup::sdLiteral:
-    delete sdText;
-    break;
-  }
-}
-
-MarkupItem::MarkupItem(const MarkupItem &item)
-: type(item.type), index(item.index)
-{
-  switch (item.type) {
-  case Markup::entityStart:
-    origin = new ConstPtr<Origin>(*item.origin);
-    break;
-  case Markup::literal:
-    text = new Text(*item.text);
-    break;
-  case Markup::sdLiteral:
-    sdText = new SdText(*item.sdText);
-    break;
-  case Markup::delimiter:
-    break;
-  default:
-    nChars = item.nChars;
-    break;
-  }
-}
-
-void MarkupItem::operator=(const MarkupItem &item)
-{
-  switch (type) {
-  case Markup::entityStart:
-    if (item.type == Markup::entityStart) {
-      *origin = *item.origin;
-      return;
-    }
-    delete origin;
-    break;
-  case Markup::literal:
-    if (item.type == Markup::literal) {
-      *text = *item.text;
-      return;
-    }
-    delete text;
-    break;
-  case Markup::sdLiteral:
-    if (item.type == Markup::sdLiteral) {
-      *sdText = *item.sdText;
-      return;
-    }
-    delete sdText;
-    break;
-  }
-  type = item.type;
-  index = item.index;
-  switch (item.type) {
-  case Markup::entityStart:
-    origin = new ConstPtr<Origin>(*item.origin);
-    break;
-  case Markup::literal:
-    text = new Text(*item.text);
-    break;
-  case Markup::sdLiteral:
-    sdText = new SdText(*item.sdText);
-    break;
-  case Markup::delimiter:
-    break;
-  default:
-    nChars = item.nChars;
-    break;
-  }
-}
-
-Markup::Markup()
-{
-}
-
-void Markup::resize(size_t n)
-{
-  size_t chopChars = 0;
-  for (size_t i = n; i < items_.size(); i++)
-    switch (items_[i].type) {
-    case Markup::reservedName:
-    case Markup::sdReservedName:
-    case Markup::name:
-    case Markup::nameToken:
-    case Markup::number:
-    case Markup::attributeValue:
-    case Markup::s:
-    case Markup::comment:
-    case Markup::shortref:
-      chopChars += items_[i].nChars;
-      break;
-    }
-  items_.resize(n);
-  chars_.resize(chars_.size() - chopChars);
-}
-
-void Markup::addDelim(Syntax::DelimGeneral d)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  item.type = Markup::delimiter;
-  item.index = d;
-}
-
-void Markup::addReservedName(Syntax::ReservedName rn, const InputSource *in)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  size_t length = in->currentTokenLength();
-  item.nChars = length;
-  item.type = Markup::reservedName;
-  item.index = rn;
-  chars_.append(in->currentTokenStart(), length);
-}
-
-void Markup::addReservedName(Syntax::ReservedName rn, const StringC &str)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  item.nChars = str.size();
-  item.type = Markup::reservedName;
-  item.index = rn;
-  chars_.append(str.data(), str.size());
-}
-
-void Markup::addSdReservedName(Sd::ReservedName rn, const InputSource *in)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  size_t length = in->currentTokenLength();
-  item.nChars = length;
-  item.type = Markup::sdReservedName;
-  item.index = rn;
-  chars_.append(in->currentTokenStart(), length);
-}
-
-void Markup::addSdReservedName(Sd::ReservedName rn,
-			       const Char *str, size_t length)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  item.nChars = length;
-  item.type = Markup::sdReservedName;
-  item.index = rn;
-  chars_.append(str, length);
-}
-
-void Markup::addS(Char c)
-{
-  if (items_.size() > 0) {
-    MarkupItem &item = items_.back();
-    if (item.type == Markup::s) {
-      item.nChars += 1;
-      chars_ += c;
-      return;
-    }
-  }
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  item.type = Markup::s;
-  item.nChars = 1;
-  chars_ += c;
-}
-
-void Markup::addS(const InputSource *in)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  size_t length = in->currentTokenLength();
-  item.nChars = length;
-  item.type = Markup::s;
-  chars_.append(in->currentTokenStart(), length);
-}
-
-void Markup::addCommentStart()
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  item.type = Markup::comment;
-  item.nChars = 0;
-}
-
-void Markup::addRefEndRe()
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  item.type = Markup::refEndRe;
-}
-
-void Markup::addCommentChar(Char c)
-{
-  items_.back().nChars += 1;
-  chars_ += c;
-}
-
-void Markup::addName(const InputSource *in)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  size_t length = in->currentTokenLength();
-  item.nChars = length;
-  item.type = Markup::name;
-  chars_.append(in->currentTokenStart(), length);
-}
-
-void Markup::addName(const Char *str, size_t length)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  item.nChars = length;
-  item.type = Markup::name;
-  chars_.append(str, length);
-}
-
-void Markup::addNumber(const InputSource *in)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  size_t length = in->currentTokenLength();
-  item.nChars = length;
-  item.type = Markup::number;
-  chars_.append(in->currentTokenStart(), length);
-}
-
-void Markup::addNameToken(const InputSource *in)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  size_t length = in->currentTokenLength();
-  item.nChars = length;
-  item.type = Markup::nameToken;
-  chars_.append(in->currentTokenStart(), length);
-}
-
-void Markup::addAttributeValue(const InputSource *in)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  size_t length = in->currentTokenLength();
-  item.nChars = length;
-  item.type = Markup::attributeValue;
-  chars_.append(in->currentTokenStart(), length);
-}
-
-void Markup::addShortref(const InputSource *in)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  size_t length = in->currentTokenLength();
-  item.nChars = length;
-  item.type = Markup::shortref;
-  chars_.append(in->currentTokenStart(), length);
-}
-
-void Markup::addEntityStart(const Ptr<EntityOrigin> &origin)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  item.type = Markup::entityStart;
-  item.origin = new ConstPtr<Origin>(origin.pointer());
-}
-
-void Markup::addEntityEnd()
-{
-  items_.resize(items_.size() + 1);
-  items_.back().type = Markup::entityEnd;
-}
-
-void Markup::addLiteral(const Text &text)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  item.type = Markup::literal;
-  item.text = new Text(text);
-}
-
-void Markup::addSdLiteral(const SdText &sdText)
-{
-  items_.resize(items_.size() + 1);
-  MarkupItem &item = items_.back();
-  item.type = Markup::sdLiteral;
-  item.sdText = new SdText(sdText);
-}
-
-void Markup::changeToAttributeValue(size_t i)
-{
-  ASSERT(items_[i].type == Markup::name);
-  items_[i].type = Markup::attributeValue;
-}
-
-void Markup::changeToSdReservedName(size_t i, Sd::ReservedName rn)
-{
-  ASSERT(items_[i].type == Markup::name);
-  items_[i].type = Markup::sdReservedName;
-  items_[i].index = rn;
-}
-
-void Markup::swap(Markup &to)
-{
-  chars_.swap(to.chars_);
-  items_.swap(to.items_);
-}
-
-MarkupIter::MarkupIter(const Markup &m)
-: chars_(m.chars_.data()),
-  items_(m.items_.begin()),
-  nItems_(m.items_.size()),
-  index_(0),
-  charIndex_(0)
-{
-}
-
-void MarkupIter::advance(Location &loc,
-			 const ConstPtr<Syntax> &syntax)
-{
-  switch (items_[index_].type) {
-  case Markup::delimiter:
-    loc += syntax->delimGeneral(delimGeneral()).size();
-    break;
-  case Markup::refEndRe:
-    loc += 1;
-    break;
-  case Markup::reservedName:
-  case Markup::sdReservedName:
-  case Markup::name:
-  case Markup::nameToken:
-  case Markup::number:
-  case Markup::attributeValue:
-  case Markup::s:
-  case Markup::shortref:
-    loc += items_[index_].nChars;
-    charIndex_ += items_[index_].nChars;
-    break;
-  case Markup::comment:
-    loc += items_[index_].nChars + (2 * syntax->delimGeneral(Syntax::dCOM).size());
-    charIndex_ += items_[index_].nChars;
-    break;
-  case Markup::entityStart:
-    loc = Location(*items_[index_].origin, 0);
-    break;
-  case Markup::entityEnd:
-    {
-      ConstPtr<Origin> origin(loc.origin());
-      loc = origin->parent();
-      loc += origin->refLength();
-    }
-    break;
-  case Markup::literal:
-    {
-      const Text &text = *items_[index_].text;
-      text.endDelimLocation(loc);
-      Boolean lita;
-      text.delimType(lita);
-      loc
-	+= syntax->delimGeneral(lita ? Syntax::dLITA : Syntax::dLIT).size();
-    }
-    break;
-  case Markup::sdLiteral:
-    {
-      const SdText &text = *items_[index_].sdText;
-      loc = text.endDelimLocation();
-      loc += 1;
-    }
-    break;
-  }
-  index_++;
-}
-
-void MarkupIter::advance()
-{
-  switch (items_[index_].type) {
-  case Markup::reservedName:
-  case Markup::sdReservedName:
-  case Markup::name:
-  case Markup::nameToken:
-  case Markup::number:
-  case Markup::attributeValue:
-  case Markup::s:
-  case Markup::comment:
-  case Markup::shortref:
-    charIndex_ += items_[index_].nChars;
-    break;
-  }
-  index_++;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/MarkupScan.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef MarkupScan_INCLUDED
-#define MarkupScan_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct MarkupScan {
-  enum Type {
-    normal,
-    in,
-    out,
-    suppress
-    };
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not MarkupScan_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Message.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,318 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "Message.h"
-#include "MessageArg.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-MessageFragment::MessageFragment(unsigned module, unsigned number, const char *
-#ifndef SP_NO_MESSAGE_TEXT
-				 text
-#endif
-				 )
-: module_(module),
-#ifndef SP_NO_MESSAGE_TEXT
-  text_(text),
-#endif
-  number_(number)
-{
-}
-
-MessageType::MessageType(Severity severity, unsigned module, unsigned number,
-			 const char *text, const char *
-#ifndef SP_NO_MESSAGE_TEXT
-	     		 auxText
-#endif
-			 )
-: 
-#ifndef SP_NO_MESSAGE_TEXT
-  auxText_(auxText),
-#endif
-  MessageFragment(module, number, text)
-{
-  spare_ = severity;
-}
-     
-MessageType0::MessageType0(Severity severity, unsigned module, unsigned number,
-			   const char *text)
-: MessageType(severity, module, number, text)
-{
-}
-
-MessageType1::MessageType1(Severity severity, unsigned module, unsigned number,
-			   const char *text)
-: MessageType(severity, module, number, text)
-{
-}
-
-MessageType2::MessageType2(Severity severity, unsigned module, unsigned number,
-			   const char *text)
-: MessageType(severity, module, number, text)
-{
-}
-
-MessageType3::MessageType3(Severity severity, unsigned module, unsigned number,
-			   const char *text)
-: MessageType(severity, module, number, text)
-{
-}
-
-MessageType4::MessageType4(Severity severity, unsigned module, unsigned number,
-			   const char *text)
-: MessageType(severity, module, number, text)
-{
-}
-
-MessageType5::MessageType5(Severity severity, unsigned module, unsigned number,
-			   const char *text)
-: MessageType(severity, module, number, text)
-{
-}
-
-MessageType6::MessageType6(Severity severity, unsigned module, unsigned number,
-			   const char *text)
-: MessageType(severity, module, number, text)
-{
-}
-
-MessageType0L::MessageType0L(Severity severity, unsigned module, unsigned number,
-			     const char *text, const char *auxText)
-: MessageType(severity, module, number, text, auxText)
-{
-}
-
-MessageType1L::MessageType1L(Severity severity, unsigned module, unsigned number,
-			     const char *text, const char *auxText)
-: MessageType(severity, module, number, text, auxText)
-{
-}
-
-OpenElementInfo::OpenElementInfo()
-: included(0), matchIndex(0)
-{
-}
-
-Message::Message()
-{
-}
-
-Message::Message(int nArgs)
-: args(nArgs)
-{
-}
-
-void Message::swap(Message &to)
-{
-  const MessageType *tem = type;
-  type = to.type;
-  to.type = tem;
-  to.loc.swap(loc);
-  to.auxLoc.swap(auxLoc);
-  args.swap(to.args);
-  openElementInfo.swap(to.openElementInfo);
-}
-
-Messenger::Messenger()
-: haveNextLocation_(0)
-{
-}
-
-Messenger::~Messenger()
-{
-}
-
-void Messenger::dispatchMessage(Message &msg)
-{
-  const Message &tem = msg;
-  dispatchMessage(tem);
-}
-
-void Messenger::message(const MessageType0 &type)
-{
-  Message msg(0);
-  doInitMessage(msg);
-  msg.type = &type;
-  dispatchMessage(msg);
-}
-
-void Messenger::message(const MessageType1 &type, const MessageArg &arg0)
-{
-  Message msg(1);
-  doInitMessage(msg);
-  msg.args[0] = arg0.copy();
-  msg.type = &type;
-  dispatchMessage(msg);
-}
-
-void Messenger::message(const MessageType2 &type,
-			const MessageArg &arg0,
-			const MessageArg &arg1)
-{
-  Message msg(2);
-  doInitMessage(msg);
-  msg.args[0] = arg0.copy();
-  msg.args[1] = arg1.copy();
-  msg.type = &type;
-  dispatchMessage(msg);
-}
-
-void Messenger::message(const MessageType3 &type,
-			const MessageArg &arg0,
-			const MessageArg &arg1,
-			const MessageArg &arg2)
-{
-  Message msg(3);
-  doInitMessage(msg);
-  msg.args[0] = arg0.copy();
-  msg.args[1] = arg1.copy();
-  msg.args[2] = arg2.copy();
-  msg.type = &type;
-  dispatchMessage(msg);
-}
-
-void Messenger::message(const MessageType4 &type,
-			const MessageArg &arg0,
-			const MessageArg &arg1,
-			const MessageArg &arg2,
-			const MessageArg &arg3)
-{
-  Message msg(4);
-  doInitMessage(msg);
-  msg.args[0] = arg0.copy();
-  msg.args[1] = arg1.copy();
-  msg.args[2] = arg2.copy();
-  msg.args[3] = arg3.copy();
-  msg.type = &type;
-  dispatchMessage(msg);
-}
-
-void Messenger::message(const MessageType5 &type,
-			const MessageArg &arg0,
-			const MessageArg &arg1,
-			const MessageArg &arg2,
-			const MessageArg &arg3,
-			const MessageArg &arg4)
-{
-  Message msg(5);
-  doInitMessage(msg);
-  msg.args[0] = arg0.copy();
-  msg.args[1] = arg1.copy();
-  msg.args[2] = arg2.copy();
-  msg.args[3] = arg3.copy();
-  msg.args[4] = arg4.copy();
-  msg.type = &type;
-  dispatchMessage(msg);
-}
-
-void Messenger::message(const MessageType6 &type,
-			const MessageArg &arg0,
-			const MessageArg &arg1,
-			const MessageArg &arg2,
-			const MessageArg &arg3,
-			const MessageArg &arg4,
-			const MessageArg &arg5)
-{
-  Message msg(6);
-  doInitMessage(msg);
-  msg.args[0] = arg0.copy();
-  msg.args[1] = arg1.copy();
-  msg.args[2] = arg2.copy();
-  msg.args[3] = arg3.copy();
-  msg.args[4] = arg4.copy();
-  msg.args[5] = arg5.copy();
-  msg.type = &type;
-  dispatchMessage(msg);
-}
-
-void Messenger::message(const MessageType0L &type, const Location &loc)
-{
-  Message msg(0);
-  doInitMessage(msg);
-  msg.type = &type;
-  msg.auxLoc = loc;
-  dispatchMessage(msg);
-}
-
-void Messenger::message(const MessageType1L &type, const MessageArg &arg0,
-			const Location &loc)
-{
-  Message msg(1);
-  doInitMessage(msg);
-  msg.args[0] = arg0.copy();
-  msg.type = &type;
-  msg.auxLoc = loc;
-  dispatchMessage(msg);
-}
-
-
-void Messenger::setNextLocation(const Location &loc)
-{
-  haveNextLocation_ = 1;
-  nextLocation_ = loc;
-}
-
-void Messenger::initMessage(Message &)
-{
-}
-
-void Messenger::doInitMessage(Message &msg)
-{
-  initMessage(msg);
-  if (haveNextLocation_) {
-    msg.loc = nextLocation_;
-    haveNextLocation_ = 0;
-  }
-}
-
-ForwardingMessenger::ForwardingMessenger(Messenger &to)
-: to_(&to)
-{
-}
-
-void ForwardingMessenger::dispatchMessage(Message &msg)
-{
-  to_->dispatchMessage(msg);
-}
-
-void ForwardingMessenger::dispatchMessage(const Message &msg)
-{
-  to_->dispatchMessage(msg);
-}
-
-void ForwardingMessenger::initMessage(Message &msg)
-{
-  to_->initMessage(msg);
-}
-
-ParentLocationMessenger::ParentLocationMessenger(Messenger &mgr)
-: ForwardingMessenger(mgr)
-{
-}
-
-void ParentLocationMessenger::initMessage(Message &msg)
-{
-  ForwardingMessenger::initMessage(msg);
-  if (!msg.loc.origin().isNull())
-    msg.loc = msg.loc.origin()->parent();
-}
-
-NullMessenger::NullMessenger()
-{
-}
-
-void NullMessenger::dispatchMessage(const Message &)
-{
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/MessageArg.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "MessageArg.h"
-#include "MessageBuilder.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-MessageArg::MessageArg()
-{
-}
-
-MessageArg::~MessageArg()
-{
-}
-
-StringMessageArg::StringMessageArg(const StringC &s)
-: s_(s)
-{
-}
-
-MessageArg *StringMessageArg::copy() const
-{
-  return new StringMessageArg(*this);
-}
-
-void StringMessageArg::append(MessageBuilder &builder) const
-{
-  builder.appendChars(s_.data(), s_.size());
-}
-
-NumberMessageArg::NumberMessageArg(unsigned long n)
-: n_(n)
-{
-}
-
-MessageArg *NumberMessageArg::copy() const
-{
-  return new NumberMessageArg(*this);
-}
-
-void NumberMessageArg::append(MessageBuilder &builder) const
-{
-  builder.appendNumber(n_);
-}
-
-
-OrdinalMessageArg::OrdinalMessageArg(unsigned long n)
-: n_(n)
-{
-}
-
-MessageArg *OrdinalMessageArg::copy() const
-{
-  return new OrdinalMessageArg(*this);
-}
-
-void OrdinalMessageArg::append(MessageBuilder &builder) const
-{
-  builder.appendOrdinal(n_);
-}
-
-RTTI_DEF0(OtherMessageArg)
-
-OtherMessageArg::OtherMessageArg()
-{
-}
-
-void OtherMessageArg::append(MessageBuilder &builder) const
-{
-  builder.appendOther(this);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/MessageEventHandler.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "MessageEventHandler.h"
-#include "SgmlParser.h"
-#include "ParserOptions.h"
-#ifdef __GNUG__
-#include "Entity.h"
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-MessageEventHandler::MessageEventHandler(Messenger *messenger,
-					 const SgmlParser *parser)
-: messenger_(messenger), parser_(parser)
-{
-}
-
-void MessageEventHandler::subdocEntity(SubdocEntityEvent *event)
-{
-  const SubdocEntity *entity = event->entity();
-  if (entity && parser_) {
-    SgmlParser::Params params;
-    params.subdocReferenced = 1;
-    params.subdocInheritActiveLinkTypes = 1;
-    params.origin = event->entityOrigin()->copy();
-    params.parent = parser_;
-    params.sysid = entity->externalId().effectiveSystemId();
-    params.entityType = SgmlParser::Params::subdoc;
-    SgmlParser parser(params);
-    const SgmlParser *oldParser = parser_;
-    parser_ = &parser;
-    parser.parseAll(*this);
-    parser_ = oldParser;
-  }
-  delete event;
-}
-
-void MessageEventHandler::message(MessageEvent *event)
-{
-  messenger_->dispatchMessage(event->message());
-  ErrorCountEventHandler::message(event);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/MessageFormatter.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-// Copyright (c) 1994, 1995, 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "MessageFormatter.h"
-#include "OutputCharStream.h"
-#include "rtti.h"
-#include "MessageArg.h"
-#include "ErrnoMessageArg.h"
-#include "SearchResultMessageArg.h"
-#include "MessageFormatterMessages.h"
-
-#include <string.h>
-#include <errno.h>
-
-#ifdef DECLARE_STRERROR
-extern "C" {
-  char *strerror(int);
-}
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-MessageFormatter::MessageFormatter()
-{
-}
-
-void MessageFormatter::formatOpenElements(const Vector<OpenElementInfo> &openElementInfo,
-					  OutputCharStream &os)
-{
-  unsigned nOpenElements = openElementInfo.size();
-  for (unsigned i = 0;; i++) {
-    if (i > 0
-      && (i == nOpenElements || openElementInfo[i].included)) {
-      // describe last match in previous open element
-      const OpenElementInfo &prevInfo = openElementInfo[i - 1];
-      if (prevInfo.matchType.size() != 0) {
-	os << " (" << prevInfo.matchType;
-	if (prevInfo.matchIndex != 0)
-	  os << '[' << (unsigned long)prevInfo.matchIndex << ']';
-	os << ')';
-      }
-    }
-    if (i == nOpenElements)
-      break;
-    const OpenElementInfo &e = openElementInfo[i];
-    os << ' ' << e.gi;
-    if (i > 0 && !e.included) {
-      unsigned long n = openElementInfo[i - 1].matchIndex;
-      if (n != 0)
-	os << '[' << n << ']';
-    }
-  }
-}
-
-void MessageFormatter::formatMessage(const MessageFragment &frag,
-				     const Vector<CopyOwner<MessageArg> > &args,
-				     OutputCharStream &os)
-{
-  StringC text;
-  if (!getMessageText(frag, text)) {
-    formatFragment(MessageFormatterMessages::invalidMessage, os);
-    return;
-  }
-  Builder builder(this, os, text.size() == 2);
-  size_t i = 0;
-  while (i < text.size()) {
-    if (text[i] == '%') {
-      i++;
-      if (i >= text.size())
-	break;
-      if (text[i] >= '1' && text[i] <= '9') {
-	if (unsigned(text[i] - '1') < args.size())
-	  args[text[i] - '1']->append(builder);
-      }
-      else
-	os.put(text[i]);
-      i++;
-    }
-    else {
-      os.put(text[i]);
-      i++;
-    }
-  }
-}
-
-Boolean MessageFormatter::formatFragment(const MessageFragment &frag,
-					 OutputCharStream &os)
-{
-  StringC text;
-  if (!getMessageText(frag, text))
-    return 0;
-  os << text;
-  return 1;
-}
-
-void MessageFormatter::Builder::appendNumber(unsigned long n)
-{
-  os() << n;
-}
-
-void MessageFormatter::Builder::appendOrdinal(unsigned long n)
-{
-  os() << n;
-  switch (n % 10) {
-  case 1:
-    appendFragment(MessageFormatterMessages::ordinal1);
-    break;
-  case 2:
-    appendFragment(MessageFormatterMessages::ordinal2);
-    break;
-  case 3:
-    appendFragment(MessageFormatterMessages::ordinal3);
-    break;
-  default:
-    appendFragment(MessageFormatterMessages::ordinaln);
-    break;
-  }
-}
-
-void MessageFormatter::Builder::appendChars(const Char *p, size_t n)
-{
-  if (argIsCompleteMessage_)
-    os().write(p, n);
-  else
-    os().put('"').write(p, n).put('"');
-}
-
-void MessageFormatter::Builder::appendOther(const OtherMessageArg *p)
-{
-  const ErrnoMessageArg *ea = DYNAMIC_CAST_CONST_PTR(ErrnoMessageArg, p);
-  
-  if (ea) {
-    os() << strerror(ea->errnum());
-    return;
-  }
-
-  const SearchResultMessageArg *sr
-    = DYNAMIC_CAST_CONST_PTR(SearchResultMessageArg, p);
-  if (sr) {
-    for (size_t i = 0; i < sr->nTried(); i++) {
-      if (i > 0)
-	os() << ", ";
-      const StringC &f = sr->filename(i);
-      appendChars(f.data(), f.size());
-      switch (sr->errnum(i)) {
-      default:
-	os() << " (";
-	os() << strerror(sr->errnum(i));
-	os() << ")";
-#ifdef ENOENT
-      case ENOENT:
-#endif
-	break;
-      }
-    }
-    return;
-  }
-  appendFragment(MessageFormatterMessages::invalidArgumentType);
-}
-
-void MessageFormatter::Builder::appendFragment(const MessageFragment &frag)
-{
-  formatter_->formatFragment(frag, os());
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/MessageFormatterMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-// This file was automatically generated from lib\MessageFormatterMessages.msg by msggen.pl.
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct MessageFormatterMessages {
-  // 5100
-  static const MessageFragment ordinal1;
-  // 5101
-  static const MessageFragment ordinal2;
-  // 5102
-  static const MessageFragment ordinal3;
-  // 5103
-  static const MessageFragment ordinaln;
-  // 5104
-  static const MessageFragment invalidArgumentType;
-  // 5105
-  static const MessageFragment invalidMessage;
-};
-const MessageFragment MessageFormatterMessages::ordinal1(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5100
-#ifndef SP_NO_MESSAGE_TEXT
-,"st"
-#endif
-);
-const MessageFragment MessageFormatterMessages::ordinal2(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5101
-#ifndef SP_NO_MESSAGE_TEXT
-,"nd"
-#endif
-);
-const MessageFragment MessageFormatterMessages::ordinal3(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5102
-#ifndef SP_NO_MESSAGE_TEXT
-,"rd"
-#endif
-);
-const MessageFragment MessageFormatterMessages::ordinaln(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5103
-#ifndef SP_NO_MESSAGE_TEXT
-,"th"
-#endif
-);
-const MessageFragment MessageFormatterMessages::invalidArgumentType(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5104
-#ifndef SP_NO_MESSAGE_TEXT
-,"(invalid argument type)"
-#endif
-);
-const MessageFragment MessageFormatterMessages::invalidMessage(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5105
-#ifndef SP_NO_MESSAGE_TEXT
-,"(invalid message)"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/MessageReporter.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,240 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "MessageReporter.h"
-#include "MessageReporterMessages.h"
-#include "ExtendEntityManager.h"
-#include "StorageManager.h"
-#include "macros.h"
-
-#include <string.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const OutputCharStream::Newline nl = OutputCharStream::newline;
-
-MessageReporter::MessageReporter(OutputCharStream *os)
-: os_(os), options_(0)
-{
-}
-
-MessageReporter::~MessageReporter()
-{
-  delete os_;
-}
-
-void MessageReporter::setMessageStream(OutputCharStream *os)
-{
-  if (os != os_) {
-    delete os_;
-    os_ = os;
-  }
-}
-
-void MessageReporter::addOption(Option option)
-{
-  options_ |= option;
-}
-
-void MessageReporter::dispatchMessage(const Message &message)
-{
-  Offset off;
-  const ExternalInfo *externalInfo = locationHeader(message.loc, off);
-  if (programName_.size())
-    os() << programName_ << ':';
-  if (externalInfo) {
-    printLocation(externalInfo, off);
-    os() << ':';
-  }
-  if (options_ & messageNumbers)
-    os() << (unsigned long)message.type->module() << "." 
-      << (unsigned long)message.type->number() << ":";
-  switch (message.type->severity()) {
-  case MessageType::info:
-    formatFragment(MessageReporterMessages::infoTag, os());
-    break;
-  case MessageType::warning:
-    formatFragment(MessageReporterMessages::warningTag, os());
-    break;
-  case MessageType::quantityError:
-    formatFragment(MessageReporterMessages::quantityErrorTag, os());
-    break;
-  case MessageType::idrefError:
-    formatFragment(MessageReporterMessages::idrefErrorTag, os());
-    break;
-  case MessageType::error:
-    formatFragment(MessageReporterMessages::errorTag, os());
-    break;
-  default:
-    CANNOT_HAPPEN();
-  }
-  os() << ": ";
-  formatMessage(*message.type, message.args, os());
-  os() << nl;
-  if (!message.auxLoc.origin().isNull()) {
-    Offset off;
-    const ExternalInfo *externalInfo = locationHeader(message.auxLoc, off);
-    if (programName_.size())
-      os() << programName_ << ':';
-    if (externalInfo) {
-      printLocation(externalInfo, off);
-      os() << ": ";
-    }
-    formatMessage(message.type->auxFragment(), message.args, os());
-    os() << nl;
-  }
-  if ((options_ & openElements) && message.openElementInfo.size() > 0) {
-    if (programName_.size())
-      os() << programName_ << ':';
-    if (externalInfo) {
-      printLocation(externalInfo, off);
-      os() << ": ";
-    }
-    formatFragment(MessageReporterMessages::openElements, os());
-    os() << ':';
-    formatOpenElements(message.openElementInfo, os());
-    os() << nl;
-  }
-  os().flush();
-}
-
-// Note this is written so as not to change any reference counts.
-
-const ExternalInfo *MessageReporter::locationHeader(const Location &loc,
-						    Offset &off)
-{
-  return locationHeader(loc.origin().pointer(), loc.index(), off);
-}
-
-const ExternalInfo *MessageReporter::locationHeader(const Origin *origin,
-						    Index index,
-						    Offset &off)
-{
-   if (!(options_ & openEntities)) {
-    while (origin) {
-      const ExternalInfo *externalInfo = origin->externalInfo();
-      if (externalInfo) {
-  	off = origin->startOffset(index);
-	return externalInfo;
-      }
-      const Location &loc = origin->parent();
-      if (loc.origin().isNull()) {
-	if (!origin->defLocation(origin->startOffset(index), origin, index))
-	  break;
-      }
-      else {
-	index = loc.index() + origin->refLength();
-	origin = loc.origin().pointer();
-      }
-    }
-  }
-  else {
-    Boolean doneHeader = 0;
-    while (origin) {
-      if (origin->entityName() || origin->parent().origin().isNull()) {
-	if (!doneHeader) {
-	  Offset parentOff;
-	  const Location &parentLoc = origin->parent();
-	  const ExternalInfo *parentInfo
-	    = locationHeader(parentLoc.origin().pointer(),
-			     parentLoc.index() + origin->refLength(),
-			     parentOff);
-	  if (parentInfo) {
-	    StringC text;
-	    if (getMessageText(origin->entityName()
-			       ? MessageReporterMessages::inNamedEntity
-			       : MessageReporterMessages::inUnnamedEntity,
-				text)) {
-	      for (size_t i = 0; i < text.size(); i++) {
-		if (text[i] == '%') {
-		  if (i + 1 < text.size()) {
-		    i++;
-		    if (text[i] == '1')
-		      os() << *origin->entityName();
-		    else if (text[i] == '2')
-		      printLocation(parentInfo, parentOff);
-		    else if (text[i] >= '3' && text[i] <= '9')
-		      ;
-		    else
-		      os().put(text[i]);
-		  }
-		}
-		else
-		  os().put(text[i]);
-	      }
-	      os() << nl;
-	    }
-	  }
-	  doneHeader = 1;
-	}
-	off = origin->startOffset(index);
-	const ExternalInfo *externalInfo = origin->externalInfo();
-	if (externalInfo)
-	  return externalInfo;
-	if (!origin->defLocation(off, origin, index))
-	  break;
-      }
-      else {
-	const Location &loc = origin->parent();
-	index = loc.index() + origin->refLength();
-	origin = loc.origin().pointer();
-      }
-    }
-  }
-  return 0;
-}
-
-void MessageReporter::printLocation(const ExternalInfo *externalInfo,
-				    Offset off)
-{
-  if (!externalInfo) {
-    formatFragment(MessageReporterMessages::invalidLocation, os());
-    return;
-  }
-  StorageObjectLocation soLoc;
-  if (!ExtendEntityManager::externalize(externalInfo, off, soLoc)) {
-    formatFragment(MessageReporterMessages::invalidLocation, os());
-    return;
-  }
-  if (strcmp(soLoc.storageObjectSpec->storageManager->type(), "OSFILE") != 0)
-    os() << '<' << soLoc.storageObjectSpec->storageManager->type() << '>';
-  os() << soLoc.actualStorageId;
-  if (soLoc.lineNumber == (unsigned long)-1) {
-    os() << ": ";
-    formatFragment(MessageReporterMessages::offset, os());
-    os() << soLoc.storageObjectOffset;
-  }
-  else {
-    os() << ':' << soLoc.lineNumber;
-    if (soLoc.columnNumber != 0 && soLoc.columnNumber != (unsigned long)-1)
-      os() << ':' << soLoc.columnNumber - 1;
-  }
-#if 0
-  if (soLoc.byteIndex != (unsigned long)-1)
-    os() << ':' << soLoc.byteIndex;
-#endif
-}
-
-Boolean MessageReporter::getMessageText(const MessageFragment &frag,
-					StringC &str)
-{
-  const char *p = frag.text();
-  if (!p)
-    return 0;
-  str.resize(0);
-  for (; *p; p++)
-    str += Char((unsigned char)*p);
-  return 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/MessageReporterMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-// This file was automatically generated from lib\MessageReporterMessages.msg by msggen.pl.
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct MessageReporterMessages {
-  // 5000
-  static const MessageFragment infoTag;
-  // 5001
-  static const MessageFragment warningTag;
-  // 5002
-  static const MessageFragment quantityErrorTag;
-  // 5003
-  static const MessageFragment idrefErrorTag;
-  // 5004
-  static const MessageFragment errorTag;
-  // 5005
-  static const MessageFragment openElements;
-  // 5006
-  static const MessageFragment inNamedEntity;
-  // 5007
-  static const MessageFragment inUnnamedEntity;
-  // 5008
-  static const MessageFragment invalidLocation;
-  // 5009
-  static const MessageFragment offset;
-};
-const MessageFragment MessageReporterMessages::infoTag(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5000
-#ifndef SP_NO_MESSAGE_TEXT
-,"I"
-#endif
-);
-const MessageFragment MessageReporterMessages::warningTag(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5001
-#ifndef SP_NO_MESSAGE_TEXT
-,"W"
-#endif
-);
-const MessageFragment MessageReporterMessages::quantityErrorTag(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5002
-#ifndef SP_NO_MESSAGE_TEXT
-,"Q"
-#endif
-);
-const MessageFragment MessageReporterMessages::idrefErrorTag(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5003
-#ifndef SP_NO_MESSAGE_TEXT
-,"X"
-#endif
-);
-const MessageFragment MessageReporterMessages::errorTag(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5004
-#ifndef SP_NO_MESSAGE_TEXT
-,"E"
-#endif
-);
-const MessageFragment MessageReporterMessages::openElements(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5005
-#ifndef SP_NO_MESSAGE_TEXT
-,"open elements"
-#endif
-);
-const MessageFragment MessageReporterMessages::inNamedEntity(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5006
-#ifndef SP_NO_MESSAGE_TEXT
-,"In entity %1 included from %2"
-#endif
-);
-const MessageFragment MessageReporterMessages::inUnnamedEntity(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5007
-#ifndef SP_NO_MESSAGE_TEXT
-,"In entity included from %2"
-#endif
-);
-const MessageFragment MessageReporterMessages::invalidLocation(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5008
-#ifndef SP_NO_MESSAGE_TEXT
-,"(invalid location)"
-#endif
-);
-const MessageFragment MessageReporterMessages::offset(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5009
-#ifndef SP_NO_MESSAGE_TEXT
-,"offset "
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/MessageTable.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "MessageTable.h"
-
-#ifdef SP_NO_MESSAGE_TEXT
-
-// Windows only
-
-#define STRICT
-#include "windows.h"
-static HINSTANCE dllInstanceHandle = NULL;
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class WinMessageTable : public MessageTable {
-public:
-  Boolean getText(const MessageFragment &,
-		  String<SP_TCHAR> &) const;
-  
-};
-
-Boolean WinMessageTable::getText(const MessageFragment &frag,
-				 String<SP_TCHAR> &str) const
-{
-  static const int bufSize = 4096;
-  SP_TCHAR buf[bufSize];
-#ifdef SP_WIDE_SYSTEM
-  int len = LoadStringW(frag.module() == MessageFragment::libModule
-		       ? dllInstanceHandle
-		       : 0,
-		       frag.number(),
-		       buf,
-		       bufSize);
-  if (len == 0 && GetLastError() != 0) {
-    char bufmb[bufSize*2];
-    len = LoadStringA(frag.module() == MessageFragment::libModule
-		      ? dllInstanceHandle
-		      : 0,
-		      frag.number(),
-		      bufmb,
-		      bufSize*2);
-    if (len != 0) {
-      len = MultiByteToWideChar(CP_ACP, 0, bufmb, len, buf, bufSize);
-      if (len == 0 && GetLastError() != 0)
-	return 0;
-    }
-    else if (GetLastError() != 0)
-      return 0;
-  }
-#else /* not SP_WIDE_SYSTEM */
-  int len = LoadStringA(frag.module() == MessageFragment::libModule
-		        ? dllInstanceHandle
-		        : 0,
-		        frag.number(),
-		        buf,
-		        bufSize);
-  if (len == 0 && GetLastError() != 0)
-    return 0;
-#endif /* not SP_WIDE_SYSTEM */
-  if (len == 0) {
-    str.resize(0);
-    return 1;
-  }
-  str.assign(buf, len);
-  return 1;
-}
-
-const MessageTable *MessageTable::instance()
-{
-  if (!instance_)
-    instance_ = new WinMessageTable;
-  return instance_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#ifdef SP_USE_DLL
-extern "C"
-BOOL WINAPI DllMain(HINSTANCE inst, ULONG reason, LPVOID)
-{
-  if (reason == DLL_PROCESS_ATTACH)
-    dllInstanceHandle = inst;
-  return TRUE;
-}
-#endif
-
-#else /* not SP_NO_MESSAGE_TEXT */
-
-#ifdef SP_HAVE_GETTEXT
-extern "C" {
-extern char *dgettext(const char *, const char *);
-extern char *gettext(const char *);
-extern char *textdomain(const char *);
-extern char *bindtextdomain(const char *, const char *);
-}
-
-#include <stdlib.h>
-
-#ifndef MESSAGE_DOMAIN
-#define MESSAGE_DOMAIN "sp"
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class GettextMessageTable : public MessageTable {
-public:
-  GettextMessageTable();
-  Boolean getText(const MessageFragment &, String<SP_TCHAR> &) const;
-  
-};
-
-GettextMessageTable::GettextMessageTable()
-{
-  const char *dir = getenv("TEXTDOMAINDIR");
-  if (dir)
-    bindtextdomain(MESSAGE_DOMAIN, dir);
-}
-
-Boolean GettextMessageTable::getText(const MessageFragment &frag,
-				     String<SP_TCHAR> &str) const
-{
-  const char *s = frag.text();
-  if (!s)
-    return 0;
-  s = dgettext(MESSAGE_DOMAIN, s);
-  if (!s)
-    return 0;
-  str.assign(s, strlen(s));
-  return 1;
-}
-
-const MessageTable *MessageTable::instance()
-{
-  if (!instance_)
-    instance_ = new GettextMessageTable;
-  return instance_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#else /* not SP_HAVE_GETTEXT */
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class DefaultMessageTable : public MessageTable {
-public:
-  Boolean getText(const MessageFragment &, String<SP_TCHAR> &) const;
-};
-
-Boolean DefaultMessageTable::getText(const MessageFragment &frag,
-				     String<SP_TCHAR> &str) const
-{
-  if (!frag.text())
-    return 0;
-  str.resize(0);
-  for (const char *s = frag.text(); *s; s++)
-    str += SP_TCHAR((unsigned char)*s);
-  return 1;
-}
-
-const MessageTable *MessageTable::instance()
-{
-  if (!instance_)
-    instance_ = new DefaultMessageTable;
-  return instance_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not SP_HAVE_GETTEXT */
-
-#endif /* not SP_NO_MESSAGE_TEXT */
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-MessageTable *MessageTable::instance_ = 0;
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ModeInfo.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,300 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include <limits.h>
-#include <stdlib.h>
-#include "macros.h"
-#include "types.h"
-#include "Syntax.h"
-#include "token.h"
-#include "Sd.h"
-#include "Mode.h"
-#include "ModeInfo.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const unsigned REQUIRE_EMPTY_STARTTAG = 01;
-const unsigned REQUIRE_EMPTY_ENDTAG = 02;
-const unsigned REQUIRE_CONCUR = 04;
-const unsigned REQUIRE_LINK_OR_CONCUR = 010;
-const unsigned REQUIRE_NOT_KEEPRSRE = 020;
-const unsigned REQUIRE_FLAGS = 037;
-
-#define ULONG_BIT (CHAR_BIT * sizeof(unsigned long))
-
-struct PackedTokenInfo {
-  Token token;			// token to be returned
-  unsigned flags;
-  unsigned char contents[2];	// components of the delimiter or d-i-c
-  unsigned char modes[25];	// list of modes in which it is recognized,
-				// terminated by EOM
-  // a bit vector computed from modes (lo to hi)
-  unsigned long modeBits[(nModes + ULONG_BIT - 1)/ULONG_BIT];
-  void computeModeBits();
-  Boolean inMode(Mode mode) const;
-};
-
-const unsigned char SET = Syntax::nDelimGeneral;
-const unsigned char FUNCTION = SET + Syntax::nSet;
-const unsigned char NOTHING = UCHAR_MAX;
-
-const unsigned char EOM = 255;	// end of modes
-
-static PackedTokenInfo tokenTable[] = {
-  // Delimiters and delimiters in context
-  { tokenAnd, 0, { Syntax::dAND, NOTHING }, { grpMode, EOM }},
-  { tokenCom, 0, { Syntax::dCOM, NOTHING },
-    { mdMode, mdMinusMode, mdPeroMode, sdMode, comMode, sdcomMode, EOM }},
-  { tokenCroDigit, 0, { Syntax::dCRO, SET + Syntax::digit },
-    { econMode, mconMode, rcconMode, econnetMode, mconnetMode, rcconnetMode,
-      rcconeMode, plitMode, plitaMode, pliteMode, sdplitMode, sdplitaMode,
-      alitMode, alitaMode, aliteMode,
-      talitMode, talitaMode, taliteMode, rcmsMode, EOM }},
-  { tokenCroNameStart, 0, { Syntax::dCRO, SET + Syntax::nameStart },
-    { econMode, mconMode, rcconMode, econnetMode, mconnetMode, rcconnetMode,
-      rcconeMode, plitMode, plitaMode, pliteMode, sdplitMode, sdplitaMode,
-      alitMode, alitaMode, aliteMode,
-      talitMode, talitaMode, taliteMode, rcmsMode, EOM }},
-  { tokenDsc, 0, { Syntax::dDSC, NOTHING },
-    { /* mdMode, */ asMode, dsMode, EOM }},
-  { tokenDso, 0, { Syntax::dDSO, NOTHING }, { mdMode, EOM }},
-  { tokenDtgc, 0, { Syntax::dDTGC, NOTHING }, { grpMode, EOM }},
-  { tokenDtgo, 0, { Syntax::dDTGO, NOTHING }, { grpMode, EOM }},
-  { tokenEroNameStart, 0, { Syntax::dERO, SET + Syntax::nameStart },
-    { econMode, mconMode, rcconMode, econnetMode, mconnetMode, rcconnetMode,
-      rcconeMode, alitMode, alitaMode, aliteMode, talitMode, talitaMode,
-      taliteMode, rcmsMode, EOM }},
-  { tokenEroGrpo, REQUIRE_LINK_OR_CONCUR, { Syntax::dERO, Syntax::dGRPO },
-    { econMode, mconMode, rcconMode, econnetMode, mconnetMode, rcconnetMode,
-      rcconeMode, alitMode, alitaMode, aliteMode, talitMode, talitaMode,
-      taliteMode, rcmsMode, EOM }},
-  { tokenEtago, 0, { Syntax::dETAGO, NOTHING }, { tagMode, EOM }},
-  { tokenEtagoNameStart, 0, { Syntax::dETAGO, SET + Syntax::nameStart },
-    { econMode, mconMode, cconMode, rcconMode,
-      econnetMode, mconnetMode, cconnetMode, rcconnetMode, EOM }},
-  { tokenEtagoTagc, REQUIRE_EMPTY_ENDTAG, { Syntax::dETAGO, Syntax::dTAGC },
-    { econMode, mconMode, cconMode, rcconMode,
-      econnetMode, mconnetMode, cconnetMode, rcconnetMode, EOM }},
-  { tokenEtagoGrpo, REQUIRE_CONCUR, { Syntax::dETAGO, Syntax::dGRPO },
-    { econMode, mconMode, cconMode, rcconMode,
-      econnetMode, mconnetMode, cconnetMode, rcconnetMode, EOM }},
-  { tokenGrpc, 0, { Syntax::dGRPC, NOTHING }, { grpMode, EOM }},
-  { tokenGrpo, 0, { Syntax::dGRPO, NOTHING },
-    { mdMode, mdMinusMode, grpMode, EOM }},
-  { tokenHcroHexDigit, 0, { Syntax::dHCRO, SET + Syntax::hexDigit },
-    { econMode, mconMode, rcconMode, econnetMode, mconnetMode, rcconnetMode,
-      rcconeMode, plitMode, plitaMode, pliteMode,
-      alitMode, alitaMode, aliteMode,
-      talitMode, talitaMode, taliteMode, rcmsMode, EOM }},
-  { tokenLit, 0, { Syntax::dLIT, NOTHING },
-    { alitMode, talitMode, plitMode, sdplitMode, mlitMode, slitMode, sdslitMode,
-      asMode, tagMode, mdMode, sdMode, grpMode, EOM }},
-  { tokenLita, 0, { Syntax::dLITA, NOTHING },
-    { alitaMode, talitaMode, plitaMode, sdplitaMode, mlitaMode, slitaMode, sdslitaMode,
-      asMode, tagMode, mdMode, sdMode, grpMode, EOM }},
-  { tokenMdc, 0, { Syntax::dMDC, NOTHING }, { mdMode, sdMode, EOM }},
-  { tokenMdoNameStart, 0, { Syntax::dMDO, SET + Syntax::nameStart },
-    { econMode, mconMode, econnetMode, mconnetMode,
-      proMode, dsMode, dsiMode, EOM }},
-  { tokenMdoMdc, 0, { Syntax::dMDO, Syntax::dMDC },
-    { econMode, mconMode, econnetMode, mconnetMode,
-      proMode, dsMode, dsiMode, EOM }},
-  { tokenMdoCom, 0, { Syntax::dMDO, Syntax::dCOM },
-    { econMode, mconMode, econnetMode, mconnetMode,
-      proMode, dsMode, dsiMode, EOM }},
-  { tokenMdoDso, 0, { Syntax::dMDO, Syntax::dDSO },
-    { econMode, mconMode, econnetMode, mconnetMode,
-      dsMode, dsiMode, imsMode, EOM }},
-  { tokenMinus, 0, { Syntax::dMINUS, NOTHING }, { mdMinusMode, sdMode, EOM }},
-  { tokenMinusGrpo, 0, { Syntax::dMINUS, Syntax::dGRPO }, { mdMode, EOM }},
-  { tokenMscMdc, 0, { Syntax::dMSC, Syntax::dMDC},
-    { imsMode, cmsMode, rcmsMode,
-      econMode, mconMode, econnetMode, mconnetMode, dsMode, dsiMode, EOM }},
-  { tokenNestc, 0, { Syntax::dNESTC, NOTHING }, { tagMode, EOM }},
-  { tokenNet, 0, { Syntax::dNET, NOTHING },
-    { econnetMode, mconnetMode, cconnetMode, rcconnetMode, EOM }},
-  { tokenOpt, 0, { Syntax::dOPT, NOTHING }, { grpMode, grpsufMode, EOM }},
-  { tokenOr, 0, { Syntax::dOR, NOTHING }, { grpMode, EOM }},
-  { tokenPero, 0, { Syntax::dPERO, NOTHING }, { mdPeroMode, EOM }},
-  { tokenPeroNameStart, 0, { Syntax::dPERO, SET + Syntax::nameStart }, {
-    mdMode, mdMinusMode, mdPeroMode, dsMode, dsiMode, grpMode,
-    plitMode, plitaMode, pliteMode, sdplitMode, sdplitaMode, EOM }},
-  { tokenPeroGrpo, REQUIRE_LINK_OR_CONCUR, { Syntax::dPERO, Syntax::dGRPO },
-    { mdMode, mdMinusMode, mdPeroMode, dsMode, dsiMode, grpMode,
-      plitMode, plitaMode, pliteMode, sdplitMode, sdplitaMode, EOM }},
-  { tokenPic, 0, { Syntax::dPIC, NOTHING }, { piMode, EOM }},
-  { tokenPio, 0, { Syntax::dPIO, NOTHING },
-    { econMode, mconMode, econnetMode, mconnetMode, proMode,
-      dsMode, dsiMode, EOM }},
-  { tokenPlus, 0, { Syntax::dPLUS, NOTHING }, { grpMode, grpsufMode, EOM }},
-  { tokenPlusGrpo, 0, { Syntax::dPLUS, Syntax::dGRPO }, { mdMode, EOM }},
-  { tokenRefc, 0, { Syntax::dREFC, NOTHING }, { refMode, EOM }},
-  { tokenRep, 0, { Syntax::dREP, NOTHING }, { grpMode, grpsufMode, EOM }},
-  { tokenRni, 0, { Syntax::dRNI, NOTHING },
-    { grpMode, mdMode, mdPeroMode, EOM }},
-  { tokenSeq, 0, { Syntax::dSEQ, NOTHING }, { grpMode, EOM }},
-  { tokenStago, 0, { Syntax::dSTAGO, NOTHING }, { tagMode, EOM }},
-  { tokenStagoNameStart, 0, { Syntax::dSTAGO, SET + Syntax::nameStart },
-    { econMode, mconMode, econnetMode, mconnetMode, EOM }},
-  { tokenStagoTagc, REQUIRE_EMPTY_STARTTAG, { Syntax::dSTAGO, Syntax::dTAGC },
-    { econMode, mconMode, econnetMode, mconnetMode, EOM }},
-  { tokenStagoGrpo, REQUIRE_CONCUR, { Syntax::dSTAGO, Syntax::dGRPO },
-    { econMode, mconMode, econnetMode, mconnetMode, EOM }},
-  { tokenTagc, 0, { Syntax::dTAGC, NOTHING }, { tagMode, EOM }},
-  { tokenVi, 0, { Syntax::dVI, NOTHING }, { tagMode, asMode, EOM }},
-  // Other tokens
-  { tokenRe, REQUIRE_NOT_KEEPRSRE, { FUNCTION + Syntax::fRE, NOTHING },
-    { mconMode, cconMode, rcconMode,
-      mconnetMode, cconnetMode, rcconnetMode,
-      rcconeMode, cmsMode, rcmsMode, EOM }},
-  { tokenRe, 0, { FUNCTION + Syntax::fRE, NOTHING },
-    { refMode,
-      mlitMode, mlitaMode, alitMode, alitaMode, aliteMode,
-      talitMode, talitaMode, taliteMode,
-      EOM }},
-  { tokenRs, REQUIRE_NOT_KEEPRSRE, { FUNCTION + Syntax::fRS, NOTHING },
-    { mconMode, cconMode, rcconMode,
-      mconnetMode, cconnetMode, rcconnetMode,
-      rcconeMode, cmsMode, rcmsMode, EOM }},
-  { tokenRs, 0, { FUNCTION + Syntax::fRS, NOTHING },
-    { mlitMode, mlitaMode, alitMode, alitaMode, aliteMode,
-      talitMode, talitaMode, taliteMode,
-      EOM }},
-  { tokenSpace, 0, { FUNCTION + Syntax::fSPACE, NOTHING },
-    { mlitMode, mlitaMode, talitMode, talitaMode, taliteMode, EOM }},
-  { tokenSepchar, 0, { SET + Syntax::sepchar, NOTHING },
-    { alitMode, alitaMode, aliteMode,
-      talitMode, talitaMode, taliteMode, EOM }},
-  { tokenS, 0, { SET + Syntax::s, NOTHING },
-    { econMode, econnetMode, grpMode, mdMode, mdMinusMode, mdPeroMode, sdMode,
-      proMode, dsMode, dsiMode, asMode, tagMode, EOM }},
-  { tokenNameStart, 0, { SET + Syntax::nameStart, NOTHING },
-    { grpMode, mdMode, mdMinusMode, mdPeroMode, sdMode,
-      asMode, tagMode, EOM }},
-  { tokenDigit, 0, { SET + Syntax::digit, NOTHING },
-    { grpMode, mdMode, mdMinusMode, sdMode, asMode, tagMode, EOM }},
-  { tokenLcUcNmchar, 0, { SET + Syntax::nmchar, NOTHING },
-    { grpMode, mdMode, asMode, tagMode, EOM }},
-  { tokenIgnoredChar, 0, { SET + Syntax::sgmlChar, NOTHING },
-    { imsMode, EOM }},
-  { tokenChar, 0, { SET + Syntax::sgmlChar, NOTHING },
-    // Note that character data is recognized in element content,
-    // and will cause #PCDATA to begin.
-    { alitMode, alitaMode, aliteMode,
-      talitMode, talitaMode, taliteMode,
-      comMode, piMode,
-      cmsMode, rcmsMode,
-      plitMode, plitaMode, pliteMode,
-      slitMode, slitaMode,
-      econMode, mconMode, cconMode, rcconMode,
-      econnetMode, mconnetMode, cconnetMode, rcconnetMode, rcconeMode, EOM }},
-  { tokenChar, 0, { SET + Syntax::minimumData, NOTHING },
-    { mlitMode, mlitaMode, EOM }},
-  { tokenChar, 0, { SET + Syntax::significant, NOTHING },
-    { sdplitMode, sdplitaMode, sdslitMode, sdslitaMode, sdcomMode, EOM }},
-};
-
-inline Boolean PackedTokenInfo::inMode(Mode mode) const
-{
-  return ((modeBits[unsigned(mode) / ULONG_BIT]
-	   & ((unsigned long)1 << (unsigned(mode) % ULONG_BIT)))
-	  != 0);
-}
-
-void PackedTokenInfo::computeModeBits()
-{
-  for (unsigned char *p = modes; *p != EOM; p++)
-    modeBits[*p / ULONG_BIT] |= (unsigned long)1 << (*p % ULONG_BIT);
-}
-
-struct TokenTableIniter {
-  TokenTableIniter();
-};
-
-static TokenTableIniter tokenTableIniter;
-
-TokenTableIniter::TokenTableIniter()
-{
-  for (size_t i = 0; i < SIZEOF(tokenTable); i++)
-    tokenTable[i].computeModeBits();
-}
-
-ModeInfo::ModeInfo(Mode mode, const Sd &sd)
-: mode_(mode), p_(tokenTable), count_(SIZEOF(tokenTable)),
-  missingRequirements_(REQUIRE_FLAGS)
-{
-  if (sd.startTagEmpty())
-    missingRequirements_ &= ~REQUIRE_EMPTY_STARTTAG;
-  if (sd.endTagEmpty())
-    missingRequirements_ &= ~REQUIRE_EMPTY_ENDTAG;
-  if (sd.concur())
-    missingRequirements_ &= ~(REQUIRE_CONCUR|REQUIRE_LINK_OR_CONCUR);
-  if (sd.link())
-    missingRequirements_ &= ~REQUIRE_LINK_OR_CONCUR;
-  if (!sd.keeprsre())
-    missingRequirements_ &= ~REQUIRE_NOT_KEEPRSRE;
-}
-  
-Boolean ModeInfo::nextToken(TokenInfo *t)
-{
-  for (; count_ > 0; --count_, ++p_)
-    if (p_->inMode(mode_) && (p_->flags & missingRequirements_) == 0) {
-      t->token = p_->token;
-      t->priority = Priority::delim;
-      const unsigned char *contents = p_->contents;
-      --count_;
-      ++p_;
-      unsigned char c = contents[0];
-      if (c < SET)
-	t->delim1 = Syntax::DelimGeneral(c);
-      else if (c < SET + Syntax::nSet) {
-	t->set = Syntax::Set(c - SET);
-	t->type = TokenInfo::setType;
-	switch (t->set) {
-	case Syntax::sepchar:
-	case Syntax::s:
-	case Syntax::blank:
-	  t->priority = Priority::function;
-	  break;
-	default:
-	  t->priority = Priority::data;
-	  break;
-	}
-	return 1;
-      }
-      else {
-	t->function = Syntax::StandardFunction(c - FUNCTION);
-	t->priority = Priority::function;
-	t->type = TokenInfo::functionType;
-	return 1;
-      }
-      c = contents[1];
-      if (c == NOTHING) {
-	t->type = TokenInfo::delimType;
-	return 1;
-      }
-      if (c < SET) {
-	t->delim2 = Syntax::DelimGeneral(c);
-	t->type = TokenInfo::delimDelimType;
-	return 1;
-      }
-      if (c < SET + Syntax::nSet) {
-	t->set = Syntax::Set(c - SET);
-	t->type = TokenInfo::delimSetType;
-	return 1;
-      }
-      abort();
-    }
-  return 0;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ModeInfo.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1994 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef _MODEINFO_H
-#define	_MODEINFO_H
-
-#ifndef ModeInfo_INCLUDED
-#define	ModeInfo_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <stdlib.h>
-#include "Boolean.h"
-#include "Syntax.h"
-#include "Mode.h"
-#include "Priority.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct TokenInfo {
-	enum Type {
-		delimType,
-		setType,
-		functionType,
-		delimDelimType,
-		delimSetType
-		};
-	Type type;
-	Priority::Type priority;
-	Token token;
-	Syntax::DelimGeneral delim1;
-	union {
-		Syntax::DelimGeneral delim2;
-		Syntax::Set set;
-		Syntax::StandardFunction function;
-	};
-};
-
-class Sd;
-struct PackedTokenInfo;
-
-class ModeInfo {
-public:
-	ModeInfo(Mode mode, const Sd &sd);
-	Boolean nextToken(TokenInfo *);
-	Boolean includesShortref() const;
-private:
-	Mode mode_;
-	const PackedTokenInfo *p_;		// points to next
-	size_t count_;
-	unsigned missingRequirements_;
-};
-
-inline Boolean ModeInfo::includesShortref() const
-{
-	return (mode_ >= (enum Mode) minShortrefMode);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ModeInfo_INCLUDED */
-
-#endif /* _MODEINFO_H */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Mutex.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file copying.txt for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Mutex_INCLUDED
-#define Mutex_INCLUDED 1
-
-#ifdef SP_MUTEX_WIN32
-#define SP_MUTEX
-
-#define STRICT 1
-#include <windows.h>
-// <windows.h> appears to turn these warnings back on
-#ifdef _MSC_VER
-#pragma warning ( disable : 4237 )
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Mutex {
-public:
-  class Lock {
-  public:
-    Lock(Mutex *mp) : mp_(mp) {
-      if (mp) ::EnterCriticalSection(&mp->cs_);
-    }
-    ~Lock() {
-      if (mp_) ::LeaveCriticalSection(&mp_->cs_);
-    }
-  private:
-    Mutex *mp_;
-  };
-  Mutex() {
-    ::InitializeCriticalSection(&cs_);
-  }
-  ~Mutex() {
-    ::DeleteCriticalSection(&cs_);
-  }
-  friend class Lock;
-private:
-  CRITICAL_SECTION cs_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* SP_MUTEX_WIN32 */
-
-#ifdef SP_MUTEX_MACH
-#define SP_MUTEX
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* SP_MUTEX_MACH */
-
-#ifndef SP_MUTEX
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Mutex {
-public:
-  class Lock {
-  public:
-    Lock(Mutex *) { }
-  };
-  Mutex() { }
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not SP_MUTEX */
-
-#endif /* not Mutex_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/NameToken.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef NameToken_INCLUDED
-#define NameToken_INCLUDED 1
-
-#include "Location.h"
-#include "StringC.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct NameToken {
-  StringC name;
-  StringC origName;
-  Location loc;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not NameToken_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Notation.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Notation.h"
-#include "ParserState.h"
-#include "Sd.h"
-#include "Syntax.h"
-#include "MessageArg.h"
-#include "ParserMessages.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Notation::Notation(const StringC &name,
-		   const ConstPtr<StringResource<Char> > &dtdName,
-		   Boolean dtdIsBase)
-: EntityDecl(name, notation, ndata, Location()), defined_(0)
-{
-  setDeclIn(dtdName, dtdIsBase);
-}
-
-void Notation::setExternalId(const ExternalId &id, const Location &defLocation)
-{
-  externalId_ = id;
-  defined_ = 1;
-  setDefLocation(defLocation);
-}
-
-void Notation::generateSystemId(ParserState &parser)
-{
-  StringC str;
-  if (parser.entityCatalog().lookup(*this,
-				    parser.syntax(),
-				    parser.sd().docCharset(),
-				    parser.messenger(),
-				    str))
-    externalId_.setEffectiveSystem(str);
-  else if (parser.options().warnNotationSystemId)
-    parser.message(ParserMessages::cannotGenerateSystemIdNotation,
-		   StringMessageArg(name()));
-}
-
-const StringC *Notation::systemIdPointer() const
-{
-  return externalId_.systemIdString();
-}
-
-const StringC *Notation::publicIdPointer() const
-{
-  return externalId_.publicIdString();
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/NotationStorage.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "NotationStorage.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-NotationStorageManager::NotationStorageManager(const char *type)
-: type_(type)
-{
-}
-
-Boolean NotationStorageManager::inheritable() const
-{
-  return 0;
-}
-
-const char *NotationStorageManager::type() const
-{
-  return type_;
-}
-
-StorageObject *NotationStorageManager::makeStorageObject(const StringC &,
-							 const StringC &,
-							 Boolean,
-							 Boolean,
-							 Messenger &,
-							 StringC &)
-{
-  return 0;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/NumericCharRefOrigin.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "NumericCharRefOrigin.h"
-#include "Markup.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-NumericCharRefOrigin::NumericCharRefOrigin(const Location &start,
-					   Index refLength,
-					   Owner<Markup> &markup)
-: start_(start), refLength_(refLength)
-{
-  markup.swap(markup_);
-}
-
-const Location &NumericCharRefOrigin::parent() const
-{
-  return start_;
-}
-
-Index NumericCharRefOrigin::refLength() const
-{
-  return refLength_;
-}
-
-Boolean NumericCharRefOrigin::isNumericCharRef(const Markup *&markup) const
-{
-  markup = markup_.pointer();
-  return 1;
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/NumericCharRefOrigin.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-#ifndef NumericCharRefOrigin_INCLUDED
-#define NumericCharRefOrigin_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Location.h"
-#include "Markup.h"
-#include "Owner.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class NumericCharRefOrigin : public Origin {
-public:
-  NumericCharRefOrigin(const Location &start, Index endIndex,
-		       Owner<Markup> &markup);
-  const Location &parent() const;
-  Index refLength() const;
-  Boolean isNumericCharRef(const Markup *&) const;
-private:
-  NumericCharRefOrigin(const NumericCharRefOrigin &); // undefined
-  void operator=(const NumericCharRefOrigin &);	      // undefined
-  Location start_;
-  Index refLength_;
-  Owner<Markup> markup_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not NumericCharRefOrigin_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/OffsetOrderedList.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "OffsetOrderedList.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-OffsetOrderedList::OffsetOrderedList()
-: blockUsed_(OffsetOrderedListBlock::size)
-{
-}
-
-void OffsetOrderedList::append(Offset offset)
-{
-  // At any position in the list there's a current offset.
-  // The offset is initially zero.
-  // A byte of 255 says add 255 to the current offset.
-  // A byte B < 255, says that there's an item in the list whose
-  // offset is the current offset + B, and that B + 1 should be
-  // added to the current offset.
-  Offset curOffset = blocks_.size() > 0  ? blocks_.back()->offset : 0;
-  ASSERT(offset >= curOffset);
-  Offset count = offset - curOffset;
-  while (count >= 255) {
-    addByte(255);
-    count -= 255;
-  }
-  addByte(count);
-}
-
-void OffsetOrderedList::addByte(unsigned char b)
-{
-  if (blockUsed_ >= OffsetOrderedListBlock::size) {
-    Mutex::Lock lock(&mutex_);
-    blocks_.resize(blocks_.size() + 1);
-    Owner<OffsetOrderedListBlock> &last = blocks_.back();
-    last = new OffsetOrderedListBlock;
-    if (blocks_.size() == 1) {
-      last->nextIndex = 0;
-      last->offset = 0;
-    }
-    else {
-      OffsetOrderedListBlock &lastButOne = *blocks_[blocks_.size() - 2];
-      last->nextIndex = lastButOne.nextIndex;
-      last->offset = lastButOne.offset;
-    }
-    blockUsed_ = 0;
-  }
-  blocks_.back()->bytes[blockUsed_] = b;
-  if (b == 255)
-    blocks_.back()->offset += 255;
-  else {
-    blocks_.back()->offset += b + 1;
-    blocks_.back()->nextIndex += 1;
-  }
-  blockUsed_++;
-}
-
-// Find the last offset <= off.
-
-Boolean OffsetOrderedList::findPreceding(Offset off,
-					 size_t &foundIndex,
-					 Offset &foundOffset) const
-{
-  Mutex::Lock lock(&((OffsetOrderedList *)this)->mutex_);
-  // Invariant:
-  // blocks with index < i have offset <= off
-  // blocks with index >= lim have offset > off
-  size_t i = 0;
-  size_t lim = blocks_.size();
-  // Most commonly we'll want to know the about positions near the end,
-  // so optimize this case.
-  if (lim > 0 && blocks_[lim - 1]->offset <= off)
-    i = lim;
-  else if (lim > 1 && blocks_[lim - 2]->offset <= off)
-    i = lim - 1;
-  else {
-    // Do a binary search.
-    while (i < lim) {
-      size_t mid = i + (lim - i)/2;
-      if (blocks_[mid]->offset > off)
-	lim = mid;
-      else
-	i = mid + 1;
-    }
-  }
-  if (i == blocks_.size()) {
-    if (i == 0)
-      return 0;
-    foundIndex = blocks_.back()->nextIndex - 1;
-    foundOffset = blocks_.back()->offset - 1;
-    return 1;
-  }
-  // Note that an item with offset X can only occur in a block with offset > X
-  // i is now the first block with offset > off
-  Offset curOff = blocks_[i]->offset;
-  size_t curIndex = blocks_[i]->nextIndex;
-  const unsigned char *bytes = blocks_[i]->bytes;
-  int j = (i == blocks_.size() - 1
-	   ? blockUsed_ 
-	   : int(OffsetOrderedListBlock::size));
-  for (;;) {
-    j--;
-    if (bytes[j] != 255) {
-      curIndex -= 1;
-      curOff -= 1;
-      if (curOff <= off)
-	break;
-    }
-    curOff -= bytes[j];
-    if (j == 0) {
-      if (i == 0)
-	return 0;
-      i--;
-      j = OffsetOrderedListBlock::size;
-      curOff = blocks_[i]->offset;
-      curIndex = blocks_[i]->nextIndex;
-      bytes = blocks_[i]->bytes;
-    }
-  }
-  foundIndex = curIndex;
-  foundOffset = curOff;
-  return 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/OffsetOrderedList.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef OffsetOrderedList_INCLUDED
-#define OffsetOrderedList_INCLUDED 1
-
-#include "types.h"
-#include "Owner.h"
-#include "NCVector.h"
-#include "Boolean.h"
-#include "Mutex.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct OffsetOrderedListBlock {
-  Offset offset;		// next Offset
-  size_t nextIndex;		// index of first item in next block
-  enum { size = 200 };
-  unsigned char bytes[size];
-};
-
-// This is an ordered list of Offsets with no duplicates.
-
-class OffsetOrderedList {
-public:
-  OffsetOrderedList();
-  // off must be > the last offset added.
-  void append(Offset off);
-  // Find the last offset in the list <= off.
-  Boolean findPreceding(Offset off, size_t &foundIndex, Offset &foundOffset)
-    const;
-  size_t size() const;
-private:
-  OffsetOrderedList(const OffsetOrderedList &);	// undefined
-  void operator=(const OffsetOrderedList &);	// undefined
-  void addByte(unsigned char b);
-  // bytes used in current block
-  int blockUsed_;
-  NCVector<Owner<OffsetOrderedListBlock> > blocks_;
-  Mutex mutex_;
-};
-
-inline
-size_t OffsetOrderedList::size() const
-{
-  return blocks_.size() == 0 ? 0 : blocks_.back()->nextIndex;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not OffsetOrderedList_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/OpenElement.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "OpenElement.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-OpenElement::OpenElement(const ElementType *type,
-			 Boolean net,
-			 Boolean included,
-			 const ShortReferenceMap *map,
-			 const Location &startLocation)
-: elementType_(type),
-  netEnabling_(net),
-  included_(included),
-  matchState_(type->definition()->compiledModelGroup()),
-  map_(map),
-  startLocation_(startLocation),
-  declaredContent_(type->definition()->declaredContent())
-{
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/OutputByteStream.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "OutputByteStream.h"
-
-#include <sys/types.h>
-
-#ifdef SP_INCLUDE_IO_H
-#include <io.h>		// for open, fstat, lseek, read prototypes
-#endif
-
-#ifdef SP_INCLUDE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef SP_INCLUDE_OSFCN_H
-#include <osfcn.h>
-#endif
-
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <stdio.h>
-
-#ifdef SP_WIDE_SYSTEM
-#define STRICT
-#include <windows.h>
-#endif
-
-#ifndef O_CREAT
-#ifdef _O_CREAT
-#define O_CREAT _O_CREAT
-#endif
-#endif
-
-#ifndef O_WRONLY
-#ifdef _O_WRONLY
-#define O_WRONLY _O_WRONLY
-#endif
-#endif
-
-#ifndef O_TRUNC
-#ifdef _O_TRUNC
-#define O_TRUNC _O_TRUNC
-#endif
-#endif
-
-#ifndef O_BINARY
-#ifdef _O_BINARY
-#define O_BINARY _O_BINARY
-#else
-#define O_BINARY 0
-#endif
-#endif
-
-#ifndef S_IRUSR
-#if defined(S_IREAD)
-#define S_IRUSR S_IREAD
-#elif defined(_S_IREAD)
-#define S_IRUSR _S_IREAD
-#else
-#define S_IRUSR 0400
-#endif
-#endif
-
-#ifndef S_IWUSR
-#if defined(S_IWRITE)
-#define S_IWUSR S_IWRITE
-#elif defined(_S_IWRITE)
-#define S_IWUSR _S_IWRITE
-#else
-#define S_IWUSR 0200
-#endif
-#endif
-
-#ifndef S_IRGRP
-#if defined(S_IREAD)
-#define S_IRGRP S_IREAD
-#elif defined(_S_IREAD)
-#define S_IRGRP _S_IREAD
-#else
-#define S_IRGRP 0040
-#endif
-#endif
-
-#ifndef S_IWGRP
-#if defined(S_IWRITE)
-#define S_IWGRP S_IWRITE
-#elif defined(_S_IWRITE)
-#define S_IWGRP _S_IWRITE
-#else
-#define S_IWGRP 0020
-#endif
-#endif
-
-#ifndef S_IROTH
-#if defined(S_IREAD)
-#define S_IROTH S_IREAD
-#elif defined(_S_IREAD)
-#define S_IROTH _S_IREAD
-#else
-#define S_IROTH 0004
-#endif
-#endif
-
-#ifndef S_IWOTH
-#if defined(S_IWRITE)
-#define S_IWOTH S_IWRITE
-#elif defined(_S_IWRITE)
-#define S_IWOTH _S_IWRITE
-#else
-#define S_IWOTH 0002
-#endif
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const int openFlags = O_CREAT|O_WRONLY|O_TRUNC|O_BINARY;
-const int protMode = S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH;
-const int bufSize = 8192;
-
-OutputByteStream::OutputByteStream()
-: ptr_(0), end_(0)
-{
-}
-
-OutputByteStream::~OutputByteStream()
-{
-}
-
-void OutputByteStream::sputn(const char *s, size_t n)
-{
-  for (; n > 0; n--, s++)
-    sputc(*s);
-}
-
-OutputByteStream &OutputByteStream::operator<<(long n)
-{
-  char buf[32];
-  sprintf(buf, "%ld", n);
-  return *this << buf;
-}
-
-OutputByteStream &OutputByteStream::operator<<(unsigned long n)
-{
-  char buf[32];
-  sprintf(buf, "%lu", n);
-  return *this << buf;
-}
-
-OutputByteStream &OutputByteStream::operator<<(const char *s)
-{
-  while (*s)
-    sputc(*s++);
-  return *this;
-}
-
-StrOutputByteStream::StrOutputByteStream()
-{
-}
-
-void StrOutputByteStream::extractString(String<char> &str)
-{
-  if (ptr_)
-    buf_.resize(ptr_ - &buf_[0]);
-  str.resize(0);
-  buf_.swap(str);
-  ptr_ = end_ = 0;
-}
-
-void StrOutputByteStream::flush()
-{
-}
-
-void StrOutputByteStream::flushBuf(char c)
-{
-  if (!ptr_) {
-    buf_.resize(16);
-    ptr_ = &buf_[0];
-  }
-  else {
-    size_t i = ptr_ - &buf_[0];
-    buf_.resize(buf_.size()*2);
-    ptr_ = &buf_[0] + i;
-  }
-  end_ = &buf_[0] + buf_.size();
-  *ptr_++ = c;
-}
-
-FileOutputByteStream::FileOutputByteStream()
-: fd_(-1)
-{
-}
-
-FileOutputByteStream::FileOutputByteStream(int fd, Boolean closeFd)
-: fd_(-1)
-{
-  attach(fd, closeFd);
-}
-
-FileOutputByteStream::~FileOutputByteStream()
-{
-  close();
-}
-
-#ifdef SP_WIDE_SYSTEM
-
-Boolean FileOutputByteStream::open(const wchar_t *filename)
-{
-  int fd = _wopen(filename, openFlags, protMode);
-  if (fd >= 0)
-    return attach(fd);
-  // _wopen will always fail on Windows 95
-  String<char> buf;
-  int len = WideCharToMultiByte(CP_ACP, 0, filename, -1, 0, 0, 0, 0);
-  buf.resize(len + 1);
-  WideCharToMultiByte(CP_ACP, 0, filename, -1, buf.begin(), len, 0, 0);
-  buf[len] = '\0';
-  return attach(::open(buf.data(), openFlags, protMode));
-}
-
-#else /* not SP_WIDE_SYSTEM */
-
-Boolean FileOutputByteStream::open(const char *filename)
-{
-  return attach(::open(filename, openFlags, protMode));
-}
-
-#endif /* not SP_WIDE_SYSTEM */
-
-Boolean FileOutputByteStream::attach(int fd, Boolean closeFd)
-{
-  close();
-  fd_ = fd;
-  closeFd_ = closeFd;
-  return fd_ >= 0;
-}
-
-Boolean FileOutputByteStream::close()
-{
-  if (fd_ < 0)
-    return 0;
-  flush();
-  int fd = fd_;
-  fd_ = -1;
-  if (!closeFd_)
-    return 1;
-  return ::close(fd) == 0;
-}
-
-void FileOutputByteStream::flush()
-{
-  if (!buf_.size()) {
-    if (fd_ < 0)
-      return;
-    buf_.resize(bufSize);
-    ptr_ = &buf_[0];
-    end_ = ptr_ + buf_.size();
-  }
-  size_t n = ptr_ - &buf_[0];
-  const char *s = buf_.data();
-  while (n > 0) {
-    int nw = ::write(fd_, s, n);
-    if (nw < 0)
-      break;
-    n -= nw;
-    s += nw;
-  }
-  ptr_ = &buf_[0];
-}
-
-void FileOutputByteStream::flushBuf(char c)
-{
-  flush();
-  *ptr_++ = c;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/OutputCharStream.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,262 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "OutputCharStream.h"
-#include "CodingSystem.h"
-#include "macros.h"
-#include <stdio.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-OutputCharStream::OutputCharStream()
-: ptr_(0), end_(0)
-{
-}
-
-OutputCharStream::~OutputCharStream()
-{
-}
-
-void OutputCharStream::setEscaper(Escaper)
-{
-}
-
-OutputCharStream &OutputCharStream::write(const Char *s, size_t n)
-{
-  for (;;) {
-    size_t spare = end_ - ptr_;
-    if (n <= spare) {
-      memcpy(ptr_, s, n*sizeof(Char));
-      ptr_ += n;
-      break;
-    }
-    if (spare > 0) {
-      memcpy(ptr_, s, spare*sizeof(Char));
-      ptr_ += spare;
-      s += spare;
-      n -= spare;
-    }
-    n--;
-    flushBuf(*s++);
-  }
-  return *this;
-}
-
-OutputCharStream &OutputCharStream::operator<<(const char *s)
-{
-  while (*s)
-    put(*s++);
-  return *this;
-}
-
-// FIXME Avoid stdio
-
-OutputCharStream &OutputCharStream::operator<<(unsigned long n)
-{
-  char buf[sizeof(unsigned long)*3 + 1];
-  sprintf(buf, "%lu", n);
-  return *this << buf;
-}
-
-OutputCharStream &OutputCharStream::operator<<(int n)
-{
-  char buf[sizeof(int)*3 + 2];
-  sprintf(buf, "%d", n);
-  return *this << buf;
-}
-
-EncodeOutputCharStream::EncodeOutputCharStream()
-: buf_(0), byteStream_(0), escaper_(0)
-{
-}
-
-EncodeOutputCharStream::EncodeOutputCharStream(OutputByteStream *byteStream,
-					       const OutputCodingSystem *codingSystem)
-: buf_(0),
-  byteStream_(byteStream),
-  escaper_(0),
-  ownedEncoder_(codingSystem->makeEncoder())
-{
-  encoder_ = ownedEncoder_.pointer();
-  encoder_->setUnencodableHandler(this);
-  allocBuf(codingSystem->fixedBytesPerChar());
-  encoder_->startFile(byteStream_);
-}
-
-EncodeOutputCharStream::EncodeOutputCharStream(OutputByteStream *byteStream,
-					       Encoder *encoder)
-: buf_(0),
-  byteStream_(byteStream),
-  escaper_(0),
-  encoder_(encoder)
-{
-  allocBuf(0);
-}
-
-EncodeOutputCharStream::~EncodeOutputCharStream()
-{
-  if (byteStream_)
-    flush();
-  delete [] buf_;
-}
-
-void EncodeOutputCharStream::open(OutputByteStream *byteStream,
-				  const OutputCodingSystem *codingSystem)
-{
-  if (byteStream_)
-    flush();
-  byteStream_ = byteStream;
-  ownedEncoder_ = codingSystem->makeEncoder();
-  encoder_ = ownedEncoder_.pointer();
-  encoder_->setUnencodableHandler(this);
-  delete [] buf_;
-  buf_ = 0;
-  ptr_ = end_ = buf_;
-  allocBuf(codingSystem->fixedBytesPerChar());
-  encoder_->startFile(byteStream_);
-}
-
-void EncodeOutputCharStream::flush()
-{
-  if (ptr_ > buf_) {
-    encoder_->output(buf_, ptr_ - buf_, byteStream_);
-    ptr_ = buf_;
-  }
-  byteStream_->flush();
-}
-
-void EncodeOutputCharStream::flushBuf(Char c)
-{
-  ASSERT(buf_ != 0);
-  encoder_->output(buf_, ptr_ - buf_, byteStream_);
-  ptr_ = buf_;
-  *ptr_++ = c;
-}
-
-void EncodeOutputCharStream::allocBuf(int bytesPerChar)
-{
-  const int blockSize = 1024;
-  size_t bufSize = bytesPerChar ? blockSize/bytesPerChar : blockSize;
-  ptr_ = buf_ = new Char[bufSize];
-  end_ = buf_ + bufSize;
-}
-
-void EncodeOutputCharStream::setEscaper(Escaper f)
-{
-  escaper_ = f;
-}
-
-void EncodeOutputCharStream::handleUnencodable(Char c, OutputByteStream *)
-{
-  EncodeOutputCharStream tem(byteStream_, encoder_);
-  if (escaper_)
-    (*escaper_)(tem, c);
-}
-
-StrOutputCharStream::StrOutputCharStream()
-: buf_(0), bufSize_(0)
-{
-  sync(0);
-}
-
-StrOutputCharStream::~StrOutputCharStream()
-{
-  delete [] buf_;
-}
-
-void StrOutputCharStream::extractString(StringC &str)
-{
-  str.assign(buf_, ptr_ - buf_);
-  sync(0);
-}
-
-void StrOutputCharStream::flushBuf(Char c)
-{
-  size_t used = ptr_ - buf_;
-  size_t oldSize = bufSize_;
-  bufSize_ = oldSize ? 2*oldSize : 10;
-  Char *oldBuf = buf_;
-  buf_ = new Char[bufSize_];
-  if (oldSize) {
-    memcpy(buf_, oldBuf, oldSize * sizeof(Char));
-    delete [] oldBuf;
-  }
-  sync(used);
-  *ptr_++ = c;
-}
-
-void StrOutputCharStream::flush()
-{
-}
-
-void StrOutputCharStream::sync(size_t length)
-{
-  ptr_ = buf_ + length;
-  end_ = buf_ + bufSize_;
-}
-
-RecordOutputCharStream::RecordOutputCharStream(OutputCharStream *os)
-: os_(os)
-{
-  ptr_ = buf_;
-  end_ = buf_ + bufSize_;
-}
-
-RecordOutputCharStream::~RecordOutputCharStream()
-{
-  outputBuf();
-  delete os_;
-}
-
-void RecordOutputCharStream::setEscaper(Escaper f)
-{
-  os_->setEscaper(f);
-}
-
-void RecordOutputCharStream::flush()
-{
-  outputBuf();
-  os_->flush();
-}
-
-void RecordOutputCharStream::flushBuf(Char c)
-{
-  outputBuf();
-  *ptr_++ = c;
-}
-
-void RecordOutputCharStream::outputBuf()
-{
-  Char *start = buf_;
-  Char *p = start;
-  while (p < ptr_) {
-    switch (*p) {
-    case '\r':			// translate RE to newline
-      if (start < p)
-	os_->write(start, p - start);
-      start = ++p;
-      *os_ << newline;
-      break;
-    case '\n':			// ignore RS
-      if (start < p)
-	os_->write(start, p - start);
-      start = ++p;
-      break;
-    default:
-      ++p;
-      break;
-    }
-  }
-  if (start < p)
-    os_->write(start, p - start);
-  ptr_ = buf_;
-  end_ = buf_ + bufSize_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/OutputState.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "OutputState.h"
-#include "Event.h"
-#include "Allocator.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-OutputState::OutputState()
-{
-  init();
-}
-
-void OutputState::init()
-{
-  nextSerial_ = 0;
-  stack_.clear();
-  stack_.insert(new OutputStateLevel);
-}
-
-OutputStateLevel::OutputStateLevel()
-: state(OutputState::afterStartTag)
-{
-}
-
-void OutputState::handleRe(EventHandler &handler, Allocator &alloc,
-			   const EventsWanted &eventsWanted, Char re,
-			   const Location &location)
-{
-  re_ = re;
-  if (eventsWanted.wantInstanceMarkup())
-    handler.reOrigin(new (alloc) ReOriginEvent(re_, location, nextSerial_));
-  switch (top().state) {
-  case afterStartTag:
-    // it's the first RE in the element
-    if (eventsWanted.wantInstanceMarkup())
-      handler.ignoredRe(new (alloc) IgnoredReEvent(re_, location, nextSerial_++));
-    top().state = afterRsOrRe;
-    break;
-  case afterRsOrRe:
-  case afterData:
-    top().state = pendingAfterRsOrRe;
-    top().reLocation = location;
-    top().reSerial = nextSerial_++;
-    break;
-  case pendingAfterRsOrRe:
-    // We now know that the pending RE won't be ignored as the last RE.
-    handler.data(new (alloc) ReEvent(&re_, top().reLocation, top().reSerial));
-    top().state = pendingAfterRsOrRe;
-    top().reLocation = location;
-    top().reSerial = nextSerial_++;
-    break;
-  case pendingAfterMarkup:
-    // We've had only markup since the last RS or RE, so this
-    // RE is ignored.  Note that it's this RE that's ignored, not
-    // the pending one.
-    if (eventsWanted.wantInstanceMarkup())
-      handler.ignoredRe(new (alloc) IgnoredReEvent(re_, location, nextSerial_++));
-    top().state = pendingAfterRsOrRe;
-    break;
-  }
-}
-
-void OutputState::noteRs(EventHandler &, Allocator &, const EventsWanted &)
-{
-  if (top().hasPendingRe())
-    top().state = pendingAfterRsOrRe;
-  else
-    top().state = afterRsOrRe;
-}
-
-void OutputState::noteMarkup(EventHandler &, Allocator &, const EventsWanted &)
-{
-  switch (top().state) {
-  case afterRsOrRe:
-    top().state = afterStartTag;
-    break;
-  case pendingAfterRsOrRe:
-    top().state = pendingAfterMarkup;
-    break;
-  default:
-    break;			// avoid warning
-  }
-}
-
-void OutputState::noteData(EventHandler &handler, Allocator &alloc,
-			   const EventsWanted &)
-{
-  if (top().hasPendingRe())
-    handler.data(new (alloc) ReEvent(&re_, top().reLocation, top().reSerial));
-  top().state = afterData;
-}
-
-void OutputState::noteStartElement(Boolean included,
-				   EventHandler &handler, Allocator &alloc,
-				   const EventsWanted &)
-{
-  if (included)
-    stack_.insert(new OutputStateLevel);
-  else {
-    if (top().hasPendingRe())
-      handler.data(new (alloc) ReEvent(&re_, top().reLocation, top().reSerial));
-    top().state = afterStartTag;
-  }
-}
-
-void OutputState::noteEndElement(Boolean included, EventHandler &handler,
-				 Allocator &alloc,
-				 const EventsWanted &eventsWanted)
-{
-  if (eventsWanted.wantInstanceMarkup() && top().hasPendingRe())
-    handler.ignoredRe(new (alloc) IgnoredReEvent(re_, top().reLocation,
-						 top().reSerial));
-  if (included) {
-    delete stack_.get();
-    noteMarkup(handler, alloc, eventsWanted);
-  }
-  else
-    top().state = afterData;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/OutputState.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef OutputState_INCLUDED
-#define OutputState_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Location.h"
-#include "IList.h"
-#include "Link.h"
-#include "Boolean.h"
-#include "types.h"
-#include "EventsWanted.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct OutputStateLevel : public Link {
-  OutputStateLevel();
-  Boolean hasPendingRe() const;
-  char state;			// should be OutputState::State
-  unsigned long reSerial;
-  Location reLocation;
-};
-
-class EventHandler;
-class Allocator;
-
-class OutputState {
-public:
-  OutputState();
-  void init();
-  void handleRe(EventHandler &, Allocator &, const EventsWanted &,
-		Char, const Location &);
-  void noteRs(EventHandler &, Allocator &, const EventsWanted &);
-  void noteMarkup(EventHandler &, Allocator &, const EventsWanted &);
-  void noteData(EventHandler &, Allocator &, const EventsWanted &);
-  void noteStartElement(Boolean included,
-			EventHandler &, Allocator &, const EventsWanted &);
-  void noteEndElement(Boolean included,
-		      EventHandler &, Allocator &, const EventsWanted &);
-private:
-  OutputState(const OutputState &); // undefined
-  void operator=(const OutputState &); // undefined
-  enum State {
-    afterStartTag,
-    afterRsOrRe,
-    afterData,
-    pendingAfterRsOrRe,
-    pendingAfterMarkup
-  };
-  IList<OutputStateLevel> stack_;
-  OutputStateLevel &top();
-  Char re_;
-  unsigned long nextSerial_;
-  friend struct OutputStateLevel;
-};
-
-inline
-Boolean OutputStateLevel::hasPendingRe() const
-{
-  return int(state) >= int(OutputState::pendingAfterRsOrRe);
-}
-
-inline
-OutputStateLevel &OutputState::top()
-{
-  return *stack_.head();
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not OutputState_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Param.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Param.h"
-#include "MessageBuilder.h"
-#include "macros.h"
-#include "ParserMessages.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-AllowedParams::AllowedParams(Param::Type p1,
-			     Param::Type p2,
-			     Param::Type p3,
-			     Param::Type p4,
-			     Param::Type p5,
-			     Param::Type p6,
-			     Param::Type p7,
-			     Param::Type p8,
-			     Param::Type p9,
-			     Param::Type p10)
-{
-  init();
-  allow(p1);
-  allow(p2);
-  allow(p3);
-  allow(p4);
-  allow(p5);
-  allow(p6);
-  allow(p7);
-  allow(p8);
-  allow(p9);
-  allow(p10);
-}
-
-AllowedParams::AllowedParams(const Param::Type *v, int n)
-{
-  init();
-  for (int i = 0; i < n; i++)
-    allow(v[i]);
-}
-
-void AllowedParams::init()
-{
-  for (int i = 0; i < Syntax::nNames; i++)
-    reservedNames_[i] = 0;
-  mainMode_ = mdMode;
-  mdc_ = 0;
-  rni_ = 0;
-  dso_ = 0;
-  inclusions_ = 0;
-  exclusions_ = 0;
-  extraDelimiter_ = Param::invalid;
-  group_ = Param::invalid;
-  nameStart_ = Param::invalid;
-  digit_ = Param::invalid;
-  nmchar_ = Param::invalid;
-  literal_ = Param::invalid;
-}
-
-
-void AllowedParams::allow(Param::Type p)
-{
-  switch (p) {
-  case Param::invalid:
-    break;
-  case Param::dso:
-    dso_ = 1;
-    break;
-  case Param::mdc:
-    mdc_ = 1;
-    break;
-  case Param::minus:
-    ASSERT(mainMode_ == mdMode);
-    mainMode_ = mdMinusMode;
-    extraDelimiter_ = p;
-    break;
-  case Param::pero:
-    ASSERT(mainMode_ == mdMode);
-    mainMode_ = mdPeroMode;
-    extraDelimiter_ = p;
-    break;
-  case Param::inclusions:
-    inclusions_ = 1;
-    break;
-  case Param::exclusions:
-    exclusions_ = 1;
-    break;
-  case Param::nameGroup:
-  case Param::nameTokenGroup:
-  case Param::modelGroup:
-    ASSERT(group_ == Param::invalid);
-    group_ = p;
-    break;
-  case Param::number:
-    ASSERT(digit_ == Param::invalid);
-    digit_ = p;
-    break;
-  case Param::minimumLiteral:
-  case Param::tokenizedAttributeValueLiteral:
-  case Param::attributeValueLiteral:
-  case Param::systemIdentifier:
-  case Param::paramLiteral:
-    ASSERT(literal_ == Param::invalid);
-    literal_ = p;
-    break;
-  case Param::name:
-  case Param::entityName:
-  case Param::paramEntityName:
-    ASSERT(nameStart_ == Param::invalid);
-    nameStart_ = p;
-    break;
-  case Param::attributeValue:
-    ASSERT(nameStart_ == Param::invalid);
-    nameStart_ = p;
-    ASSERT(digit_ == Param::invalid);
-    digit_ = p;
-    ASSERT(nmchar_ == Param::invalid);
-    nmchar_ = p;
-    break;
-  default:
-    if (p < Param::indicatedReservedName) {
-      ASSERT(nameStart_ == Param::invalid
-	     || nameStart_ == Param::reservedName);
-      ASSERT(rni_ == 0);
-      nameStart_ = Param::reservedName;
-      reservedNames_[p - Param::reservedName] = 1;
-    }
-    else {
-      ASSERT(nameStart_ != Param::reservedName);
-      rni_ = 1;
-      reservedNames_[p - Param::indicatedReservedName] = 1;
-    }
-    break;
-  }
-}
-
-AllowedParamsMessageArg::AllowedParamsMessageArg(
-  const AllowedParams &allow,
-  const ConstPtr<Syntax> &syntax)
-: allow_(allow),
-  syntax_(syntax)
-{
-}
-
-MessageArg *AllowedParamsMessageArg::copy() const
-{
-  return new AllowedParamsMessageArg(*this);
-}
-
-void AllowedParamsMessageArg::append(MessageBuilder &builder) const
-{
-  Syntax::DelimGeneral delims[3];
-  int nDelims = 0;
-  if (allow_.mdc())
-    delims[nDelims++] = Syntax::dMDC;
-  if (allow_.dso())
-    delims[nDelims++] = Syntax::dDSO;
-  switch (allow_.mainMode()) {
-  case mdMinusMode:
-    delims[nDelims++] = Syntax::dMINUS;
-    break;
-  case mdPeroMode:
-    delims[nDelims++] = Syntax::dPERO;
-    break;
-  default:
-    break;
-  }
-  Boolean first = 1;
-  int i;
-  for (i = 0; i < nDelims; i++) {
-    if (!first)
-      builder.appendFragment(ParserMessages::listSep);
-    else
-      first = 0;
-    const StringC &delim = syntax_->delimGeneral(delims[i]);
-    builder.appendFragment(ParserMessages::delimStart);
-    builder.appendChars(delim.data(), delim.size());
-    builder.appendFragment(ParserMessages::delimEnd);
-  }
-  const MessageFragment *fragment[5];
-  int nFragments = 0;
-  if (allow_.inclusions())
-    fragment[nFragments++] = &ParserMessages::inclusions;
-  if (allow_.exclusions())
-    fragment[nFragments++] = &ParserMessages::exclusions;
-  switch (allow_.literal()) {
-  case Param::minimumLiteral:
-    fragment[nFragments++] = &ParserMessages::minimumLiteral;
-    break;
-  case Param::attributeValueLiteral:
-  case Param::tokenizedAttributeValueLiteral:
-    fragment[nFragments++] = &ParserMessages::attributeValueLiteral;
-    break;
-  case Param::systemIdentifier:
-    fragment[nFragments++] = &ParserMessages::systemIdentifier;
-    break;
-  case Param::paramLiteral:
-    fragment[nFragments++] = &ParserMessages::parameterLiteral;
-    break;
-  }
-  switch (allow_.nameStart()) {
-  case Param::name:
-  case Param::entityName:
-  case Param::paramEntityName:
-    fragment[nFragments++] = &ParserMessages::name;
-    break;
-  case Param::attributeValue:
-    fragment[nFragments++] = &ParserMessages::attributeValue;
-    break;
-  }
-  if (allow_.digit() == Param::number)
-    fragment[nFragments++] = &ParserMessages::number;
-  
-  for (i = 0; i < nFragments; i++) {
-    if (!first)
-      builder.appendFragment(ParserMessages::listSep);
-    else
-      first = 0;
-    builder.appendFragment(*fragment[i]);
-  }
-  if (allow_.rni() || allow_.nameStart() == Param::reservedName) {
-    for (int i = 0; i < Syntax::nNames; i++) {
-      if (allow_.reservedName(Syntax::ReservedName(i))) {
-	if (!first)
-	  builder.appendFragment(ParserMessages::listSep);
-	else
-	  first = 0;
-	StringC str;
-	if (allow_.rni())
-	  str = syntax_->delimGeneral(Syntax::dRNI);
-	str += syntax_->reservedName(Syntax::ReservedName(i));
-	builder.appendChars(str.data(), str.size());
-      }
-    }
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Param.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,214 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Param_INCLUDED
-#define Param_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Boolean.h"
-#include "ContentToken.h"
-#include "StringC.h"
-#include "Location.h"
-#include "MessageArg.h"
-#include "Mode.h"
-#include "NameToken.h"
-#include "Owner.h"
-#include "Ptr.h"
-#include "Syntax.h"
-#include "Text.h"
-#include "Vector.h"
-
-// This describes a markup declaration parameter.
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class ElementType;
-
-class Param {
-public:
-  Param() { }
-  typedef unsigned char Type;
-  enum {
-    invalid,
-    dso,
-    mdc,
-    minus,
-    pero,
-    inclusions,
-    exclusions,
-    nameGroup,
-    nameTokenGroup,
-    modelGroup,
-    number,
-    minimumLiteral,
-    attributeValueLiteral,
-    tokenizedAttributeValueLiteral,
-    systemIdentifier,
-    paramLiteral,
-    name,
-    entityName,
-    paramEntityName,
-    attributeValue,
-    reservedName,		// Syntax::ReservedName is added to this
-    // this is a reserved name preceded by the RNI delimiter
-    indicatedReservedName = reservedName + Syntax::nNames
-    };
-  enum { nTypes = indicatedReservedName + Syntax::nNames };
-  Type type;
-  Location startLocation;
-  Text literalText;
-  Boolean lita;
-  Owner<ModelGroup> modelGroupPtr;
-  Vector<NameToken> nameTokenVector;
-  StringC token;		// name nameToken; with substitution
-  Vector<const ElementType *> elementVector;
-private:
-  Param(const Param &);		// undefined
-  void operator=(const Param &); // undefined
-};
-
-class AllowedParams {
-public:
-  AllowedParams(Param::Type,
-		Param::Type = Param::invalid,
-		Param::Type = Param::invalid,
-		Param::Type = Param::invalid,
-		Param::Type = Param::invalid,
-		Param::Type = Param::invalid,
-		Param::Type = Param::invalid,
-		Param::Type = Param::invalid,
-		Param::Type = Param::invalid,
-		Param::Type = Param::invalid);
-  AllowedParams(const Param::Type *types, int nTypes);
-  Mode mainMode() const;
-  Boolean mdc() const;
-  Boolean rni() const;
-  Boolean dso() const;
-  Boolean inclusions() const;
-  Boolean exclusions() const;
-  Boolean reservedName(Syntax::ReservedName) const;
-  Param::Type group() const;
-  Param::Type nameStart() const;
-  Param::Type digit() const;
-  Param::Type nmchar() const;
-  Param::Type literal() const;
-private:
-  void init();
-  void allow(Param::Type);
-  PackedBoolean mdc_;
-  PackedBoolean rni_;
-  PackedBoolean dso_;
-  PackedBoolean inclusions_;
-  PackedBoolean exclusions_;
-  // invalid, minus, pero
-  Param::Type extraDelimiter_;
-  // invalid, nameGroup, nameTokenGroup, modelGroup
-  Param::Type group_;
-  // invalid, reservedName, name, entityName, paramEntityName, attributeValue
-  Param::Type nameStart_;
-  // invalid, number, attributeValue
-  Param::Type digit_;
-  // invalid, attributeValue
-  Param::Type nmchar_; // LCNMCHAR or UCNMCHAR
-  // invalid, minimumLiteral, systemIdentifier, paramLiteral,
-  // (tokenized)attributeValueLiteral
-  Param::Type literal_;
-  PackedBoolean reservedNames_[Syntax::nNames];
-  Mode mainMode_;		// mdMode mdMinusMode mdPeroMode
-};
-
-class MessageBuilder;
-
-class AllowedParamsMessageArg : public MessageArg {
-public:
-  AllowedParamsMessageArg(const AllowedParams &allow,
-			  const ConstPtr<Syntax> &syntax);
-  MessageArg *copy() const;
-  void append(MessageBuilder &) const;
-private:
-  AllowedParams allow_;
-  ConstPtr<Syntax> syntax_;
-};
-
-inline
-Mode AllowedParams::mainMode() const
-{
-  return mainMode_;
-}
-
-inline
-Boolean AllowedParams::mdc() const
-{
-  return mdc_;
-}
-
-inline
-Boolean AllowedParams::rni() const
-{
-  return rni_;
-}
-
-inline
-Boolean AllowedParams::dso() const
-{
-  return dso_;
-}
-
-inline
-Boolean AllowedParams::inclusions() const
-{
-  return inclusions_;
-}
-
-inline
-Boolean AllowedParams::exclusions() const
-{
-  return exclusions_;
-}
-
-inline
-Boolean AllowedParams::reservedName(Syntax::ReservedName i) const
-{
-  return reservedNames_[i];
-}
-
-inline
-Param::Type AllowedParams::group() const
-{
-  return group_;
-}
-
-inline
-Param::Type AllowedParams::nameStart() const
-{
-  return nameStart_;
-}
-
-inline
-Param::Type AllowedParams::digit() const
-{
-  return digit_;
-}
-
-inline
-Param::Type AllowedParams::nmchar() const
-{
-  return nmchar_;
-}
-
-inline
-Param::Type AllowedParams::literal() const
-{
-  return literal_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Param_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Parser.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,214 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "Parser.h"
-#include "ParserMessages.h"
-#include "constant.h"
-#include "Trie.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Parser::Parser(const SgmlParser::Params &params)
-: ParserState(params.parent
-	      ? params.parent->parser_->entityManagerPtr()
-	      : params.entityManager,
-	      params.options
-	      ? *params.options
-	      : params.parent->parser_->options(),
-	      paramsSubdocLevel(params),
-	      params.entityType == SgmlParser::Params::dtd
-	      ? declSubsetPhase
-	      : contentPhase)
-{
-  Parser *parent = 0;
-  if (params.parent)
-    parent = params.parent->parser_;
-  if (params.entityType == SgmlParser::Params::document) {
-    Sd *sd = new Sd(entityManagerPtr());
-    const ParserOptions &opt = options();
-    sd->setBooleanFeature(Sd::fDATATAG, opt.datatag);
-    sd->setBooleanFeature(Sd::fOMITTAG, opt.omittag);
-    sd->setBooleanFeature(Sd::fRANK, opt.rank);
-    sd->setShorttag(opt.shorttag);
-    sd->setBooleanFeature(Sd::fEMPTYNRM, opt.emptynrm);
-    sd->setNumberFeature(Sd::fSIMPLE, opt.linkSimple);
-    sd->setBooleanFeature(Sd::fIMPLICIT, opt.linkImplicit);
-    sd->setNumberFeature(Sd::fEXPLICIT, opt.linkExplicit);
-    sd->setNumberFeature(Sd::fCONCUR, opt.concur);
-    sd->setNumberFeature(Sd::fSUBDOC, opt.subdoc);
-    sd->setBooleanFeature(Sd::fFORMAL, opt.formal);
-    setSdOverrides(*sd);
-    PublicId publicId;
-    CharsetDecl docCharsetDecl;
-    docCharsetDecl.addSection(publicId);
-    docCharsetDecl.addRange(0, charMax > 99999999 ? 99999999 : charMax + 1, 0);
-    sd->setDocCharsetDecl(docCharsetDecl);
-    setSd(sd);
-  }
-  else if (params.sd.isNull()) {
-    setSd(parent->sdPointer());
-    setSyntaxes(parent->prologSyntaxPointer(),
-		parent->instanceSyntaxPointer());
-  }
-  else {
-    setSd(params.sd);
-    setSyntaxes(params.prologSyntax, params.instanceSyntax);
-  }
-
-  // Make catalog
-  StringC sysid(params.sysid);
-  ConstPtr<EntityCatalog> catalog
-    = entityManager().makeCatalog(sysid,
-				  sd().docCharset(),
-				  messenger());
-  if (!catalog.isNull())
-    setEntityCatalog(catalog);
-  else if (parent)
-    setEntityCatalog(parent->entityCatalogPtr());
-  else {
-    allDone();
-    return;
-  }
-  
-  // Set up the input stack.
-  if (sysid.size() == 0) {
-    allDone();
-    return;
-  }
-  Ptr<InputSourceOrigin> origin;
-  if (params.origin.isNull())
-    origin = InputSourceOrigin::make();
-  else
-    origin = params.origin;
-  pushInput(entityManager().open(sysid,
-				 sd().docCharset(),
-				 origin.pointer(),
-				 EntityManager::mayRewind|EntityManager::maySetDocCharset,
-				 messenger()));
-  if (inputLevel() == 0) {
-    allDone();
-    return;
-  }
-  switch (params.entityType) {
-  case SgmlParser::Params::document:
-    setPhase(initPhase);
-    break;
-  case SgmlParser::Params::subdoc:
-    if (params.subdocInheritActiveLinkTypes && parent)
-      inheritActiveLinkTypes(*parent);
-    if (subdocLevel() == sd().subdoc() + 1)
-      message(ParserMessages::subdocLevel, NumberMessageArg(sd().subdoc()));
-    setPhase(prologPhase);
-    compilePrologModes();
-    break;
-  case SgmlParser::Params::dtd:
-    compilePrologModes();
-    startDtd(params.doctypeName);
-    setPhase(declSubsetPhase);
-    break;
-  }
-}
-
-void Parser::setSdOverrides(Sd &sd)
-{
-  if (options().typeValid != ParserOptions::sgmlDeclTypeValid) {
-    sd.setTypeValid(options().typeValid);
-    sd.setBooleanFeature(Sd::fIMPLYDEFATTLIST, !options().typeValid);
-    sd.setBooleanFeature(Sd::fIMPLYDEFELEMENT, !options().typeValid);
-  }
-  if (options().noUnclosedTag) {
-    sd.setBooleanFeature(Sd::fSTARTTAGUNCLOSED, 0);
-    sd.setBooleanFeature(Sd::fENDTAGUNCLOSED, 0);
-  }
-  if (options().noNet)
-    sd.setStartTagNetEnable(Sd::netEnableNo);
-}
-
-void Parser::giveUp()
-{
-  if (subdocLevel() > 0)	// FIXME might be subdoc if level == 0
-    message(ParserMessages::subdocGiveUp);
-  else
-    message(ParserMessages::giveUp);
-  allDone();
-}
-
-unsigned Parser::paramsSubdocLevel(const SgmlParser::Params &params)
-{
-  if (!params.parent)
-    return 0;
-  unsigned n = params.parent->parser_->subdocLevel();
-  if (params.subdocReferenced)
-    return n + 1;
-  else
-    return n;
-}
-
-Event *Parser::nextEvent()
-{
-  while (eventQueueEmpty()) {
-    switch (phase()) {
-    case noPhase:
-      return 0;
-    case initPhase:
-      doInit();
-      break;
-    case prologPhase:
-      doProlog();
-      break;
-    case declSubsetPhase:
-      doDeclSubset();
-      break;
-    case instanceStartPhase:
-      doInstanceStart();
-      break;
-    case contentPhase:
-      doContent();
-      break;
-    }
-  }
-  return eventQueueGet();
-}
-
-void Parser::parseAll(EventHandler &handler,
-		      const volatile sig_atomic_t *cancelPtr)
-{
-  while (!eventQueueEmpty())
-    eventQueueGet()->handle(handler);
-  // FIXME catch exceptions and reset handler.
-  setHandler(&handler, cancelPtr);
-  for (;;) {
-    switch (phase()) {
-    case noPhase:
-      unsetHandler();
-      return;
-    case initPhase:
-      doInit();
-      break;
-    case prologPhase:
-      doProlog();
-      break;
-    case declSubsetPhase:
-      doDeclSubset();
-      break;
-    case instanceStartPhase:
-      doInstanceStart();
-      break;
-    case contentPhase:
-      doContent();
-      break;
-    }
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Parser.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,412 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Parser_INCLUDED
-#define Parser_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "Attribute.h"
-#include "Attributed.h"
-#include "Boolean.h"
-#include "StringC.h"
-#include "ElementType.h"
-#include "Entity.h"
-#include "Event.h"
-#include "IList.h"
-#include "ISet.h"
-#include "Location.h"
-#include "Owner.h"
-#include "ParserState.h"
-#include "Ptr.h"
-#include "SgmlParser.h"
-#include "StringOf.h"
-#include "Undo.h"
-#include "Vector.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class AllowedParams;
-class Param;
-class ExternalId;
-class PublicId;
-class GroupToken;
-class AllowedGroupTokens;
-struct GroupConnector;
-class AllowedGroupConnectors;
-class AllowedSdParams;
-class Text;
-class AttributeList;
-class AttributeDefinition;
-class AttributeDefinitionList;
-class UnivCharsetDesc;
-class CharsetInfo;
-class CharsetDecl;
-class DeclaredValue;
-struct SdBuilder;
-struct SdParam;
-class Syntax;
-class ElementDefinition;
-class CharSwitcher;
-struct StandardSyntaxSpec;
-class Undo;
-class Decl;
-
-class Parser : private ParserState { 
-public:
-  Parser(const SgmlParser::Params &);
-  Event *nextEvent();
-  void parseAll(EventHandler &, const volatile sig_atomic_t *cancelPtr);
-  ParserState::sdPointer;
-  ParserState::instanceSyntaxPointer;
-  ParserState::prologSyntaxPointer;
-  ParserState::activateLinkType;
-  ParserState::allLinkTypesActivated;
-  ParserState::entityManager;
-  ParserState::entityCatalog;
-  ParserState::baseDtd;
-  ParserState::options;
-private:
-  Parser(const Parser &);	// undefined
-  void operator=(const Parser &); // undefined
-  Boolean setStandardSyntax(Syntax &syn, const StandardSyntaxSpec &,
-			    const CharsetInfo &docCharset,
-			    CharSwitcher &,
-			    Boolean www);
-  Boolean addRefDelimShortref(Syntax &syntax,
-			      const CharsetInfo &syntaxCharset,
-			      const CharsetInfo &docCharset,
-			      CharSwitcher &switcher);
-  Boolean setRefDelimGeneral(Syntax &syntax,
-			     const CharsetInfo &syntaxCharset,
-			     const CharsetInfo &docCharset,
-			     CharSwitcher &switcher);
-  void setRefNames(Syntax &syntax, const CharsetInfo &docCharset, Boolean www);
-
-  void giveUp();
-  void compileSdModes();
-  void compilePrologModes();
-  void compileInstanceModes();
-  void addNeededShortrefs(Dtd &, const Syntax &);
-  Boolean shortrefCanPreemptDelim(const StringC &sr,
-				  const StringC &d,
-				  Boolean dIsSr,
-				  const Syntax &);
-  void compileModes(const Mode *modes, int n, const Dtd *);
-  void compileNormalMap();
-
-  void doInit();
-  void doProlog();
-  void doDeclSubset();
-  void doInstanceStart();
-  void doContent();
-  void extendNameToken(size_t, const MessageType1 &);
-  void extendNumber(size_t, const MessageType1 &);
-  void extendHexNumber();
-  void extendData();
-  void extendS();
-  void extendContentS();
-  void declSubsetRecover(unsigned startLevel);
-  void prologRecover();
-  void skipDeclaration(unsigned startLevel);
-  Boolean parseElementDecl();
-  Boolean parseAttlistDecl();
-  Boolean parseNotationDecl();
-  Boolean parseEntityDecl();
-  Boolean parseShortrefDecl();
-  Boolean parseUsemapDecl();
-  Boolean parseUselinkDecl();
-  Boolean parseDoctypeDeclStart();
-  Boolean parseDoctypeDeclEnd(Boolean fake = 0);
-  Boolean parseMarkedSectionDeclStart();
-  void handleMarkedSectionEnd();
-  Boolean parseCommentDecl();
-  void emptyCommentDecl();
-  Boolean parseExternalId(const AllowedParams &,
-			  const AllowedParams &,
-			  Boolean,
-			  unsigned,
-			  Param &,
-			  ExternalId &);
-  Boolean parseParam(const AllowedParams &, unsigned, Param &);
-  Boolean parseMinimumLiteral(Boolean, Text &);
-  Boolean parseAttributeValueLiteral(Boolean, Text &);
-  Boolean parseTokenizedAttributeValueLiteral(Boolean, Text &);
-  Boolean parseSystemIdentifier(Boolean, Text &);
-  Boolean parseParameterLiteral(Boolean, Text &);
-  Boolean parseDataTagParameterLiteral(Boolean, Text &);
-  // flags for parseLiteral()
-  enum {
-    literalSingleSpace = 01,
-    literalDataTag = 02,
-    literalMinimumData = 04,
-    // Keep info about delimiters
-    literalDelimInfo = 010,
-    // Ignore references in the literal
-    literalNoProcess = 020,
-    // Allow numeric character references to non-SGML characters
-    literalNonSgml = 040
-    };
-  Boolean parseLiteral(Mode litMode, Mode liteMode, size_t maxLength,
-		       const MessageType1 &tooLongMessage,
-		       unsigned flags, Text &text);
-
-  Boolean parseGroupToken(const AllowedGroupTokens &allow,
-			  unsigned nestingLevel,
-			  unsigned declInputLevel,
-			  unsigned groupInputLevel,
-			  GroupToken &gt);
-  Boolean parseGroupConnector(const AllowedGroupConnectors &allow,
-			      unsigned declInputLevel,
-			      unsigned groupInputLevel,
-			      GroupConnector &gc);
-  Boolean parseGroup(const AllowedGroupTokens &allowToken,
-		     unsigned declInputLevel,
-		     Param &parm);
-  Boolean parseModelGroup(unsigned nestingLevel, unsigned declInputLevel,
-			  ModelGroup *&, Mode);
-  Boolean parseNameGroup(unsigned declInputLevel, Param &);
-  Boolean parseNameTokenGroup(unsigned declInputLevel, Param &);
-  Boolean parseDataTagGroup(unsigned nestingLevel, unsigned declInputLevel,
-			    GroupToken &);
-  Boolean parseDataTagTemplateGroup(unsigned nestingLevel,
-				    unsigned declInputLevel, GroupToken &);
-
-  Boolean parseElementNameGroup(unsigned declInputLevel, Param &);
-  Boolean parseReservedName(const AllowedParams &allow, Param &parm);
-  Boolean parseIndicatedReservedName(const AllowedParams &allow, Param &parm);
-  Boolean getReservedName(Syntax::ReservedName *);
-  Boolean getIndicatedReservedName(Syntax::ReservedName *);
-  Boolean parseAttributeValueParam(Param &parm);
-  Boolean parseEntityReference(Boolean isParameter,
-			       int ignoreLevel,
-			       ConstPtr<Entity> &entity,
-			       Ptr<EntityOrigin> &origin);
-  ContentToken::OccurrenceIndicator getOccurrenceIndicator(Mode);
-  Boolean parseComment(Mode);
-  Boolean parseNamedCharRef();
-  Boolean parseNumericCharRef(Boolean isHex, Char &, Location &);
-  Boolean translateNumericCharRef(Char &ch, Boolean &isSgmlChar);
-  Boolean parseDeclarationName(Syntax::ReservedName *, Boolean allowAfdr = 0);
-  void paramInvalidToken(Token, const AllowedParams &);
-  void groupTokenInvalidToken(Token, const AllowedGroupTokens &);
-  void groupConnectorInvalidToken(Token, const AllowedGroupConnectors &);
-  ElementType *lookupCreateElement(const StringC &);
-  RankStem *lookupCreateRankStem(const StringC &);
-  Boolean parseExceptions(unsigned declInputLevel,
-			  Ptr<ElementDefinition> &def);
-  void parsePcdata();
-  void parseStartTag();
-  ElementType *completeRankStem(const StringC &);
-  void handleRankedElement(const ElementType *);
-  void parseEmptyStartTag();
-  void acceptPcdata(const Location &);
-  void acceptStartTag(const ElementType *, StartElementEvent *,
-		      Boolean netEnabling);
-  void handleBadStartTag(const ElementType *, StartElementEvent *,
-			 Boolean netEnabling);
-  void undo(IList<Undo> &);
-  Boolean tryStartTag(const ElementType *, StartElementEvent *,
-		      Boolean netEnabling, IList<Event> &);
-  void checkExclusion(const ElementType *e);
-  Boolean tryImplyTag(const Location &, unsigned &, unsigned &,
-		      IList<Undo> &, IList<Event> &);
-  void pushElementCheck(const ElementType *, StartElementEvent *,
-			Boolean netEnabling);
-  void pushElementCheck(const ElementType *, StartElementEvent *,
-			IList<Undo> &, IList<Event> &);
-  void queueElementEvents(IList<Event> &);
-  Boolean parseAttributeSpec(Boolean inDeclaration,
-			     AttributeList &,
-			     Boolean &netEnabling,
-			     Ptr<AttributeDefinitionList> &);
-
-  Boolean handleAttributeNameToken(Text &text,
-				   AttributeList &,
-				   unsigned &specLength);
-  struct AttributeParameter {
-    enum Type {
-      end,
-      name,
-      nameToken,
-      vi,
-      recoverUnquoted
-      };
-  };
-
-  Boolean parseAttributeParameter(Boolean inDecl,
-				  Boolean allowVi,
-				  AttributeParameter::Type &result,
-				  Boolean &netEnabling);
-  void extendUnquotedAttributeValue();
-
-  Boolean parseAttributeValueSpec(Boolean inDecl,
-				  const StringC &name,
-				  AttributeList &atts,
-				  unsigned &specLength,
-				  Ptr<AttributeDefinitionList> &newAttDefList);
-
-  EndElementEvent *parseEndTag();
-  void parseEndTagClose();
-  void parseEmptyEndTag();
-  void parseNullEndTag();
-  void endAllElements();
-  void acceptEndTag(EndElementEvent *);
-  void endTagEmptyElement(const ElementType *,
-			  Boolean netEnabling,
-			  Boolean included,
-			  const Location &startLoc);
-  void implyCurrentElementEnd(const Location &);
-  void implyEmptyElementEnd(const ElementType *, Boolean included, const Location &);
-  void maybeDefineEntity(const Ptr<Entity> &entity);
-  Notation *lookupCreateNotation(const StringC &name);
-  Boolean parseExternalEntity(StringC &name,
-			      Entity::DeclType declType,
-			      unsigned declInputLevel,
-			      Param &parm);
-  ShortReferenceMap *lookupCreateMap(const StringC &);
-  StringC prettifyDelim(const StringC &delim);
-  void handleShortref(int index);
-  Boolean parseProcessingInstruction();
-  Boolean parseAttributed(unsigned declInputLevel, Param &parm,
-			  Vector<Attributed *> &attributed,
-			  Boolean &isNotation);
-  Boolean parseDeclaredValue(unsigned declInputLevel, Boolean isNotation,
-			     Param &parm, Owner<DeclaredValue> &value);
-  Boolean parseDefaultValue(unsigned declInputLevel, Boolean isNotation,
-			    Param &parm, const StringC &attributeName,
-			    Owner<DeclaredValue> &declaredValue,
-			    Owner<AttributeDefinition> &def,
-			    Boolean &anyCurrent);
-  Boolean reportNonSgmlCharacter();
-  void endInstance();
-  Boolean implySgmlDecl();
-  Boolean scanForSgmlDecl(const CharsetInfo &initCharset);
-  void findMissingMinimum(const CharsetInfo &charset, ISet<WideChar> &);
-  Boolean parseSgmlDecl();
-  Boolean sdParseSgmlDeclRef(SdBuilder &, SdParam &, ExternalId &);
-  Boolean sdParseDocumentCharset(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseCapacity(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseScope(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseSyntax(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseExplicitSyntax(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseSyntaxCharset(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseShunchar(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseFunction(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseNaming(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseDelim(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseNames(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseQuantity(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseEntities(SdBuilder &sdBuilder, SdParam &parm);
-  Boolean sdParseFeatures(SdBuilder &sd, SdParam &parm);
-  Boolean sdParseAppinfo(SdBuilder &sd, SdParam &parm);
-  Boolean sdParseSeealso(SdBuilder &sd, SdParam &parm);
-  void requireWWW(SdBuilder &sdBuilder);
-  Boolean parseSdParam(const AllowedSdParams &allow, SdParam &);
-  Boolean parseSdParamLiteral(Boolean lita, String<SyntaxChar> &str);
-  Boolean parseSdSystemIdentifier(Boolean lita, Text &);
-  Boolean stringToNumber(const Char *s, size_t length, unsigned long &);
-  void sdParamConvertToLiteral(SdParam &parm);
-  void sdParamInvalidToken(Token token, const AllowedSdParams &);
-  Boolean sdParseCharset(SdBuilder &sdBuilder, SdParam &parm,
-			 Boolean isDocument,
-			 CharsetDecl &, UnivCharsetDesc &);
-  Boolean sdParseExternalCharset(Sd &, UnivCharsetDesc &desc);
-  UnivChar charNameToUniv(Sd &sd, const StringC &name);
-  Boolean translateSyntax(CharSwitcher &switcher,
-			  const CharsetInfo &syntaxCharset,
-			  const CharsetInfo &docCharset,
-			  WideChar syntaxChar,
-			  Char &docChar);
-  Boolean translateSyntax(SdBuilder &sdBuilder,
-			  WideChar syntaxChar, Char &docChar);
-  Boolean translateSyntax(SdBuilder &sdBuilder,
-			  const String<SyntaxChar> &syntaxString,
-			  StringC &docString);
-  Boolean translateSyntaxNoSwitch(SdBuilder &sdBuilder,
-				  WideChar syntaxChar, Char &docChar,
-				  Number &count);
-  Boolean translateName(SdBuilder &sdBuilder,
-			const StringC &name,
-			StringC &str);
-  void translateRange(SdBuilder &sdBuilder, SyntaxChar start,
-		      SyntaxChar end, ISet<Char> &chars);
-  UnivChar translateUniv(UnivChar univChar,
-			 CharSwitcher &switcher,
-			 const CharsetInfo &syntaxCharset);
-  Boolean univToDescCheck(const CharsetInfo &charset, UnivChar from,
-			  Char &to);
-  Boolean univToDescCheck(const CharsetInfo &charset, UnivChar from,
-			  Char &to, WideChar &count);
-  void translateDocSet(const CharsetInfo &fromCharset,
-		       const CharsetInfo &toCharset,
-		       const ISet<Char> &fromSet,
-		       ISet<Char> &toSet);
-  Boolean checkNotFunction(const Syntax &syn, Char c);
-  Boolean checkGeneralDelim(const Syntax &syn, const StringC &delim);
-  Boolean checkShortrefDelim(const Syntax &syn,
-			     const CharsetInfo &charset,
-			     const StringC &delim);
-  Boolean checkNmchars(const ISet<Char> &set, const Syntax &syntax);
-  void intersectCharSets(const ISet<Char> &s1, const ISet<Char> &s2,
-			 ISet<WideChar> &inter);
-  Boolean checkSwitches(CharSwitcher &switcher,
-			const CharsetInfo &syntaxCharset);
-  Boolean checkSwitchesMarkup(CharSwitcher &switcher);
-
-  const StandardSyntaxSpec *lookupSyntax(const PublicId &id);
-  Boolean referencePublic(const PublicId &id, PublicId::TextClass,
-			  Boolean &givenError);
-  void checkIdrefs();
-  void checkTaglen(Index tagStartIndex);
-  void checkSyntaxNamelen(const Syntax &syn);
-  void checkElementAttribute(const ElementType *e, size_t checkFrom = 0);
-  void checkDtd(Dtd &dtd);
-  Boolean maybeStatusKeyword(const Entity &entity);
-  void reportAmbiguity(const LeafContentToken *from,
-		       const LeafContentToken *to1,
-		       const LeafContentToken *to2,
-		       unsigned ambigAndDepth);
-  Boolean parseLinktypeDeclStart();
-  Boolean parseLinktypeDeclEnd();
-  Boolean parseLinkDecl();
-  Boolean parseIdlinkDecl();
-  Boolean parseLinkSet(Boolean idlink);
-  void addIdLinkRule(const StringC &id, IdLinkRule &rule);
-  void addLinkRule(LinkSet *linkSet,
-		   const ElementType *sourceElement,
-		   const ConstPtr<SourceLinkRuleResource> &linkRule);
-  Boolean parseResultElementSpec(unsigned declInputLevel,
-				 Param &parm,
-				 Boolean idlink,
-				 Boolean &implied,
-				 const ElementType *&resultType,
-				 AttributeList &attributes);
-  LinkSet *lookupCreateLinkSet(const StringC &name);
-  ElementType *lookupResultElementType(const StringC &name);
-  void endProlog();
-  Boolean parseEntityReferenceNameGroup(Boolean &ignore);
-  Boolean parseTagNameGroup(Boolean &active);
-  void parseGroupStartTag();
-  void parseGroupEndTag();
-  Boolean skipAttributeSpec();
-  Boolean lookingAtStartTag(StringC &gi);
-  void implyDtd(const StringC &gi);
-  void findMissingTag(const ElementType *e, Vector<const ElementType *> &);
-  unsigned paramsSubdocLevel(const SgmlParser::Params &);
-  void addCommonAttributes(Dtd &dtd);
-  Boolean parseAfdrDecl();
-  void setSdOverrides(Sd &sd);
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Parser_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ParserApp.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,253 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "ParserApp.h"
-#include "ParserAppMessages.h"
-#include "MessageArg.h"
-#include "Location.h"
-#include "macros.h"
-#include "sptchar.h"
-#include "ArcEngine.h"
-
-#include <limits.h>
-#include <errno.h>
-#include <stdlib.h>
-
-#ifndef DEFAULT_ERROR_LIMIT
-#define DEFAULT_ERROR_LIMIT 200
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-ParserApp::ParserApp(const char *requiredInternalCode)
-: EntityApp(requiredInternalCode),
-  errorLimit_(DEFAULT_ERROR_LIMIT)
-{
-  registerOption('a', SP_T("link_type"));
-  registerOption('A', SP_T("arch"));
-  registerOption('e');
-  registerOption('E', SP_T("max_errors"));
-  registerOption('g');
-  registerOption('i', SP_T("entity"));
-  registerOption('w', SP_T("warning_type"));
-}
-
-void ParserApp::initParser(const StringC &sysid)
-{
-  SgmlParser::Params params;
-  params.sysid = sysid;
-  params.entityManager = entityManager().pointer();
-  params.options = &options_;
-  parser_.init(params);
-  if (arcNames_.size() > 0)
-    parser_.activateLinkType(arcNames_[0]);
-  for (size_t i = 0; i < activeLinkTypes_.size(); i++) 
-    parser_.activateLinkType(convertInput(activeLinkTypes_[i]));
-  allLinkTypesActivated();
-}
-
-void ParserApp::allLinkTypesActivated()
-{
-  parser_.allLinkTypesActivated();
-}
-
-int ParserApp::processSysid(const StringC &sysid)
-{
-  initParser(sysid);
-  ErrorCountEventHandler *eceh = makeEventHandler();
-  if (errorLimit_)
-    eceh->setErrorLimit(errorLimit_);	
-  return generateEvents(eceh);
-}
-
-int ParserApp::generateEvents(ErrorCountEventHandler *eceh)
-{
-  Owner<EventHandler> eh(eceh);
-  parseAll(parser_, *eh, eceh->cancelPtr());
-  unsigned errorCount = eceh->errorCount();
-  if (errorLimit_ != 0 && errorCount >= errorLimit_)
-    message(ParserAppMessages::errorLimitExceeded,
-	    NumberMessageArg(errorLimit_));
-  return errorCount > 0;
-}
-
-void ParserApp::parseAll(SgmlParser &parser,
-			 EventHandler &eh,
-			 const volatile sig_atomic_t *cancelPtr)
-{
-  if (arcNames_.size() > 0) {
-    SelectOneArcDirector director(arcNames_, eh);
-    ArcEngine::parseAll(parser, director, director, cancelPtr);
-  }
-  else
-    parser.parseAll(eh, cancelPtr);
-}
-
-void ParserApp::processOption(AppChar opt, const AppChar *arg)
-{
-  switch (opt) {
-  case 'a':
-    // activate link
-    activeLinkTypes_.push_back(arg);
-    break;
-  case 'A':
-    arcNames_.push_back(convertInput(arg));
-    break;
-  case 'E':
-    {
-      AppChar *end;
-      unsigned long n = tcstoul((AppChar *)arg, &end, 10);
-      if ((n == 0 && end == arg)
-	  || *end != SP_T('\0')
-	  || (n == ULONG_MAX && errno == ERANGE)
-	  || n > UINT_MAX)
-	message(ParserAppMessages::badErrorLimit);
-      else
-	errorLimit_ = unsigned(n);
-    }
-    break;
-  case 'e':
-    // describe open entities in error messages
-    addOption(MessageReporter::openEntities);
-    break;
-  case 'g':
-    // show gis of open elements in error messages
-    addOption(MessageReporter::openElements);
-    break;
-  case 'i':
-    // pretend that arg is defined as INCLUDE
-    options_.includes.push_back(convertInput(arg));
-    break;
-  case 'w':
-    if (!enableWarning(arg))
-      message(ParserAppMessages::unknownWarning,
-	      StringMessageArg(convertInput(arg)));
-    break;
-  default:
-    EntityApp::processOption(opt, arg);
-    break;
-  }
-}
-
-Boolean ParserApp::enableWarning(const AppChar *s)
-{
-  enum { groupAll = 01, groupMinTag = 02, groupXML = 04 };
-  static struct {
-    // Explicit qualifier works around CodeWarrior bug
-    const CmdLineApp::AppChar *name;
-    PackedBoolean ParserOptions::*ptr;
-    unsigned char groups;
-  } table[] = {
-    { SP_T("mixed"), &ParserOptions::warnMixedContent, groupAll },
-    { SP_T("should"), &ParserOptions::warnShould, groupAll },
-    { SP_T("duplicate"), &ParserOptions::warnDuplicateEntity, 0 },
-    { SP_T("default"), &ParserOptions::warnDefaultEntityReference, groupAll },
-    { SP_T("undefined"), &ParserOptions::warnUndefinedElement, groupAll },
-    { SP_T("sgmldecl"), &ParserOptions::warnSgmlDecl, groupAll },
-    { SP_T("unclosed"), &ParserOptions::noUnclosedTag, groupAll|groupMinTag },
-    { SP_T("net"), &ParserOptions::noNet, groupMinTag },
-    { SP_T("empty"), &ParserOptions::warnEmptyTag, groupAll|groupMinTag },
-    { SP_T("unused-map"), &ParserOptions::warnUnusedMap, groupAll },
-    { SP_T("unused-param"), &ParserOptions::warnUnusedParam, groupAll },
-    { SP_T("notation-sysid"), &ParserOptions::warnNotationSystemId, 0 },
-    { SP_T("inclusion"), &ParserOptions::warnInclusion, groupXML },
-    { SP_T("exclusion"), &ParserOptions::warnExclusion, groupXML },
-    { SP_T("rcdata-content"), &ParserOptions::warnRcdataContent, groupXML },
-    { SP_T("cdata-content"), &ParserOptions::warnCdataContent, groupXML },
-    { SP_T("ps-comment"), &ParserOptions::warnPsComment, groupXML },
-    { SP_T("attlist-group-decl"), &ParserOptions::warnAttlistGroupDecl, groupXML },
-    { SP_T("element-group-decl"), &ParserOptions::warnElementGroupDecl, groupXML },
-    { SP_T("pi-entity"), &ParserOptions::warnPiEntity, groupXML },
-    { SP_T("internal-sdata-entity"), &ParserOptions::warnInternalSdataEntity, groupXML },
-    { SP_T("internal-cdata-entity"), &ParserOptions::warnInternalCdataEntity, groupXML },
-    { SP_T("external-sdata-entity"), &ParserOptions::warnExternalSdataEntity, groupXML },
-    { SP_T("external-cdata-entity"), &ParserOptions::warnExternalCdataEntity, groupXML },
-    { SP_T("bracket-entity"), &ParserOptions::warnBracketEntity, groupXML },
-    { SP_T("data-atts"), &ParserOptions::warnDataAttributes, groupXML },
-    { SP_T("missing-system-id"), &ParserOptions::warnMissingSystemId, groupXML },
-    { SP_T("conref"), &ParserOptions::warnConref, groupXML },
-    { SP_T("current"), &ParserOptions::warnCurrent, groupXML },
-    { SP_T("nutoken-decl-value"), &ParserOptions::warnNutokenDeclaredValue, groupXML },
-    { SP_T("number-decl-value"), &ParserOptions::warnNumberDeclaredValue, groupXML },
-    { SP_T("name-decl-value"), &ParserOptions::warnNameDeclaredValue, groupXML },
-    { SP_T("named-char-ref"), &ParserOptions::warnNamedCharRef, groupXML },
-    { SP_T("refc"), &ParserOptions::warnRefc, groupXML },
-    { SP_T("temp-ms"), &ParserOptions::warnTempMarkedSection, groupXML },
-    { SP_T("rcdata-ms"), &ParserOptions::warnRcdataMarkedSection, groupXML },
-    { SP_T("instance-include-ms"), &ParserOptions::warnInstanceIncludeMarkedSection, groupXML },
-    { SP_T("instance-ignore-ms"), &ParserOptions::warnInstanceIgnoreMarkedSection, groupXML },
-    { SP_T("and-group"), &ParserOptions::warnAndGroup, groupXML },
-    { SP_T("rank"), &ParserOptions::warnRank, groupXML },
-    { SP_T("empty-comment-decl"), &ParserOptions::warnEmptyCommentDecl, groupXML },
-    { SP_T("att-value-not-literal"), &ParserOptions::warnAttributeValueNotLiteral, groupXML },
-    { SP_T("missing-att-name"), &ParserOptions::warnMissingAttributeName, groupXML },
-    { SP_T("comment-decl-s"), &ParserOptions::warnCommentDeclS, groupXML },
-    { SP_T("comment-decl-multiple"), &ParserOptions::warnCommentDeclMultiple, groupXML },
-    { SP_T("missing-status-keyword"), &ParserOptions::warnMissingStatusKeyword, groupXML },
-    { SP_T("multiple-status-keyword"), &ParserOptions::warnMultipleStatusKeyword, groupXML },
-    { SP_T("instance-param-entity"), &ParserOptions::warnInstanceParamEntityRef, groupXML },
-    { SP_T("min-param"), &ParserOptions::warnMinimizationParam, groupXML },
-    { SP_T("mixed-content-xml"), &ParserOptions::warnMixedContentRepOrGroup, groupXML },
-    { SP_T("name-group-not-or"), &ParserOptions::warnNameGroupNotOr, groupXML },
-    { SP_T("pi-missing-name"), &ParserOptions::warnPiMissingName, groupXML },
-    { SP_T("instance-status-keyword-s"), &ParserOptions::warnInstanceStatusKeywordSpecS, groupXML },
-    { SP_T("external-data-entity-ref"), &ParserOptions::warnExternalDataEntityRef, groupXML },
-    { SP_T("att-value-external-entity-ref"), &ParserOptions::warnAttributeValueExternalEntityRef, groupXML },
-    { SP_T("data-delim"), &ParserOptions::warnDataDelim, groupXML },
-    { SP_T("explicit-sgml-decl"), &ParserOptions::warnExplicitSgmlDecl, groupXML },
-    { SP_T("internal-subset-ms"), &ParserOptions::warnInternalSubsetMarkedSection, groupXML },
-    { SP_T("default-entity"), &ParserOptions::warnDefaultEntityDecl, groupXML },
-    { SP_T("non-sgml-char-ref"), &ParserOptions::warnNonSgmlCharRef, groupXML },
-    { SP_T("internal-subset-ps-param-entity"), &ParserOptions::warnInternalSubsetPsParamEntityRef, groupXML },
-    { SP_T("internal-subset-ts-param-entity"), &ParserOptions::warnInternalSubsetTsParamEntityRef, groupXML },
-    { SP_T("internal-subset-literal-param-entity"), &ParserOptions::warnInternalSubsetLiteralParamEntityRef, groupXML },
-    { SP_T("idref"), &ParserOptions::errorIdref, 0 },
-    { SP_T("significant"), &ParserOptions::errorSignificant, 0 },
-    { SP_T("afdr"), &ParserOptions::errorAfdr, 0 },
-  };
-  static struct {
-    const CmdLineApp::AppChar *name;
-    unsigned char flag;
-  } groupTable[] = {
-    { SP_T("all"), groupAll },
-    { SP_T("min-tag"), groupMinTag },
-    { SP_T("xml"), groupXML },
-  };
-  PackedBoolean val = 1;
-  if (tcsncmp(s, SP_T("no-"), 3) == 0) {
-    s += 3;
-    val = 0;
-  }
-  for (size_t i = 0; i < SIZEOF(groupTable); i++)
-    if (tcscmp(s, groupTable[i].name) == 0) {
-      for (size_t j = 0; j < SIZEOF(table); j++)
-	if (table[j].groups & groupTable[i].flag) {
-	  // Use parentheses to work around Watcom 10.0a bug.
-	  (options_.*(table[j].ptr)) = val;
-	}
-      return 1;
-    }
-  for (size_t i = 0; i < SIZEOF(table); i++)
-    if (tcscmp(s, table[i].name) == 0) {
-      // Use parentheses to work around Watcom 10.0a bug.
-      (options_.*(table[i].ptr)) = val;
-      return 1;
-    }
-  if (tcscmp(s, SP_T("valid")) == 0) {
-    options_.typeValid = val;
-    return 1;
-  }
-  return 0;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ParserAppMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-// This file was automatically generated from lib\ParserAppMessages.msg by msggen.pl.
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct ParserAppMessages {
-  // 4200
-  static const MessageType1 unknownWarning;
-  // 4201
-  static const MessageType0 badErrorLimit;
-  // 4202
-  static const MessageType1 errorLimitExceeded;
-};
-const MessageType1 ParserAppMessages::unknownWarning(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4200
-#ifndef SP_NO_MESSAGE_TEXT
-,"unknown warning type %1"
-#endif
-);
-const MessageType0 ParserAppMessages::badErrorLimit(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4201
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid error limit"
-#endif
-);
-const MessageType1 ParserAppMessages::errorLimitExceeded(
-MessageType::info,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4202
-#ifndef SP_NO_MESSAGE_TEXT
-,"maximum number of errors (%1) reached; change with -E option"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ParserEventGeneratorKit.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,211 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "Boolean.h"
-#include "ParserApp.h"
-#include "macros.h"
-#include "SGMLApplication.h"
-#include "ParserEventGeneratorKit.h"
-#include "GenericEventHandler.h"
-
-class ParserEventGeneratorKitImpl : public SP_NAMESPACE_SCOPE ParserApp {
-public:
-  SP_NAMESPACE_SCOPE ParserOptions &options() { return options_; }
-  bool generalEntities;
-  unsigned refCount;
-private:
-  SP_NAMESPACE_SCOPE ErrorCountEventHandler *makeEventHandler() { return 0; }
-};
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class ParserEventGenerator : public EventGenerator {
-public:
-  ParserEventGenerator(SgmlParser &,
-		       bool generalEntities,
-		       ParserEventGeneratorKitImpl *kit_);
-  ParserEventGenerator(const SgmlParser &,
-		       const SGMLApplication::Char *,
-		       size_t n,
-		       bool generalEntities,
-		       bool messagesInhibited,
-		       ParserEventGeneratorKitImpl *kit_);
-  ~ParserEventGenerator();
-  unsigned run(SGMLApplication &);
-  void inhibitMessages(bool);
-  void halt();
-  EventGenerator *
-    makeSubdocEventGenerator(const SGMLApplication::Char *systemId,
-			     size_t systemIdLength);
-private:
-  SgmlParser parser_;
-  bool generalEntities_;
-  bool messagesInhibited_;
-  sig_atomic_t cancel_;
-  ParserEventGeneratorKitImpl *kit_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-ParserEventGeneratorKit::ParserEventGeneratorKit()
-{
-  impl_ = new ParserEventGeneratorKitImpl;
-  impl_->refCount = 1;
-  impl_->generalEntities = 0;
-}
-
-ParserEventGeneratorKit::~ParserEventGeneratorKit()
-{
-  impl_->refCount -= 1;
-  if (impl_->refCount == 0)
-    delete impl_;
-}
-
-EventGenerator *
-ParserEventGeneratorKit::makeEventGenerator(int nFiles,
-					    SP_NAMESPACE_SCOPE ParserApp::AppChar *const *files)
-{
-  SP_NAMESPACE_SCOPE StringC sysid;
-  if (impl_->makeSystemId(nFiles, files, sysid))
-    impl_->initParser(sysid);
-  return new SP_NAMESPACE_SCOPE ParserEventGenerator(impl_->parser(),
-						     impl_->generalEntities,
-						     impl_);
-}
-
-void ParserEventGeneratorKit::setProgramName(const SP_NAMESPACE_SCOPE ParserApp::AppChar *prog)
-{
-  if (prog)
-    impl_->setProgramName(impl_->convertInput(prog));
-}
-
-void ParserEventGeneratorKit::setOption(Option opt)
-{
-  switch (opt) {
-  case showOpenEntities:
-    impl_->processOption('e', 0);
-    break;
-  case showOpenElements:
-    impl_->processOption('g', 0);
-    break;
-  case outputCommentDecls:
-    impl_->options().eventsWanted.addCommentDecls();
-    break;
-  case outputMarkedSections:
-    impl_->options().eventsWanted.addMarkedSections();
-    break;
-  case outputGeneralEntities:
-    impl_->generalEntities = 1;
-    break;
-  case mapCatalogDocument:
-    impl_->processOption('C', 0);
-    break;
-  }
-}
-
-void ParserEventGeneratorKit::setOption(OptionWithArg opt,
-					const SP_NAMESPACE_SCOPE ParserApp::AppChar *arg)
-{
-  switch (opt) {
-  case addCatalog:
-    impl_->processOption('c', arg);
-    break;
-  case includeParam:
-    impl_->processOption('i', arg);
-    break;
-  case enableWarning:
-    impl_->processOption('w', arg);
-    break;
-  case addSearchDir:
-    impl_->processOption('D', arg);
-    break;
-  case activateLink:
-    impl_->processOption('a', arg);
-    break;
-  case architecture:
-    impl_->processOption('A', arg);
-    break;
-  }
-}
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-ParserEventGenerator::ParserEventGenerator(SgmlParser &parser,
-					   bool generalEntities,
-					   ParserEventGeneratorKitImpl *kit)
-: generalEntities_(generalEntities),
-  messagesInhibited_(0),
-  cancel_(0),
-  kit_(kit)
-{
-  parser_.swap(parser);
-  kit_->refCount += 1;
-}
-
-ParserEventGenerator::ParserEventGenerator(const SgmlParser &parser,
-					   const SGMLApplication::Char *s,
-					   size_t n,
-					   bool generalEntities,
-					   bool messagesInhibited,
-					   ParserEventGeneratorKitImpl *kit)
-: generalEntities_(generalEntities),
-  messagesInhibited_(messagesInhibited),
-  cancel_(0),
-  kit_(kit)
-{
-  kit_->refCount += 1;
-  SgmlParser::Params params;
-  params.parent = &parser;
-  params.sysid.assign(s, n);
-  params.entityType = SgmlParser::Params::subdoc;
-  parser_.init(params);
-}
-
-void ParserEventGenerator::halt()
-{
-  cancel_ = 1;
-}
-
-ParserEventGenerator::~ParserEventGenerator()
-{
-  kit_->refCount -= 1;
-  if (kit_->refCount == 0)
-    delete kit_;
-}
-
-unsigned ParserEventGenerator::run(SGMLApplication &app)
-{
-  MsgGenericEventHandler handler(app, generalEntities_,
-				 *kit_, &messagesInhibited_);
-  kit_->parseAll(parser_, handler, &cancel_);
-  return handler.errorCount();
-}
-
-void ParserEventGenerator::inhibitMessages(bool b)
-{
-  messagesInhibited_ = b;
-}
-
-EventGenerator *
-ParserEventGenerator::makeSubdocEventGenerator(const SGMLApplication::Char *s,
-					       size_t n)
-{
-  return new ParserEventGenerator(parser_, s, n, generalEntities_,
-				  messagesInhibited_, kit_);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ParserMessages.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5306 +0,0 @@
-// This file was automatically generated from lib\ParserMessages.msg by msggen.pl.
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "ParserMessages.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const MessageType1 ParserMessages::nameLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-0
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of name must not exceed NAMELEN (%1)"
-#endif
-);
-const MessageType1 ParserMessages::parameterEntityNameLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of parameter entity name must not exceed NAMELEN less the length of the PERO delimiter (%1)"
-#endif
-);
-const MessageType1 ParserMessages::numberLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of number must not exceed NAMELEN (%1)"
-#endif
-);
-const MessageType1 ParserMessages::attributeValueLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-3
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of attribute value must not exceed LITLEN less NORMSEP (%1)"
-#endif
-);
-const MessageType0 ParserMessages::peroGrpoProlog(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-4
-#ifndef SP_NO_MESSAGE_TEXT
-,"a name group is not allowed in a parameter entity reference in the prolog"
-#endif
-);
-const MessageType0 ParserMessages::groupLevel(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-5
-#ifndef SP_NO_MESSAGE_TEXT
-,"an entity end in a token separator must terminate an entity referenced in the same group"
-#endif
-);
-const MessageType2 ParserMessages::groupCharacter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-6
-#ifndef SP_NO_MESSAGE_TEXT
-,"character %1 invalid: only %2 and token separators allowed"
-#endif
-);
-const MessageType0 ParserMessages::psRequired(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-7
-#ifndef SP_NO_MESSAGE_TEXT
-,"a parameter separator is required after a number that is followed by a name start character"
-#endif
-);
-const MessageType2 ParserMessages::markupDeclarationCharacter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-8
-#ifndef SP_NO_MESSAGE_TEXT
-,"character %1 invalid: only %2 and parameter separators allowed"
-#endif
-);
-const MessageType0 ParserMessages::declarationLevel(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-9
-#ifndef SP_NO_MESSAGE_TEXT
-,"an entity end in a parameter separator must terminate an entity referenced in the same declaration"
-#endif
-);
-const MessageType0 ParserMessages::groupEntityEnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-10
-#ifndef SP_NO_MESSAGE_TEXT
-,"an entity end is not allowed in a token separator that does not follow a token"
-#endif
-);
-const MessageType1 ParserMessages::invalidToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-11
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a valid token here"
-#endif
-);
-const MessageType0 ParserMessages::groupEntityReference(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-12
-#ifndef SP_NO_MESSAGE_TEXT
-,"a parameter entity reference can only occur in a group where a token could occur"
-#endif
-);
-const MessageType1 ParserMessages::duplicateGroupToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-13
-#ifndef SP_NO_MESSAGE_TEXT
-,"token %1 has already occurred in this group"
-#endif
-);
-const MessageType1 ParserMessages::groupCount(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-14
-#ifndef SP_NO_MESSAGE_TEXT
-,"the number of tokens in a group must not exceed GRPCNT (%1)"
-#endif
-);
-const MessageType0 ParserMessages::literalLevel(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-15
-#ifndef SP_NO_MESSAGE_TEXT
-,"an entity end in a literal must terminate an entity referenced in the same literal"
-#endif
-);
-const MessageType1 ParserMessages::literalMinimumData(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-16
-#ifndef SP_NO_MESSAGE_TEXT
-,"character %1 invalid: only minimum data characters allowed"
-#endif
-);
-const MessageType0 ParserMessages::dataTagPatternNonSgml(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-17
-#ifndef SP_NO_MESSAGE_TEXT
-,"a parameter literal in a data tag pattern must not contain a numeric character reference to a non-SGML character"
-#endif
-);
-const MessageType0 ParserMessages::dataTagPatternFunction(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-18
-#ifndef SP_NO_MESSAGE_TEXT
-,"a parameter literal in a data tag pattern must not contain a numeric character reference to a function character"
-#endif
-);
-const MessageType0 ParserMessages::eroGrpoStartTag(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-19
-#ifndef SP_NO_MESSAGE_TEXT
-,"a name group is not allowed in a general entity reference in a start tag"
-#endif
-);
-const MessageType0 ParserMessages::eroGrpoProlog(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-20
-#ifndef SP_NO_MESSAGE_TEXT
-,"a name group is not allowed in a general entity reference in the prolog"
-#endif
-);
-const MessageType1 ParserMessages::functionName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-21
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a function name"
-#endif
-);
-const MessageType1 ParserMessages::characterNumber(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-22
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a character number in the document character set"
-#endif
-);
-const MessageType1 ParserMessages::parameterEntityUndefined(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-23
-#ifndef SP_NO_MESSAGE_TEXT
-,"parameter entity %1 not defined"
-#endif
-);
-const MessageType1 ParserMessages::entityUndefined(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-24
-#ifndef SP_NO_MESSAGE_TEXT
-,"general entity %1 not defined and no default entity"
-#endif
-);
-const MessageType0 ParserMessages::rniNameStart(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-25
-#ifndef SP_NO_MESSAGE_TEXT
-,"RNI delimiter must be followed by name start character"
-#endif
-);
-const MessageType0L ParserMessages::commentEntityEnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-26
-#ifndef SP_NO_MESSAGE_TEXT
-,"unterminated comment: found end of entity inside comment"
-,"comment started here"
-#endif
-);
-const MessageType0 ParserMessages::mixedConnectors(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-28
-#ifndef SP_NO_MESSAGE_TEXT
-,"only one type of connector should be used in a single group"
-#endif
-);
-const MessageType1 ParserMessages::noSuchReservedName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-29
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a reserved name"
-#endif
-);
-const MessageType1 ParserMessages::invalidReservedName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-30
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not allowed as a reserved name here"
-#endif
-);
-const MessageType1 ParserMessages::minimumLiteralLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-31
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of interpreted minimum literal must not exceed reference LITLEN (%1)"
-#endif
-);
-const MessageType1 ParserMessages::tokenizedAttributeValueLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-32
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of tokenized attribute value must not exceed LITLEN less NORMSEP (%1)"
-#endif
-);
-const MessageType1 ParserMessages::systemIdentifierLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-33
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of system identifier must not exceed LITLEN (%1)"
-#endif
-);
-const MessageType1 ParserMessages::parameterLiteralLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-34
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of interpreted parameter literal must not exceed LITLEN (%1)"
-#endif
-);
-const MessageType1 ParserMessages::dataTagPatternLiteralLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-35
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of interpreted parameter literal in data tag pattern must not exceed DTEMPLEN"
-#endif
-);
-const MessageType0 ParserMessages::literalClosingDelimiter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-36
-#ifndef SP_NO_MESSAGE_TEXT
-,"literal is missing closing delimiter"
-#endif
-);
-const MessageType2 ParserMessages::paramInvalidToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-37
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 invalid: only %2 and parameter separators are allowed"
-#endif
-);
-const MessageType2 ParserMessages::groupTokenInvalidToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-38
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 invalid: only %2 and token separators are allowed"
-#endif
-);
-const MessageType2 ParserMessages::connectorInvalidToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-39
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 invalid: only %2 and token separators are allowed"
-#endif
-);
-const MessageType1 ParserMessages::noSuchDeclarationType(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-40
-#ifndef SP_NO_MESSAGE_TEXT
-,"unknown declaration type %1"
-#endif
-);
-const MessageType1 ParserMessages::dtdSubsetDeclaration(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-41
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 declaration not allowed in DTD subset"
-#endif
-);
-const MessageType1 ParserMessages::declSubsetCharacter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-42
-#ifndef SP_NO_MESSAGE_TEXT
-,"character %1 not allowed in declaration subset"
-#endif
-);
-const MessageType0 ParserMessages::documentEndDtdSubset(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-43
-#ifndef SP_NO_MESSAGE_TEXT
-,"end of document in DTD subset"
-#endif
-);
-const MessageType1 ParserMessages::prologCharacter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-44
-#ifndef SP_NO_MESSAGE_TEXT
-,"character %1 not allowed in prolog"
-#endif
-);
-const MessageType0 ParserMessages::documentEndProlog(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-45
-#ifndef SP_NO_MESSAGE_TEXT
-,"end of document in prolog"
-#endif
-);
-const MessageType1 ParserMessages::prologDeclaration(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-46
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 declaration not allowed in prolog"
-#endif
-);
-const MessageType1 ParserMessages::rankStemGenericIdentifier(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-47
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 used both a rank stem and generic identifier"
-#endif
-);
-const MessageType0 ParserMessages::missingTagMinimization(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-48
-#ifndef SP_NO_MESSAGE_TEXT
-,"omitted tag minimization parameter can be omitted only if \"OMITTAG NO\" is specified on the SGML declaration"
-#endif
-);
-const MessageType1 ParserMessages::duplicateElementDefinition(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-49
-#ifndef SP_NO_MESSAGE_TEXT
-,"element type %1 already defined"
-#endif
-);
-const MessageType0 ParserMessages::entityApplicableDtd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-50
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity reference with no applicable DTD"
-#endif
-);
-const MessageType1L ParserMessages::commentDeclInvalidToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-51
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid comment declaration: found %1 outside comment but inside comment declaration"
-,"comment declaration started here"
-#endif
-);
-const MessageType1 ParserMessages::instanceDeclaration(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-53
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 declaration not allowed in instance"
-#endif
-);
-const MessageType0 ParserMessages::contentNonSgml(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-54
-#ifndef SP_NO_MESSAGE_TEXT
-,"non-SGML character not allowed in content"
-#endif
-);
-const MessageType1 ParserMessages::noCurrentRank(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-55
-#ifndef SP_NO_MESSAGE_TEXT
-,"no current rank for rank stem %1"
-#endif
-);
-const MessageType1 ParserMessages::duplicateAttlistNotation(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-56
-#ifndef SP_NO_MESSAGE_TEXT
-,"duplicate attribute definition list for notation %1"
-#endif
-);
-const MessageType1 ParserMessages::duplicateAttlistElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-57
-#ifndef SP_NO_MESSAGE_TEXT
-,"duplicate attribute definition list for element %1"
-#endif
-);
-const MessageType0 ParserMessages::endTagEntityEnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-58
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity end not allowed in end tag"
-#endif
-);
-const MessageType1 ParserMessages::endTagCharacter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-59
-#ifndef SP_NO_MESSAGE_TEXT
-,"character %1 not allowed in end tag"
-#endif
-);
-const MessageType1 ParserMessages::endTagInvalidToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-60
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 invalid: only s and tagc allowed here"
-#endif
-);
-const MessageType0 ParserMessages::pcdataNotAllowed(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-61
-#ifndef SP_NO_MESSAGE_TEXT
-,"character data is not allowed here"
-#endif
-);
-const MessageType1 ParserMessages::elementNotAllowed(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-62
-#ifndef SP_NO_MESSAGE_TEXT
-,"document type does not allow element %1 here"
-#endif
-);
-const MessageType2 ParserMessages::missingElementMultiple(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-63
-#ifndef SP_NO_MESSAGE_TEXT
-,"document type does not allow element %1 here; missing one of %2 start-tag"
-#endif
-);
-const MessageType2 ParserMessages::missingElementInferred(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-64
-#ifndef SP_NO_MESSAGE_TEXT
-,"document type does not allow element %1 here; assuming missing %2 start-tag"
-#endif
-);
-const MessageType1 ParserMessages::startTagEmptyElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-65
-#ifndef SP_NO_MESSAGE_TEXT
-,"no start tag specified for implied empty element %1"
-#endif
-);
-const MessageType1L ParserMessages::omitEndTagDeclare(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-66
-#ifndef SP_NO_MESSAGE_TEXT
-,"end tag for %1 omitted, but its declaration does not permit this"
-,"start tag was here"
-#endif
-);
-const MessageType1L ParserMessages::omitEndTagOmittag(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-68
-#ifndef SP_NO_MESSAGE_TEXT
-,"end tag for %1 omitted, but OMITTAG NO was specified"
-,"start tag was here"
-#endif
-);
-const MessageType1 ParserMessages::omitStartTagDeclaredContent(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-70
-#ifndef SP_NO_MESSAGE_TEXT
-,"start tag omitted for element %1 with declared content"
-#endif
-);
-const MessageType1 ParserMessages::elementEndTagNotFinished(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-71
-#ifndef SP_NO_MESSAGE_TEXT
-,"end tag for %1 which is not finished"
-#endif
-);
-const MessageType1 ParserMessages::omitStartTagDeclare(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-72
-#ifndef SP_NO_MESSAGE_TEXT
-,"start tag for %1 omitted, but its declaration does not permit this"
-#endif
-);
-const MessageType1 ParserMessages::taglvlOpenElements(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-73
-#ifndef SP_NO_MESSAGE_TEXT
-,"number of open elements exceeds TAGLVL (%1)"
-#endif
-);
-const MessageType1 ParserMessages::undefinedElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-74
-#ifndef SP_NO_MESSAGE_TEXT
-,"element %1 undefined"
-#endif
-);
-const MessageType0 ParserMessages::emptyEndTagNoOpenElements(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-75
-#ifndef SP_NO_MESSAGE_TEXT
-,"empty end tag but no open elements"
-#endif
-);
-const MessageType1 ParserMessages::elementNotFinished(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-76
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 not finished but containing element ended"
-#endif
-);
-const MessageType1 ParserMessages::elementNotOpen(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-77
-#ifndef SP_NO_MESSAGE_TEXT
-,"end tag for element %1 which is not open"
-#endif
-);
-const MessageType1 ParserMessages::internalParameterDataEntity(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-78
-#ifndef SP_NO_MESSAGE_TEXT
-,"internal parameter entity %1 cannot be CDATA or SDATA"
-#endif
-);
-const MessageType1 ParserMessages::attributeSpecCharacter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-79
-#ifndef SP_NO_MESSAGE_TEXT
-,"character %1 not allowed in attribute specification list"
-#endif
-);
-const MessageType0 ParserMessages::unquotedAttributeValue(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-80
-#ifndef SP_NO_MESSAGE_TEXT
-,"an attribute value must be a literal unless it contains only name characters"
-#endif
-);
-const MessageType0 ParserMessages::attributeSpecEntityEnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-81
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity end not allowed in attribute specification list except in attribute value literal"
-#endif
-);
-const MessageType1 ParserMessages::externalParameterDataSubdocEntity(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-82
-#ifndef SP_NO_MESSAGE_TEXT
-,"external parameter entity %1 cannot be CDATA, SDATA, NDATA or SUBDOC"
-#endif
-);
-const MessageType1 ParserMessages::duplicateEntityDeclaration(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-83
-#ifndef SP_NO_MESSAGE_TEXT
-,"duplicate declaration of entity %1"
-#endif
-);
-const MessageType1 ParserMessages::duplicateParameterEntityDeclaration(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-84
-#ifndef SP_NO_MESSAGE_TEXT
-,"duplicate declaration of parameter entity %1"
-#endif
-);
-const MessageType0 ParserMessages::piEntityReference(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-85
-#ifndef SP_NO_MESSAGE_TEXT
-,"a reference to a PI entity is allowed only in a context where a processing instruction could occur"
-#endif
-);
-const MessageType0 ParserMessages::internalDataEntityReference(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-86
-#ifndef SP_NO_MESSAGE_TEXT
-,"a reference to a CDATA or SDATA entity is allowed only in a context where a data character could occur"
-#endif
-);
-const MessageType0 ParserMessages::externalNonTextEntityReference(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-87
-#ifndef SP_NO_MESSAGE_TEXT
-,"a reference to a subdocument entity or external data entity is allowed only in a context where a data character could occur"
-#endif
-);
-const MessageType0 ParserMessages::externalNonTextEntityRcdata(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-88
-#ifndef SP_NO_MESSAGE_TEXT
-,"a reference to a subdocument entity or external data entity is not allowed in replaceable character data"
-#endif
-);
-const MessageType0 ParserMessages::entlvl(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-89
-#ifndef SP_NO_MESSAGE_TEXT
-,"the number of open entities cannot exceed ENTLVL"
-#endif
-);
-const MessageType0 ParserMessages::piEntityRcdata(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-90
-#ifndef SP_NO_MESSAGE_TEXT
-,"a reference to a PI entity is not allowed in replaceable character data"
-#endif
-);
-const MessageType1 ParserMessages::recursiveEntityReference(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-91
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity %1 is already open"
-#endif
-);
-const MessageType1 ParserMessages::undefinedShortrefMapInstance(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-92
-#ifndef SP_NO_MESSAGE_TEXT
-,"short reference map %1 not defined"
-#endif
-);
-const MessageType0 ParserMessages::usemapAssociatedElementTypeDtd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-93
-#ifndef SP_NO_MESSAGE_TEXT
-,"short reference map in DTD must specify associated element type"
-#endif
-);
-const MessageType0 ParserMessages::usemapAssociatedElementTypeInstance(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-94
-#ifndef SP_NO_MESSAGE_TEXT
-,"short reference map in document instance cannot specify associated element type"
-#endif
-);
-const MessageType2 ParserMessages::undefinedShortrefMapDtd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-95
-#ifndef SP_NO_MESSAGE_TEXT
-,"short reference map %1 for element %2 not defined in DTD"
-#endif
-);
-const MessageType1 ParserMessages::unknownShortrefDelim(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-96
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a short reference delimiter"
-#endif
-);
-const MessageType1 ParserMessages::delimDuplicateMap(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-97
-#ifndef SP_NO_MESSAGE_TEXT
-,"short reference delimiter %1 already mapped in this declaration"
-#endif
-);
-const MessageType0 ParserMessages::noDocumentElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-98
-#ifndef SP_NO_MESSAGE_TEXT
-,"no document element"
-#endif
-);
-const MessageType0 ParserMessages::processingInstructionEntityEnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-99
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity end not allowed in processing instruction"
-#endif
-);
-const MessageType1 ParserMessages::processingInstructionLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-100
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of processing instruction must not exceed PILEN (%1)"
-#endif
-);
-const MessageType0 ParserMessages::processingInstructionClose(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-101
-#ifndef SP_NO_MESSAGE_TEXT
-,"missing pic delimiter"
-#endif
-);
-const MessageType0 ParserMessages::attributeSpecNameTokenExpected(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-102
-#ifndef SP_NO_MESSAGE_TEXT
-,"an attribute specification must start with a name or name token"
-#endif
-);
-const MessageType1 ParserMessages::noSuchAttributeToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-103
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a member of a group specified for any attribute"
-#endif
-);
-const MessageType0 ParserMessages::attributeNameShorttag(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-104
-#ifndef SP_NO_MESSAGE_TEXT
-,"the name and vi delimiter can be omitted from an attribute specification only if SHORTTAG YES is specified"
-#endif
-);
-const MessageType1 ParserMessages::noSuchAttribute(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-105
-#ifndef SP_NO_MESSAGE_TEXT
-,"there is no attribute %1"
-#endif
-);
-const MessageType0 ParserMessages::attributeValueExpected(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-106
-#ifndef SP_NO_MESSAGE_TEXT
-,"an attribute value specification must start with a literal or a name character"
-#endif
-);
-const MessageType1 ParserMessages::nameTokenLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-107
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of name token must not exceed NAMELEN (%1)"
-#endif
-);
-const MessageType0 ParserMessages::attributeSpecLiteral(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-108
-#ifndef SP_NO_MESSAGE_TEXT
-,"an attribute value literal can occur in an attribute specification list only after a vi delimiter"
-#endif
-);
-const MessageType1 ParserMessages::duplicateAttributeSpec(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-109
-#ifndef SP_NO_MESSAGE_TEXT
-,"duplicate specification of attribute %1"
-#endif
-);
-const MessageType1 ParserMessages::duplicateAttributeDef(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-110
-#ifndef SP_NO_MESSAGE_TEXT
-,"duplicate definition of attribute %1"
-#endif
-);
-const MessageType0 ParserMessages::emptyDataAttributeSpec(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-111
-#ifndef SP_NO_MESSAGE_TEXT
-,"data attribute specification must be omitted if attribute specification list is empty"
-#endif
-);
-const MessageType0 ParserMessages::markedSectionEnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-112
-#ifndef SP_NO_MESSAGE_TEXT
-,"marked section end not in marked section declaration"
-#endif
-);
-const MessageType1 ParserMessages::markedSectionLevel(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-113
-#ifndef SP_NO_MESSAGE_TEXT
-,"number of open marked sections must not exceed TAGLVL (%1)"
-#endif
-);
-const MessageType0L ParserMessages::unclosedMarkedSection(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-114
-#ifndef SP_NO_MESSAGE_TEXT
-,"missing marked section end"
-,"marked section started here"
-#endif
-);
-const MessageType0 ParserMessages::specialParseEntityEnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-116
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity end in character data, replaceable character data or ignored marked section"
-#endif
-);
-const MessageType2 ParserMessages::normalizedAttributeValueLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-117
-#ifndef SP_NO_MESSAGE_TEXT
-,"normalized length of attribute value literal must not exceed LITLEN (%1); length was %2"
-#endif
-);
-const MessageType0 ParserMessages::attributeValueSyntax(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-118
-#ifndef SP_NO_MESSAGE_TEXT
-,"syntax of attribute value does not conform to declared value"
-#endif
-);
-const MessageType2 ParserMessages::attributeValueChar(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-119
-#ifndef SP_NO_MESSAGE_TEXT
-,"character %1 is not allowed in the value of attribute %2"
-#endif
-);
-const MessageType1 ParserMessages::attributeValueMultiple(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-120
-#ifndef SP_NO_MESSAGE_TEXT
-,"value of attribute %1 must be a single token"
-#endif
-);
-const MessageType2 ParserMessages::attributeValueNumberToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-121
-#ifndef SP_NO_MESSAGE_TEXT
-,"value of attribute %2 invalid: %1 cannot start a number token"
-#endif
-);
-const MessageType2 ParserMessages::attributeValueName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-122
-#ifndef SP_NO_MESSAGE_TEXT
-,"value of attribute %2 invalid: %1 cannot start a name"
-#endif
-);
-const MessageType1 ParserMessages::attributeMissing(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-123
-#ifndef SP_NO_MESSAGE_TEXT
-,"non-impliable attribute %1 not specified but OMITTAG NO and SHORTTAG NO"
-#endif
-);
-const MessageType1 ParserMessages::requiredAttributeMissing(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-124
-#ifndef SP_NO_MESSAGE_TEXT
-,"required attribute %1 not specified"
-#endif
-);
-const MessageType1 ParserMessages::currentAttributeMissing(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-125
-#ifndef SP_NO_MESSAGE_TEXT
-,"first occurrence of current attribute %1 not specified"
-#endif
-);
-const MessageType1 ParserMessages::invalidNotationAttribute(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-126
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a notation name"
-#endif
-);
-const MessageType1 ParserMessages::invalidEntityAttribute(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-127
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a general entity name"
-#endif
-);
-const MessageType3 ParserMessages::attributeValueNotInGroup(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-128
-#ifndef SP_NO_MESSAGE_TEXT
-,"value of attribute %2 cannot be %1; must be one of %3"
-#endif
-);
-const MessageType1 ParserMessages::notDataOrSubdocEntity(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-129
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a data or subdocument entity"
-#endif
-);
-const MessageType3 ParserMessages::ambiguousModelInitial(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-130
-#ifndef SP_NO_MESSAGE_TEXT
-,"content model is ambiguous: when no tokens have been matched, both the %2 and %3 occurrences of %1 are possible"
-#endif
-);
-const MessageType5 ParserMessages::ambiguousModel(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-131
-#ifndef SP_NO_MESSAGE_TEXT
-,"content model is ambiguous: when the current token is the %2 occurrence of %1, both the %4 and %5 occurrences of %3 are possible"
-#endif
-);
-const MessageType5 ParserMessages::ambiguousModelSingleAnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-132
-#ifndef SP_NO_MESSAGE_TEXT
-,"content model is ambiguous: when the current token is the %2 occurrence of %1 and the innermost containing and group has been matched, both the %4 and %5 occurrences of %3 are possible"
-#endif
-);
-const MessageType6 ParserMessages::ambiguousModelMultipleAnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-133
-#ifndef SP_NO_MESSAGE_TEXT
-,"content model is ambiguous: when the current token is the %2 occurrence of %1 and the innermost %3 containing and groups have been matched, both the %5 and %6 occurrences of %4 are possible"
-#endif
-);
-const MessageType1L ParserMessages::commentDeclarationCharacter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-134
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid comment declaration: found character %1 outside comment but inside comment declaration"
-,"comment declaration started here"
-#endif
-);
-const MessageType1 ParserMessages::nonSgmlCharacter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-136
-#ifndef SP_NO_MESSAGE_TEXT
-,"non SGML character number %1"
-#endif
-);
-const MessageType0 ParserMessages::dataMarkedSectionDeclSubset(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-137
-#ifndef SP_NO_MESSAGE_TEXT
-,"data or replaceable character data in declaration subset"
-#endif
-);
-const MessageType1L ParserMessages::duplicateId(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-138
-#ifndef SP_NO_MESSAGE_TEXT
-,"ID %1 already defined"
-,"ID %1 first defined here"
-#endif
-);
-const MessageType1 ParserMessages::notFixedValue(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-140
-#ifndef SP_NO_MESSAGE_TEXT
-,"value of fixed attribute %1 not equal to default"
-#endif
-);
-const MessageType1 ParserMessages::sdCommentSignificant(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-141
-#ifndef SP_NO_MESSAGE_TEXT
-,"character %1 is not significant in the reference concrete syntax and so cannot occur in a comment in the SGML declaration"
-#endif
-);
-const MessageType1 ParserMessages::standardVersion(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-142
-#ifndef SP_NO_MESSAGE_TEXT
-,"minimum data of first minimum literal in SGML declaration must be \"ISO 8879:1986\" or \"ISO 8879:1986 (ENR)\" or \"ISO 8879:1986 (WWW)\" not %1"
-#endif
-);
-const MessageType1 ParserMessages::namingBeforeLcnmstrt(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-143
-#ifndef SP_NO_MESSAGE_TEXT
-,"parameter before \"LCNMSTRT\" must be \"NAMING\" not %1"
-#endif
-);
-const MessageType1 ParserMessages::sdEntityEnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-144
-#ifndef SP_NO_MESSAGE_TEXT
-,"unexpected entity end in SGML declaration: only %1, S separators and comments allowed"
-#endif
-);
-const MessageType2 ParserMessages::sdInvalidNameToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-145
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 invalid: only %2 and parameter separators allowed"
-#endif
-);
-const MessageType1 ParserMessages::numberTooBig(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-146
-#ifndef SP_NO_MESSAGE_TEXT
-,"magnitude of %1 too big (length exceeds NAMELEN)"
-#endif
-);
-const MessageType1 ParserMessages::sdLiteralSignificant(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-147
-#ifndef SP_NO_MESSAGE_TEXT
-,"character %1 is not significant in the reference concrete syntax and so cannot occur in a literal in the SGML declaration except as the replacement of a character reference"
-#endif
-);
-const MessageType1 ParserMessages::syntaxCharacterNumber(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-148
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a valid syntax reference character number"
-#endif
-);
-const MessageType0 ParserMessages::sdParameterEntity(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-149
-#ifndef SP_NO_MESSAGE_TEXT
-,"a parameter entity reference cannot occur in an SGML declaration"
-#endif
-);
-const MessageType2 ParserMessages::sdParamInvalidToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-150
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 invalid: only %2 and parameter separators are allowed"
-#endif
-);
-const MessageType0 ParserMessages::giveUp(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-151
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot continue because of previous errors"
-#endif
-);
-const MessageType1 ParserMessages::sdMissingCharacters(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-152
-#ifndef SP_NO_MESSAGE_TEXT
-,"SGML declaration cannot be parsed because the character set does not contain characters having the following numbers in ISO 646: %1"
-#endif
-);
-const MessageType1 ParserMessages::missingMinimumChars(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-153
-#ifndef SP_NO_MESSAGE_TEXT
-,"the specified character set is invalid because it does not contain the minimum data characters having the following numbers in ISO 646: %1"
-#endif
-);
-const MessageType1 ParserMessages::duplicateCharNumbers(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-154
-#ifndef SP_NO_MESSAGE_TEXT
-,"character numbers declared more than once: %1"
-#endif
-);
-const MessageType1 ParserMessages::codeSetHoles(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-155
-#ifndef SP_NO_MESSAGE_TEXT
-,"character numbers should have been declared UNUSED: %1"
-#endif
-);
-const MessageType1 ParserMessages::basesetCharsMissing(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-156
-#ifndef SP_NO_MESSAGE_TEXT
-,"character numbers missing in base set: %1"
-#endif
-);
-const MessageType1 ParserMessages::documentCharMax(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-157
-#ifndef SP_NO_MESSAGE_TEXT
-,"characters in the document character set with numbers exceeding %1 not supported"
-#endif
-);
-const MessageType1 ParserMessages::fpiMissingField(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-158
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid formal public identifier %1: missing //"
-#endif
-);
-const MessageType1 ParserMessages::fpiMissingTextClassSpace(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-159
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid formal public identifier %1: no SPACE after public text class"
-#endif
-);
-const MessageType1 ParserMessages::fpiInvalidTextClass(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-160
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid formal public identifier %1: invalid public text class"
-#endif
-);
-const MessageType1 ParserMessages::fpiInvalidLanguage(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-161
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid formal public identifier %1: public text language must be a name containing only upper case letters"
-#endif
-);
-const MessageType1 ParserMessages::fpiIllegalDisplayVersion(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-162
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid formal public identifer %1: public text display version not permitted with this text class"
-#endif
-);
-const MessageType1 ParserMessages::fpiExtraField(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-163
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid formal public identifier %1: extra field"
-#endif
-);
-const MessageType0 ParserMessages::notationIdentifierTextClass(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-164
-#ifndef SP_NO_MESSAGE_TEXT
-,"public text class of public identifier in notation identifier must be NOTATION"
-#endif
-);
-const MessageType1 ParserMessages::unknownBaseset(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-165
-#ifndef SP_NO_MESSAGE_TEXT
-,"base character set %1 is unknown"
-#endif
-);
-const MessageType2 ParserMessages::lexicalAmbiguity(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-166
-#ifndef SP_NO_MESSAGE_TEXT
-,"delimiter set is ambiguous: %1 and %2 can be recognized in the same mode"
-#endif
-);
-const MessageType1 ParserMessages::missingSignificant(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-167
-#ifndef SP_NO_MESSAGE_TEXT
-,"characters with the following numbers in the syntax reference character set are significant in the concrete syntax but are not in the document character set: %1"
-#endif
-);
-const MessageType1 ParserMessages::translateSyntaxCharDoc(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-168
-#ifndef SP_NO_MESSAGE_TEXT
-,"there is no unique character in the document character set corresponding to character number %1 in the syntax reference character set"
-#endif
-);
-const MessageType1 ParserMessages::translateSyntaxCharInternal(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-169
-#ifndef SP_NO_MESSAGE_TEXT
-,"there is no unique character in the internal character set corresponding to character number %1 in the syntax reference character set"
-#endif
-);
-const MessageType1 ParserMessages::missingSyntaxChar(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-170
-#ifndef SP_NO_MESSAGE_TEXT
-,"the character with number %1 in ISO 646 is significant but has no representation in the syntax reference character set"
-#endif
-);
-const MessageType1 ParserMessages::unknownCapacitySet(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-171
-#ifndef SP_NO_MESSAGE_TEXT
-,"capacity set %1 is unknown"
-#endif
-);
-const MessageType1 ParserMessages::duplicateCapacity(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-172
-#ifndef SP_NO_MESSAGE_TEXT
-,"capacity %1 already specified"
-#endif
-);
-const MessageType1 ParserMessages::capacityExceedsTotalcap(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-173
-#ifndef SP_NO_MESSAGE_TEXT
-,"value of capacity %1 exceeds value of TOTALCAP"
-#endif
-);
-const MessageType1 ParserMessages::unknownPublicSyntax(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-174
-#ifndef SP_NO_MESSAGE_TEXT
-,"syntax %1 is unknown"
-#endif
-);
-const MessageType0 ParserMessages::nmstrtLength(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-175
-#ifndef SP_NO_MESSAGE_TEXT
-,"UCNMSTRT must have the same number of characters as LCNMSTRT"
-#endif
-);
-const MessageType0 ParserMessages::nmcharLength(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-176
-#ifndef SP_NO_MESSAGE_TEXT
-,"UCNMCHAR must have the same number of characters as LCNMCHAR"
-#endif
-);
-const MessageType1 ParserMessages::subdocLevel(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-177
-#ifndef SP_NO_MESSAGE_TEXT
-,"number of open subdocuments exceeds quantity specified for SUBDOC parameter in SGML declaration (%1)"
-#endif
-);
-const MessageType1 ParserMessages::subdocEntity(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-178
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity %1 declared SUBDOC, but SUBDOC NO specified in SGML declaration"
-#endif
-);
-const MessageType0 ParserMessages::parameterEntityNotEnded(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-179
-#ifndef SP_NO_MESSAGE_TEXT
-,"a parameter entity referenced in a parameter separator must end in the same declaration"
-#endif
-);
-const MessageType1 ParserMessages::missingId(
-MessageType::idrefError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-180
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference to non-existent ID %1"
-#endif
-);
-const MessageType1 ParserMessages::dtdUndefinedElement(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-181
-#ifndef SP_NO_MESSAGE_TEXT
-,"generic identifier %1 used in DTD but not defined"
-#endif
-);
-const MessageType1 ParserMessages::elementNotFinishedDocumentEnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-182
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 not finished but document ended"
-#endif
-);
-const MessageType0 ParserMessages::subdocGiveUp(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-183
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot continue with subdocument because of previous errors"
-#endif
-);
-const MessageType0 ParserMessages::noDtd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-184
-#ifndef SP_NO_MESSAGE_TEXT
-,"no document type declaration; will parse without validation"
-#endif
-);
-const MessageType0 ParserMessages::noDtdSubset(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-185
-#ifndef SP_NO_MESSAGE_TEXT
-,"no internal or external document type declaration subset; will parse without validation"
-#endif
-);
-const MessageType0 ParserMessages::notSgml(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-186
-#ifndef SP_NO_MESSAGE_TEXT
-,"this is not an SGML document"
-#endif
-);
-const MessageType1 ParserMessages::taglen(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-187
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of start-tag before interpretation of literals must not exceed TAGLEN (%1)"
-#endif
-);
-const MessageType0 ParserMessages::groupParameterEntityNotEnded(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-188
-#ifndef SP_NO_MESSAGE_TEXT
-,"a parameter entity referenced in a token separator must end in the same group"
-#endif
-);
-const MessageType1 ParserMessages::invalidSgmlChar(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-189
-#ifndef SP_NO_MESSAGE_TEXT
-,"the following character numbers are shunned characters that are not significant and so should have been declared UNUSED: %1"
-#endif
-);
-const MessageType1 ParserMessages::translateDocChar(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-190
-#ifndef SP_NO_MESSAGE_TEXT
-,"there is no unique character in the specified document character set corresponding to character number %1 in ISO 646"
-#endif
-);
-const MessageType1 ParserMessages::attributeValueLengthNeg(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-191
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of attribute value must not exceed LITLEN less NORMSEP (-%1)"
-#endif
-);
-const MessageType1 ParserMessages::tokenizedAttributeValueLengthNeg(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-192
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of tokenized attribute value must not exceed LITLEN less NORMSEP (-%1)"
-#endif
-);
-const MessageType1 ParserMessages::scopeInstanceQuantity(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-193
-#ifndef SP_NO_MESSAGE_TEXT
-,"concrete syntax scope is INSTANCE but value of %1 quantity is less than value in reference quantity set"
-#endif
-);
-const MessageType1 ParserMessages::basesetTextClass(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-194
-#ifndef SP_NO_MESSAGE_TEXT
-,"public text class of formal public identifier of base character set must be CHARSET"
-#endif
-);
-const MessageType1 ParserMessages::capacityTextClass(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-195
-#ifndef SP_NO_MESSAGE_TEXT
-,"public text class of formal public identifier of capacity set must be CAPACITY"
-#endif
-);
-const MessageType1 ParserMessages::syntaxTextClass(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-196
-#ifndef SP_NO_MESSAGE_TEXT
-,"public text class of formal public identifier of concrete syntax must be SYNTAX"
-#endif
-);
-const MessageType0 ParserMessages::msocharRequiresMsichar(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-197
-#ifndef SP_NO_MESSAGE_TEXT
-,"when there is an MSOCHAR there must also be an MSICHAR"
-#endif
-);
-const MessageType1 ParserMessages::switchNotMarkup(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-198
-#ifndef SP_NO_MESSAGE_TEXT
-,"character number %1 in the syntax reference character set was specified as a character to be switched but is not a markup character"
-#endif
-);
-const MessageType1 ParserMessages::switchNotInCharset(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-199
-#ifndef SP_NO_MESSAGE_TEXT
-,"character number %1 was specified as a character to be switched but is not in the syntax reference character set"
-#endif
-);
-const MessageType1 ParserMessages::ambiguousDocCharacter(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-200
-#ifndef SP_NO_MESSAGE_TEXT
-,"character numbers %1 in the document character set have been assigned the same meaning, but this is the meaning of a significant character"
-#endif
-);
-const MessageType1 ParserMessages::oneFunction(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-201
-#ifndef SP_NO_MESSAGE_TEXT
-,"character number %1 assigned to more than one function"
-#endif
-);
-const MessageType1 ParserMessages::duplicateFunctionName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-202
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is already a function name"
-#endif
-);
-const MessageType1 ParserMessages::missingSignificant646(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-203
-#ifndef SP_NO_MESSAGE_TEXT
-,"characters with the following numbers in ISO 646 are significant in the concrete syntax but are not in the document character set: %1"
-#endif
-);
-const MessageType1 ParserMessages::generalDelimAllFunction(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-204
-#ifndef SP_NO_MESSAGE_TEXT
-,"general delimiter %1 consists solely of function characters"
-#endif
-);
-const MessageType1 ParserMessages::nmcharLetter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-205
-#ifndef SP_NO_MESSAGE_TEXT
-,"letters assigned to LCNMCHAR, UCNMCHAR, LCNMSTRT or UCNMSTRT: %1"
-#endif
-);
-const MessageType1 ParserMessages::nmcharDigit(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-206
-#ifndef SP_NO_MESSAGE_TEXT
-,"digits assigned to LCNMCHAR, UCNMCHAR, LCNMSTRT or UCNMSTRT: %1"
-#endif
-);
-const MessageType1 ParserMessages::nmcharRe(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-207
-#ifndef SP_NO_MESSAGE_TEXT
-,"character number %1 cannot be assigned to LCNMCHAR, UCNMCHAR, LCNMSTRT or UCNMSTRT because it is RE"
-#endif
-);
-const MessageType1 ParserMessages::nmcharRs(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-208
-#ifndef SP_NO_MESSAGE_TEXT
-,"character number %1 cannot be assigned to LCNMCHAR, UCNMCHAR, LCNMSTRT or UCNMSTRT because it is RS"
-#endif
-);
-const MessageType1 ParserMessages::nmcharSpace(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-209
-#ifndef SP_NO_MESSAGE_TEXT
-,"character number %1 cannot be assigned to LCNMCHAR, UCNMCHAR, LCNMSTRT or UCNMSTRT because it is SPACE"
-#endif
-);
-const MessageType1 ParserMessages::nmcharSepchar(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-210
-#ifndef SP_NO_MESSAGE_TEXT
-,"separator characters assigned to LCNMCHAR, UCNMCHAR, LCNMSTRT or UCNMSTRT: %1"
-#endif
-);
-const MessageType1 ParserMessages::switchLetterDigit(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-211
-#ifndef SP_NO_MESSAGE_TEXT
-,"character number %1 cannot be switched because it is a Digit, LC Letter or UC Letter"
-#endif
-);
-const MessageType0 ParserMessages::zeroNumberOfCharacters(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-212
-#ifndef SP_NO_MESSAGE_TEXT
-,"pointless for number of characters to be 0"
-#endif
-);
-const MessageType1 ParserMessages::nameReferenceReservedName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-213
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 cannot be the replacement for a reference reserved name because it is another reference reserved name"
-#endif
-);
-const MessageType1 ParserMessages::ambiguousReservedName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-214
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 cannot be the replacement for a reference reserved name because it is the replacement of another reference reserved name"
-#endif
-);
-const MessageType1 ParserMessages::duplicateReservedName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-215
-#ifndef SP_NO_MESSAGE_TEXT
-,"replacement for reserved name %1 already specified"
-#endif
-);
-const MessageType1 ParserMessages::reservedNameSyntax(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-216
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a valid name in the declared concrete syntax"
-#endif
-);
-const MessageType1 ParserMessages::multipleBSequence(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-217
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a valid short reference delimiter because it has more than one B sequence"
-#endif
-);
-const MessageType1 ParserMessages::blankAdjacentBSequence(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-218
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a valid short reference delimiter because it is adjacent to a character that can occur in a blank sequence"
-#endif
-);
-const MessageType2 ParserMessages::delimiterLength(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-219
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of delimiter %1 exceeds NAMELEN (%2)"
-#endif
-);
-const MessageType2 ParserMessages::reservedNameLength(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-220
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of reserved name %1 exceeds NAMELEN (%2)"
-#endif
-);
-const MessageType1 ParserMessages::nmcharNmstrt(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-221
-#ifndef SP_NO_MESSAGE_TEXT
-,"character numbers assigned to both LCNMCHAR or UCNMCHAR and LCNMSTRT or UCNMSTRT: %1"
-#endif
-);
-const MessageType0 ParserMessages::scopeInstanceSyntaxCharset(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-222
-#ifndef SP_NO_MESSAGE_TEXT
-,"when the concrete syntax scope is INSTANCE the syntax reference character set of the declared syntax must be the same as that of the reference concrete syntax"
-#endif
-);
-const MessageType0 ParserMessages::emptyOmitEndTag(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-223
-#ifndef SP_NO_MESSAGE_TEXT
-,"end-tag minimization should be \"O\" for element with declared content of EMPTY"
-#endif
-);
-const MessageType1 ParserMessages::conrefOmitEndTag(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-224
-#ifndef SP_NO_MESSAGE_TEXT
-,"end-tag minimization should be \"O\" for element %1 because it has CONREF attribute"
-#endif
-);
-const MessageType1 ParserMessages::conrefEmpty(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-225
-#ifndef SP_NO_MESSAGE_TEXT
-,"element %1 has a declared content of EMPTY and a CONREF attribute"
-#endif
-);
-const MessageType1 ParserMessages::notationEmpty(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-226
-#ifndef SP_NO_MESSAGE_TEXT
-,"element %1 has a declared content of EMPTY and a NOTATION attribute"
-#endif
-);
-const MessageType0 ParserMessages::dataAttributeDeclaredValue(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-227
-#ifndef SP_NO_MESSAGE_TEXT
-,"declared value of data attribute cannot be ENTITY, ENTITIES, ID, IDREF, IDREFS or NOTATION"
-#endif
-);
-const MessageType0 ParserMessages::dataAttributeDefaultValue(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-228
-#ifndef SP_NO_MESSAGE_TEXT
-,"default value of data attribute cannot be CONREF or CURRENT"
-#endif
-);
-const MessageType2 ParserMessages::attcnt(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-229
-#ifndef SP_NO_MESSAGE_TEXT
-,"number of attribute names and name tokens (%1) exceeds ATTCNT (%2)"
-#endif
-);
-const MessageType0 ParserMessages::idDeclaredValue(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-230
-#ifndef SP_NO_MESSAGE_TEXT
-,"if the declared value is ID the default value must be IMPLIED or REQUIRED"
-#endif
-);
-const MessageType1 ParserMessages::multipleIdAttributes(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-231
-#ifndef SP_NO_MESSAGE_TEXT
-,"the attribute definition list already declared attribute %1 as the ID attribute"
-#endif
-);
-const MessageType1 ParserMessages::multipleNotationAttributes(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-232
-#ifndef SP_NO_MESSAGE_TEXT
-,"the attribute definition list already declared attribute %1 as the NOTATION attribute"
-#endif
-);
-const MessageType1 ParserMessages::duplicateAttributeToken(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-233
-#ifndef SP_NO_MESSAGE_TEXT
-,"token %1 occurs more than once in attribute definition list"
-#endif
-);
-const MessageType1 ParserMessages::notationNoAttributes(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-234
-#ifndef SP_NO_MESSAGE_TEXT
-,"no attributes defined for notation %1"
-#endif
-);
-const MessageType2 ParserMessages::entityNotationUndefined(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-235
-#ifndef SP_NO_MESSAGE_TEXT
-,"notation %1 for entity %2 undefined"
-#endif
-);
-const MessageType2 ParserMessages::mapEntityUndefined(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-236
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity %1 undefined in short reference map %2"
-#endif
-);
-const MessageType1 ParserMessages::attlistNotationUndefined(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-237
-#ifndef SP_NO_MESSAGE_TEXT
-,"notation %1 is undefined but had attribute definition"
-#endif
-);
-const MessageType1 ParserMessages::bracketedLitlen(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-238
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of interpreted parameter literal in bracketed text plus the length of the bracketing delimiters must not exceed LITLEN (%1)"
-#endif
-);
-const MessageType1 ParserMessages::genericIdentifierLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-239
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of rank stem plus length of rank suffix must not exceed NAMELEN (%1)"
-#endif
-);
-const MessageType0 ParserMessages::instanceStartOmittag(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-240
-#ifndef SP_NO_MESSAGE_TEXT
-,"document instance must start with document element"
-#endif
-);
-const MessageType1 ParserMessages::grplvl(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-241
-#ifndef SP_NO_MESSAGE_TEXT
-,"content model nesting level exceeds GRPLVL (%1)"
-#endif
-);
-const MessageType1 ParserMessages::grpgtcnt(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-242
-#ifndef SP_NO_MESSAGE_TEXT
-,"grand total of content tokens exceeds GRPGTCNT (%1)"
-#endif
-);
-const MessageType0 ParserMessages::unclosedStartTagShorttag(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-243
-#ifndef SP_NO_MESSAGE_TEXT
-,"unclosed start-tag requires SHORTTAG YES"
-#endif
-);
-const MessageType0 ParserMessages::netEnablingStartTagShorttag(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-244
-#ifndef SP_NO_MESSAGE_TEXT
-,"net-enabling start-tag requires SHORTTAG YES"
-#endif
-);
-const MessageType0 ParserMessages::unclosedEndTagShorttag(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-245
-#ifndef SP_NO_MESSAGE_TEXT
-,"unclosed end-tag requires SHORTTAG YES"
-#endif
-);
-const MessageType0 ParserMessages::multipleDtds(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-246
-#ifndef SP_NO_MESSAGE_TEXT
-,"DTDs other than base allowed only if CONCUR YES or EXPLICIT YES"
-#endif
-);
-const MessageType0 ParserMessages::afterDocumentElementEntityEnd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-247
-#ifndef SP_NO_MESSAGE_TEXT
-,"end of entity other than document entity after document element"
-#endif
-);
-const MessageType1 ParserMessages::declarationAfterDocumentElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-248
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 declaration illegal after document element"
-#endif
-);
-const MessageType0 ParserMessages::characterReferenceAfterDocumentElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-249
-#ifndef SP_NO_MESSAGE_TEXT
-,"character reference illegal after document element"
-#endif
-);
-const MessageType0 ParserMessages::entityReferenceAfterDocumentElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-250
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity reference illegal after document element"
-#endif
-);
-const MessageType0 ParserMessages::markedSectionAfterDocumentElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-251
-#ifndef SP_NO_MESSAGE_TEXT
-,"marked section illegal after document element"
-#endif
-);
-const MessageType3 ParserMessages::requiredElementExcluded(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-252
-#ifndef SP_NO_MESSAGE_TEXT
-,"the %1 occurrence of %2 in the content model for %3 cannot be excluded at this point because it is contextually required"
-#endif
-);
-const MessageType3 ParserMessages::invalidExclusion(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-253
-#ifndef SP_NO_MESSAGE_TEXT
-,"the %1 occurrence of %2 in the content model for %3 cannot be excluded because it is neither inherently optional nor a member of an or group"
-#endif
-);
-const MessageType0 ParserMessages::attributeValueShorttag(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-254
-#ifndef SP_NO_MESSAGE_TEXT
-,"an attribute value specification must be an attribute value literal unless SHORTTAG YES is specified"
-#endif
-);
-const MessageType0 ParserMessages::conrefNotation(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-255
-#ifndef SP_NO_MESSAGE_TEXT
-,"value cannot be specified both for notation attribute and content reference attribute"
-#endif
-);
-const MessageType1 ParserMessages::duplicateNotationDeclaration(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-256
-#ifndef SP_NO_MESSAGE_TEXT
-,"notation %1 already defined"
-#endif
-);
-const MessageType1L ParserMessages::duplicateShortrefDeclaration(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-257
-#ifndef SP_NO_MESSAGE_TEXT
-,"short reference map %1 already defined"
-,"first defined here"
-#endif
-);
-const MessageType1 ParserMessages::duplicateDelimGeneral(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-259
-#ifndef SP_NO_MESSAGE_TEXT
-,"general delimiter role %1 already defined"
-#endif
-);
-const MessageType1 ParserMessages::idrefGrpcnt(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-260
-#ifndef SP_NO_MESSAGE_TEXT
-,"number of id references in start-tag must not exceed GRPCNT (%1)"
-#endif
-);
-const MessageType1 ParserMessages::entityNameGrpcnt(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-261
-#ifndef SP_NO_MESSAGE_TEXT
-,"number of entity names in attribute specification list must not exceed GRPCNT (%1)"
-#endif
-);
-const MessageType2 ParserMessages::attsplen(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-262
-#ifndef SP_NO_MESSAGE_TEXT
-,"normalized length of attribute specification list must not exceed ATTSPLEN (%1); length was %2"
-#endif
-);
-const MessageType1 ParserMessages::duplicateDelimShortref(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-263
-#ifndef SP_NO_MESSAGE_TEXT
-,"short reference delimiter %1 already specified"
-#endif
-);
-const MessageType1 ParserMessages::duplicateDelimShortrefSet(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-264
-#ifndef SP_NO_MESSAGE_TEXT
-,"single character short references were already specified for character numbers: %1"
-#endif
-);
-const MessageType1 ParserMessages::defaultEntityInAttribute(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-265
-#ifndef SP_NO_MESSAGE_TEXT
-,"default entity used in entity attribute %1"
-#endif
-);
-const MessageType1 ParserMessages::defaultEntityReference(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-266
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference to entity %1 uses default entity "
-#endif
-);
-const MessageType2 ParserMessages::mapDefaultEntity(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-267
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity %1 in short reference map %2 uses default entity"
-#endif
-);
-const MessageType1 ParserMessages::noSuchDtd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-268
-#ifndef SP_NO_MESSAGE_TEXT
-,"no DTD %1 declared"
-#endif
-);
-const MessageType1 ParserMessages::noLpdSubset(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-269
-#ifndef SP_NO_MESSAGE_TEXT
-,"LPD %1 has neither internal nor external subset"
-#endif
-);
-const MessageType0 ParserMessages::assocElementDifferentAtts(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-270
-#ifndef SP_NO_MESSAGE_TEXT
-,"element types have different link attribute definitions"
-#endif
-);
-const MessageType1 ParserMessages::duplicateLinkSet(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-271
-#ifndef SP_NO_MESSAGE_TEXT
-,"link set %1 already defined"
-#endif
-);
-const MessageType0 ParserMessages::emptyResultAttributeSpec(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-272
-#ifndef SP_NO_MESSAGE_TEXT
-,"empty result attribute specification"
-#endif
-);
-const MessageType1 ParserMessages::noSuchSourceElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-273
-#ifndef SP_NO_MESSAGE_TEXT
-,"no source element type %1"
-#endif
-);
-const MessageType1 ParserMessages::noSuchResultElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-274
-#ifndef SP_NO_MESSAGE_TEXT
-,"no result element type %1"
-#endif
-);
-const MessageType0 ParserMessages::documentEndLpdSubset(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-275
-#ifndef SP_NO_MESSAGE_TEXT
-,"end of document in LPD subset"
-#endif
-);
-const MessageType1 ParserMessages::lpdSubsetDeclaration(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-276
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 declaration not allowed in LPD subset"
-#endif
-);
-const MessageType0 ParserMessages::idlinkDeclSimple(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-277
-#ifndef SP_NO_MESSAGE_TEXT
-,"ID link set declaration not allowed in simple link declaration subset"
-#endif
-);
-const MessageType0 ParserMessages::linkDeclSimple(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-278
-#ifndef SP_NO_MESSAGE_TEXT
-,"link set declaration not allowed in simple link declaration subset"
-#endif
-);
-const MessageType1 ParserMessages::simpleLinkAttlistElement(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-279
-#ifndef SP_NO_MESSAGE_TEXT
-,"attributes can only be defined for base document element (not %1) in simple link declaration subset"
-#endif
-);
-const MessageType0 ParserMessages::shortrefOnlyInBaseDtd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-280
-#ifndef SP_NO_MESSAGE_TEXT
-,"a short reference mapping declaration is allowed only in the base DTD"
-#endif
-);
-const MessageType0 ParserMessages::usemapOnlyInBaseDtd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-281
-#ifndef SP_NO_MESSAGE_TEXT
-,"a short reference use declaration is allowed only in the base DTD"
-#endif
-);
-const MessageType0 ParserMessages::linkAttributeDefaultValue(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-282
-#ifndef SP_NO_MESSAGE_TEXT
-,"default value of link attribute cannot be CURRENT or CONREF"
-#endif
-);
-const MessageType0 ParserMessages::linkAttributeDeclaredValue(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-283
-#ifndef SP_NO_MESSAGE_TEXT
-,"declared value of link attribute cannot be ID, IDREF, IDREFS or NOTATION"
-#endif
-);
-const MessageType0 ParserMessages::simpleLinkFixedAttribute(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-284
-#ifndef SP_NO_MESSAGE_TEXT
-,"only fixed attributes can be defined in simple LPD"
-#endif
-);
-const MessageType0 ParserMessages::duplicateIdLinkSet(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-285
-#ifndef SP_NO_MESSAGE_TEXT
-,"only one ID link set declaration allowed in an LPD subset"
-#endif
-);
-const MessageType1 ParserMessages::noInitialLinkSet(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-286
-#ifndef SP_NO_MESSAGE_TEXT
-,"no initial link set defined for LPD %1"
-#endif
-);
-const MessageType1 ParserMessages::notationUndefinedSourceDtd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-287
-#ifndef SP_NO_MESSAGE_TEXT
-,"notation %1 not defined in source DTD"
-#endif
-);
-const MessageType0 ParserMessages::simpleLinkResultNotImplied(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-288
-#ifndef SP_NO_MESSAGE_TEXT
-,"result document type in simple link specification must be implied"
-#endif
-);
-const MessageType0 ParserMessages::simpleLinkFeature(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-289
-#ifndef SP_NO_MESSAGE_TEXT
-,"simple link requires SIMPLE YES"
-#endif
-);
-const MessageType0 ParserMessages::implicitLinkFeature(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-290
-#ifndef SP_NO_MESSAGE_TEXT
-,"implicit link requires IMPLICIT YES"
-#endif
-);
-const MessageType0 ParserMessages::explicitLinkFeature(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-291
-#ifndef SP_NO_MESSAGE_TEXT
-,"explicit link requires EXPLICIT YES"
-#endif
-);
-const MessageType0 ParserMessages::lpdBeforeBaseDtd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-292
-#ifndef SP_NO_MESSAGE_TEXT
-,"LPD not allowed before first DTD"
-#endif
-);
-const MessageType0 ParserMessages::dtdAfterLpd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-293
-#ifndef SP_NO_MESSAGE_TEXT
-,"DTD not allowed after an LPD"
-#endif
-);
-const MessageType1 ParserMessages::unstableLpdGeneralEntity(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-294
-#ifndef SP_NO_MESSAGE_TEXT
-,"definition of general entity %1 is unstable"
-#endif
-);
-const MessageType1 ParserMessages::unstableLpdParameterEntity(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-295
-#ifndef SP_NO_MESSAGE_TEXT
-,"definition of parameter entity %1 is unstable"
-#endif
-);
-const MessageType1 ParserMessages::multipleIdLinkRuleAttribute(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-296
-#ifndef SP_NO_MESSAGE_TEXT
-,"multiple link rules for ID %1 but not all have link attribute specifications"
-#endif
-);
-const MessageType1 ParserMessages::multipleLinkRuleAttribute(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-297
-#ifndef SP_NO_MESSAGE_TEXT
-,"multiple link rules for element type %1 but not all have link attribute specifications"
-#endif
-);
-const MessageType2 ParserMessages::uselinkBadLinkSet(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-298
-#ifndef SP_NO_MESSAGE_TEXT
-,"link type %1 does not have a link set %2"
-#endif
-);
-const MessageType1 ParserMessages::uselinkSimpleLpd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-299
-#ifndef SP_NO_MESSAGE_TEXT
-,"link set use declaration for simple link process"
-#endif
-);
-const MessageType1 ParserMessages::uselinkBadLinkType(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-300
-#ifndef SP_NO_MESSAGE_TEXT
-,"no link type %1"
-#endif
-);
-const MessageType1 ParserMessages::duplicateDtdLpd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-301
-#ifndef SP_NO_MESSAGE_TEXT
-,"both document type and link type %1"
-#endif
-);
-const MessageType1 ParserMessages::duplicateLpd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-302
-#ifndef SP_NO_MESSAGE_TEXT
-,"link type %1 already defined"
-#endif
-);
-const MessageType1 ParserMessages::duplicateDtd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-303
-#ifndef SP_NO_MESSAGE_TEXT
-,"document type %1 already defined"
-#endif
-);
-const MessageType1 ParserMessages::undefinedLinkSet(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-304
-#ifndef SP_NO_MESSAGE_TEXT
-,"link set %1 used in LPD but not defined"
-#endif
-);
-const MessageType1 ParserMessages::duplicateImpliedResult(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-305
-#ifndef SP_NO_MESSAGE_TEXT
-,"#IMPLIED already linked to result element type %1"
-#endif
-);
-const MessageType1 ParserMessages::simpleLinkCount(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-306
-#ifndef SP_NO_MESSAGE_TEXT
-,"number of active simple link processes exceeds quantity specified for SIMPLE parameter in SGML declaration (%1)"
-#endif
-);
-const MessageType0 ParserMessages::duplicateExplicitChain(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-307
-#ifndef SP_NO_MESSAGE_TEXT
-,"only one chain of explicit link processes can be active"
-#endif
-);
-const MessageType1 ParserMessages::explicit1RequiresSourceTypeBase(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-308
-#ifndef SP_NO_MESSAGE_TEXT
-,"source document type name for link type %1 must be base document type since EXPLICIT YES 1"
-#endif
-);
-const MessageType0 ParserMessages::oneImplicitLink(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-309
-#ifndef SP_NO_MESSAGE_TEXT
-,"one one implicit link process can be active"
-#endif
-);
-const MessageType1 ParserMessages::sorryLink(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-310
-#ifndef SP_NO_MESSAGE_TEXT
-,"sorry, link type %1 not activated: only one implicit or explicit link process can be active (with base document type as source document type)"
-#endif
-);
-const MessageType0 ParserMessages::entityReferenceMissingName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-311
-#ifndef SP_NO_MESSAGE_TEXT
-,"name missing after name group in entity reference"
-#endif
-);
-const MessageType1 ParserMessages::explicitNoRequiresSourceTypeBase(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-312
-#ifndef SP_NO_MESSAGE_TEXT
-,"source document type name for link type %1 must be base document type since EXPLICIT NO"
-#endif
-);
-const MessageType0 ParserMessages::linkActivateTooLate(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-313
-#ifndef SP_NO_MESSAGE_TEXT
-,"link process must be activated before base DTD"
-#endif
-);
-const MessageType0 ParserMessages::pass2Ee(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-314
-#ifndef SP_NO_MESSAGE_TEXT
-,"unexpected entity end while starting second pass"
-#endif
-);
-const MessageType2 ParserMessages::idlinkElementType(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-315
-#ifndef SP_NO_MESSAGE_TEXT
-,"type %1 of element with ID %2 not associated element type for applicable link rule in ID link set"
-#endif
-);
-const MessageType0 ParserMessages::datatagNotImplemented(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-316
-#ifndef SP_NO_MESSAGE_TEXT
-,"DATATAG feature not implemented"
-#endif
-);
-const MessageType0 ParserMessages::startTagMissingName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-317
-#ifndef SP_NO_MESSAGE_TEXT
-,"generic identifier specification missing after document type specification in start-tag"
-#endif
-);
-const MessageType0 ParserMessages::endTagMissingName(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-318
-#ifndef SP_NO_MESSAGE_TEXT
-,"generic identifier specification missing after document type specification in end-tag"
-#endif
-);
-const MessageType0 ParserMessages::startTagGroupNet(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-319
-#ifndef SP_NO_MESSAGE_TEXT
-,"a net-enabling start-tag cannot include a document type specification"
-#endif
-);
-const MessageType0 ParserMessages::documentElementUndefined(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-320
-#ifndef SP_NO_MESSAGE_TEXT
-,"DTD did not contain element declaration for document type name"
-#endif
-);
-const MessageType0 ParserMessages::badDefaultSgmlDecl(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-321
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid default SGML declaration"
-#endif
-);
-const MessageType1L ParserMessages::nonExistentEntityRef(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-322
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference to entity %1 for which no system identifier could be generated"
-,"entity was defined here"
-#endif
-);
-const MessageType0 ParserMessages::pcdataUnreachable(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-324
-#ifndef SP_NO_MESSAGE_TEXT
-,"content model is mixed but does not allow #PCDATA everywhere"
-#endif
-);
-const MessageType0 ParserMessages::sdRangeNotSingleChar(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-325
-#ifndef SP_NO_MESSAGE_TEXT
-,"start or end of range must specify a single character"
-#endif
-);
-const MessageType0 ParserMessages::sdInvalidRange(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-326
-#ifndef SP_NO_MESSAGE_TEXT
-,"number of first character in range must not exceed number of second character in range"
-#endif
-);
-const MessageType0 ParserMessages::sdEmptyDelimiter(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-327
-#ifndef SP_NO_MESSAGE_TEXT
-,"delimiter cannot be an empty string"
-#endif
-);
-const MessageType0 ParserMessages::tooManyCharsMinimumLiteral(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-328
-#ifndef SP_NO_MESSAGE_TEXT
-,"too many characters assigned same meaning with minimum literal"
-#endif
-);
-const MessageType1 ParserMessages::defaultedEntityDefined(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-329
-#ifndef SP_NO_MESSAGE_TEXT
-,"earlier reference to entity %1 used default entity"
-#endif
-);
-const MessageType0 ParserMessages::emptyStartTag(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-330
-#ifndef SP_NO_MESSAGE_TEXT
-,"empty start-tag"
-#endif
-);
-const MessageType0 ParserMessages::emptyEndTag(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-331
-#ifndef SP_NO_MESSAGE_TEXT
-,"empty end-tag"
-#endif
-);
-const MessageType1 ParserMessages::unusedMap(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-332
-#ifndef SP_NO_MESSAGE_TEXT
-,"unused short reference map %1"
-#endif
-);
-const MessageType1 ParserMessages::unusedParamEntity(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-333
-#ifndef SP_NO_MESSAGE_TEXT
-,"unused parameter entity %1"
-#endif
-);
-const MessageType1 ParserMessages::cannotGenerateSystemIdPublic(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-334
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot generate system identifier for public text %1"
-#endif
-);
-const MessageType1 ParserMessages::cannotGenerateSystemIdGeneral(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-335
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot generate system identifier for general entity %1"
-#endif
-);
-const MessageType1 ParserMessages::cannotGenerateSystemIdParameter(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-336
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot generate system identifier for parameter entity %1"
-#endif
-);
-const MessageType1 ParserMessages::cannotGenerateSystemIdDoctype(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-337
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot generate system identifier for document type %1"
-#endif
-);
-const MessageType1 ParserMessages::cannotGenerateSystemIdLinktype(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-338
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot generate system identifier for link type %1"
-#endif
-);
-const MessageType1 ParserMessages::cannotGenerateSystemIdNotation(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-339
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot generate system identifier for notation %1"
-#endif
-);
-const MessageType1 ParserMessages::excludeIncludeSame(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-340
-#ifndef SP_NO_MESSAGE_TEXT
-,"element type %1 both included and excluded"
-#endif
-);
-const MessageType1 ParserMessages::implyingDtd(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-341
-#ifndef SP_NO_MESSAGE_TEXT
-,"no document type declaration; implying %1"
-#endif
-);
-const MessageType1 ParserMessages::afdrVersion(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-342
-#ifndef SP_NO_MESSAGE_TEXT
-,"minimum data of AFDR declaration must be \"ISO/IEC 10744:1997\" not %1"
-#endif
-);
-const MessageType0 ParserMessages::missingAfdrDecl(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-343
-#ifndef SP_NO_MESSAGE_TEXT
-,"AFDR declaration required before use of AFDR extensions"
-#endif
-);
-const MessageType0 ParserMessages::enrRequired(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-344
-#ifndef SP_NO_MESSAGE_TEXT
-,"ENR extensions were used but minimum literal was not \"ISO 8879:1986 (ENR)\" or \"ISO 8879:1986 (WWW)\""
-#endif
-);
-const MessageType1 ParserMessages::numericCharRefLiteralNonSgml(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-345
-#ifndef SP_NO_MESSAGE_TEXT
-,"illegal numeric character reference to non-SGML character %1 in literal"
-#endif
-);
-const MessageType2 ParserMessages::numericCharRefUnknownDesc(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-346
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot convert character reference to number %1 because description %2 unrecognized"
-#endif
-);
-const MessageType3 ParserMessages::numericCharRefUnknownBase(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-347
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot convert character reference to number %1 because character %2 from baseset %3 unknown"
-#endif
-);
-const MessageType1 ParserMessages::numericCharRefBadInternal(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-348
-#ifndef SP_NO_MESSAGE_TEXT
-,"character reference to number %1 cannot be converted because of problem with internal character set"
-#endif
-);
-const MessageType1 ParserMessages::numericCharRefNoInternal(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-349
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot convert character reference to number %1 because character not in internal character set"
-#endif
-);
-const MessageType0 ParserMessages::wwwRequired(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-350
-#ifndef SP_NO_MESSAGE_TEXT
-,"Web SGML adaptations were used but minimum literal was not \"ISO 8879:1986 (WWW)\""
-#endif
-);
-const MessageType1 ParserMessages::attributeTokenNotUnique(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-351
-#ifndef SP_NO_MESSAGE_TEXT
-,"token %1 can be value for more multiple attributes so attribute name required"
-#endif
-);
-const MessageType1 ParserMessages::hexNumberLength(
-MessageType::quantityError,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-352
-#ifndef SP_NO_MESSAGE_TEXT
-,"length of hex number must not exceed NAMELEN (%1)"
-#endif
-);
-const MessageType1 ParserMessages::entityNameSyntax(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-353
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a valid name in the declared concrete syntax"
-#endif
-);
-const MessageType0 ParserMessages::cdataContent(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-354
-#ifndef SP_NO_MESSAGE_TEXT
-,"CDATA declared content"
-#endif
-);
-const MessageType0 ParserMessages::rcdataContent(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-355
-#ifndef SP_NO_MESSAGE_TEXT
-,"RCDATA declared content"
-#endif
-);
-const MessageType0 ParserMessages::inclusion(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-356
-#ifndef SP_NO_MESSAGE_TEXT
-,"inclusion"
-#endif
-);
-const MessageType0 ParserMessages::exclusion(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-357
-#ifndef SP_NO_MESSAGE_TEXT
-,"exclusion"
-#endif
-);
-const MessageType0 ParserMessages::numberDeclaredValue(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-358
-#ifndef SP_NO_MESSAGE_TEXT
-,"NUMBER or NUMBERS declared value"
-#endif
-);
-const MessageType0 ParserMessages::nameDeclaredValue(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-359
-#ifndef SP_NO_MESSAGE_TEXT
-,"NAME or NAMES declared value"
-#endif
-);
-const MessageType0 ParserMessages::nutokenDeclaredValue(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-360
-#ifndef SP_NO_MESSAGE_TEXT
-,"NUTOKEN or NUTOKENS declared value"
-#endif
-);
-const MessageType0 ParserMessages::conrefAttribute(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-361
-#ifndef SP_NO_MESSAGE_TEXT
-,"conref attribute"
-#endif
-);
-const MessageType0 ParserMessages::currentAttribute(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-362
-#ifndef SP_NO_MESSAGE_TEXT
-,"current attribute"
-#endif
-);
-const MessageType0 ParserMessages::tempMarkedSection(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-363
-#ifndef SP_NO_MESSAGE_TEXT
-,"TEMP marked section"
-#endif
-);
-const MessageType0 ParserMessages::instanceIncludeMarkedSection(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-364
-#ifndef SP_NO_MESSAGE_TEXT
-,"included marked section in the instance"
-#endif
-);
-const MessageType0 ParserMessages::instanceIgnoreMarkedSection(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-365
-#ifndef SP_NO_MESSAGE_TEXT
-,"ignored marked section in the instance"
-#endif
-);
-const MessageType0 ParserMessages::rcdataMarkedSection(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-366
-#ifndef SP_NO_MESSAGE_TEXT
-,"RCDATA marked section"
-#endif
-);
-const MessageType0 ParserMessages::piEntity(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-367
-#ifndef SP_NO_MESSAGE_TEXT
-,"processing instruction entity"
-#endif
-);
-const MessageType0 ParserMessages::bracketEntity(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-368
-#ifndef SP_NO_MESSAGE_TEXT
-,"bracketed text entity"
-#endif
-);
-const MessageType0 ParserMessages::internalCdataEntity(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-369
-#ifndef SP_NO_MESSAGE_TEXT
-,"internal CDATA entity"
-#endif
-);
-const MessageType0 ParserMessages::internalSdataEntity(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-370
-#ifndef SP_NO_MESSAGE_TEXT
-,"internal SDATA entity"
-#endif
-);
-const MessageType0 ParserMessages::externalCdataEntity(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-371
-#ifndef SP_NO_MESSAGE_TEXT
-,"external CDATA entity"
-#endif
-);
-const MessageType0 ParserMessages::externalSdataEntity(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-372
-#ifndef SP_NO_MESSAGE_TEXT
-,"external SDATA entity"
-#endif
-);
-const MessageType0 ParserMessages::dataAttributes(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-373
-#ifndef SP_NO_MESSAGE_TEXT
-,"attribute definition list declaration for notation"
-#endif
-);
-const MessageType0 ParserMessages::rank(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-374
-#ifndef SP_NO_MESSAGE_TEXT
-,"rank stem"
-#endif
-);
-const MessageType0 ParserMessages::missingSystemId(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-375
-#ifndef SP_NO_MESSAGE_TEXT
-,"no system id specified"
-#endif
-);
-const MessageType0 ParserMessages::psComment(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-376
-#ifndef SP_NO_MESSAGE_TEXT
-,"comment in parameter separator"
-#endif
-);
-const MessageType0 ParserMessages::namedCharRef(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-377
-#ifndef SP_NO_MESSAGE_TEXT
-,"named character reference"
-#endif
-);
-const MessageType0 ParserMessages::andGroup(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-378
-#ifndef SP_NO_MESSAGE_TEXT
-,"and group"
-#endif
-);
-const MessageType0 ParserMessages::attributeValueNotLiteral(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-379
-#ifndef SP_NO_MESSAGE_TEXT
-,"attribute value not a literal"
-#endif
-);
-const MessageType0 ParserMessages::missingAttributeName(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-380
-#ifndef SP_NO_MESSAGE_TEXT
-,"attribute name missing"
-#endif
-);
-const MessageType0 ParserMessages::elementGroupDecl(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-381
-#ifndef SP_NO_MESSAGE_TEXT
-,"element declaration for group of element types"
-#endif
-);
-const MessageType0 ParserMessages::attlistGroupDecl(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-382
-#ifndef SP_NO_MESSAGE_TEXT
-,"attribute definition list declaration for group of element types"
-#endif
-);
-const MessageType0 ParserMessages::emptyCommentDecl(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-383
-#ifndef SP_NO_MESSAGE_TEXT
-,"empty comment declaration"
-#endif
-);
-const MessageType0 ParserMessages::commentDeclS(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-384
-#ifndef SP_NO_MESSAGE_TEXT
-,"s separator in comment declaration"
-#endif
-);
-const MessageType0 ParserMessages::commentDeclMultiple(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-385
-#ifndef SP_NO_MESSAGE_TEXT
-,"multiple comments in comment declaration"
-#endif
-);
-const MessageType0 ParserMessages::missingStatusKeyword(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-386
-#ifndef SP_NO_MESSAGE_TEXT
-,"no status keyword"
-#endif
-);
-const MessageType0 ParserMessages::multipleStatusKeyword(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-387
-#ifndef SP_NO_MESSAGE_TEXT
-,"multiple status keywords"
-#endif
-);
-const MessageType0 ParserMessages::instanceParamEntityRef(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-388
-#ifndef SP_NO_MESSAGE_TEXT
-,"parameter entity reference in document instance"
-#endif
-);
-const MessageType0 ParserMessages::current(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-389
-#ifndef SP_NO_MESSAGE_TEXT
-,"current attribute"
-#endif
-);
-const MessageType0 ParserMessages::minimizationParam(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-390
-#ifndef SP_NO_MESSAGE_TEXT
-,"element type minimization parameter"
-#endif
-);
-const MessageType0 ParserMessages::refc(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-391
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference not terminated by refc delimiter"
-#endif
-);
-const MessageType0 ParserMessages::pcdataNotFirstInGroup(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-392
-#ifndef SP_NO_MESSAGE_TEXT
-,"#PCDATA not first in model group"
-#endif
-);
-const MessageType0 ParserMessages::pcdataInSeqGroup(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-393
-#ifndef SP_NO_MESSAGE_TEXT
-,"#PCDATA in seq group"
-#endif
-);
-const MessageType0 ParserMessages::pcdataInNestedModelGroup(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-394
-#ifndef SP_NO_MESSAGE_TEXT
-,"#PCDATA in nested model group"
-#endif
-);
-const MessageType0 ParserMessages::pcdataGroupNotRep(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-395
-#ifndef SP_NO_MESSAGE_TEXT
-,"#PCDATA in model group that does not have rep occurrence indicator"
-#endif
-);
-const MessageType0 ParserMessages::nameGroupNotOr(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-396
-#ifndef SP_NO_MESSAGE_TEXT
-,"name group or name token group used connector other than OR"
-#endif
-);
-const MessageType0 ParserMessages::piMissingName(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-397
-#ifndef SP_NO_MESSAGE_TEXT
-,"processing instruction does not start with name"
-#endif
-);
-const MessageType0 ParserMessages::instanceStatusKeywordSpecS(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-398
-#ifndef SP_NO_MESSAGE_TEXT
-,"s separator in status keyword specification in document instance"
-#endif
-);
-const MessageType0 ParserMessages::externalDataEntityRef(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-399
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference to external data entity"
-#endif
-);
-const MessageType0 ParserMessages::attributeValueExternalEntityRef(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-400
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference to external entity in attribute value"
-#endif
-);
-const MessageType1 ParserMessages::dataCharDelim(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-401
-#ifndef SP_NO_MESSAGE_TEXT
-,"character %1 is the first character of a delimiter but occurred as data"
-#endif
-);
-const MessageType0 ParserMessages::explicitSgmlDecl(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-402
-#ifndef SP_NO_MESSAGE_TEXT
-,"SGML declaration was not implied"
-#endif
-);
-const MessageType0 ParserMessages::internalSubsetMarkedSection(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-403
-#ifndef SP_NO_MESSAGE_TEXT
-,"marked section in internal DTD subset"
-#endif
-);
-const MessageType0 ParserMessages::nestcWithoutNet(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-404
-#ifndef SP_NO_MESSAGE_TEXT
-,"net-enabling start-tag not immediately followed by null end-tag"
-#endif
-);
-const MessageType0 ParserMessages::contentAsyncEntityRef(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-405
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity end in different element from entity reference"
-#endif
-);
-const MessageType0 ParserMessages::immednetRequiresEmptynrm(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-406
-#ifndef SP_NO_MESSAGE_TEXT
-,"NETENABL IMMEDNET requires EMPTYNRM YES"
-#endif
-);
-const MessageType0 ParserMessages::nonSgmlCharRef(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-407
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference to non-SGML character"
-#endif
-);
-const MessageType0 ParserMessages::defaultEntityDecl(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-408
-#ifndef SP_NO_MESSAGE_TEXT
-,"declaration of default entity"
-#endif
-);
-const MessageType0 ParserMessages::internalSubsetPsParamEntityRef(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-409
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference to parameter entity in parameter separator in internal subset"
-#endif
-);
-const MessageType0 ParserMessages::internalSubsetTsParamEntityRef(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-410
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference to parameter entity in token separator in internal subset"
-#endif
-);
-const MessageType0 ParserMessages::internalSubsetLiteralParamEntityRef(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-411
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference to parameter entity in parameter literal in internal subset"
-#endif
-);
-const MessageType0 ParserMessages::cannotGenerateSystemIdSgml(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-412
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot generate system identifier for SGML declaration reference"
-#endif
-);
-const MessageType1 ParserMessages::sdTextClass(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-413
-#ifndef SP_NO_MESSAGE_TEXT
-,"public text class of formal public identifier of SGML declaration must be SD"
-#endif
-);
-const MessageType0 ParserMessages::sgmlDeclRefRequiresWww(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-414
-#ifndef SP_NO_MESSAGE_TEXT
-,"SGML declaration reference was used but minimum literal was not \"ISO 8879:1986 (WWW)\""
-#endif
-);
-const MessageType0 ParserMessages::pcdataGroupMemberOccurrenceIndicator(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-415
-#ifndef SP_NO_MESSAGE_TEXT
-,"member of model group containing #PCDATA has occurrence indicator"
-#endif
-);
-const MessageType0 ParserMessages::pcdataGroupMemberModelGroup(
-MessageType::warning,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-416
-#ifndef SP_NO_MESSAGE_TEXT
-,"member of model group containing #PCDATA is a model group"
-#endif
-);
-const MessageFragment ParserMessages::delimStart(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1000
-#ifndef SP_NO_MESSAGE_TEXT
-,"delimiter "
-#endif
-);
-const MessageFragment ParserMessages::delimEnd(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1001
-#ifndef SP_NO_MESSAGE_TEXT
-,""
-#endif
-);
-const MessageFragment ParserMessages::digit(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1002
-#ifndef SP_NO_MESSAGE_TEXT
-,"digit"
-#endif
-);
-const MessageFragment ParserMessages::nameStartCharacter(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1003
-#ifndef SP_NO_MESSAGE_TEXT
-,"name start character"
-#endif
-);
-const MessageFragment ParserMessages::sepchar(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1004
-#ifndef SP_NO_MESSAGE_TEXT
-,"sepchar"
-#endif
-);
-const MessageFragment ParserMessages::separator(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1005
-#ifndef SP_NO_MESSAGE_TEXT
-,"separator"
-#endif
-);
-const MessageFragment ParserMessages::nameCharacter(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1006
-#ifndef SP_NO_MESSAGE_TEXT
-,"name character"
-#endif
-);
-const MessageFragment ParserMessages::dataCharacter(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1007
-#ifndef SP_NO_MESSAGE_TEXT
-,"data character"
-#endif
-);
-const MessageFragment ParserMessages::minimumDataCharacter(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1008
-#ifndef SP_NO_MESSAGE_TEXT
-,"minimum data character"
-#endif
-);
-const MessageFragment ParserMessages::significantCharacter(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1009
-#ifndef SP_NO_MESSAGE_TEXT
-,"significant character"
-#endif
-);
-const MessageFragment ParserMessages::recordEnd(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1010
-#ifndef SP_NO_MESSAGE_TEXT
-,"record end character"
-#endif
-);
-const MessageFragment ParserMessages::recordStart(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1011
-#ifndef SP_NO_MESSAGE_TEXT
-,"record start character"
-#endif
-);
-const MessageFragment ParserMessages::space(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1012
-#ifndef SP_NO_MESSAGE_TEXT
-,"space character"
-#endif
-);
-const MessageFragment ParserMessages::listSep(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1013
-#ifndef SP_NO_MESSAGE_TEXT
-,", "
-#endif
-);
-const MessageFragment ParserMessages::rangeSep(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1014
-#ifndef SP_NO_MESSAGE_TEXT
-,"-"
-#endif
-);
-const MessageFragment ParserMessages::parameterLiteral(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1015
-#ifndef SP_NO_MESSAGE_TEXT
-,"parameter literal"
-#endif
-);
-const MessageFragment ParserMessages::dataTagGroup(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1016
-#ifndef SP_NO_MESSAGE_TEXT
-,"data tag group"
-#endif
-);
-const MessageFragment ParserMessages::modelGroup(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1017
-#ifndef SP_NO_MESSAGE_TEXT
-,"model group"
-#endif
-);
-const MessageFragment ParserMessages::dataTagTemplateGroup(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1018
-#ifndef SP_NO_MESSAGE_TEXT
-,"data tag template group"
-#endif
-);
-const MessageFragment ParserMessages::name(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1019
-#ifndef SP_NO_MESSAGE_TEXT
-,"name"
-#endif
-);
-const MessageFragment ParserMessages::nameToken(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1020
-#ifndef SP_NO_MESSAGE_TEXT
-,"name token"
-#endif
-);
-const MessageFragment ParserMessages::elementToken(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1021
-#ifndef SP_NO_MESSAGE_TEXT
-,"element token"
-#endif
-);
-const MessageFragment ParserMessages::inclusions(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1022
-#ifndef SP_NO_MESSAGE_TEXT
-,"inclusions"
-#endif
-);
-const MessageFragment ParserMessages::exclusions(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1023
-#ifndef SP_NO_MESSAGE_TEXT
-,"exclusions"
-#endif
-);
-const MessageFragment ParserMessages::minimumLiteral(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1024
-#ifndef SP_NO_MESSAGE_TEXT
-,"minimum literal"
-#endif
-);
-const MessageFragment ParserMessages::attributeValueLiteral(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1025
-#ifndef SP_NO_MESSAGE_TEXT
-,"attribute value literal"
-#endif
-);
-const MessageFragment ParserMessages::systemIdentifier(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1026
-#ifndef SP_NO_MESSAGE_TEXT
-,"system identifier"
-#endif
-);
-const MessageFragment ParserMessages::number(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1027
-#ifndef SP_NO_MESSAGE_TEXT
-,"number"
-#endif
-);
-const MessageFragment ParserMessages::attributeValue(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1028
-#ifndef SP_NO_MESSAGE_TEXT
-,"attribute value"
-#endif
-);
-const MessageFragment ParserMessages::capacityName(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1029
-#ifndef SP_NO_MESSAGE_TEXT
-,"name of capacity"
-#endif
-);
-const MessageFragment ParserMessages::generalDelimiteRoleName(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1030
-#ifndef SP_NO_MESSAGE_TEXT
-,"name of general delimiter role"
-#endif
-);
-const MessageFragment ParserMessages::referenceReservedName(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1031
-#ifndef SP_NO_MESSAGE_TEXT
-,"reference reserved name"
-#endif
-);
-const MessageFragment ParserMessages::quantityName(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1032
-#ifndef SP_NO_MESSAGE_TEXT
-,"name of quantity"
-#endif
-);
-const MessageFragment ParserMessages::entityEnd(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1033
-#ifndef SP_NO_MESSAGE_TEXT
-,"entity end"
-#endif
-);
-const MessageFragment ParserMessages::shortrefDelim(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-1034
-#ifndef SP_NO_MESSAGE_TEXT
-,"short reference delimiter"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ParserMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,907 +0,0 @@
-// This file was automatically generated from lib\ParserMessages.msg by msggen.pl.
-#ifndef ParserMessages_INCLUDED
-#define ParserMessages_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct ParserMessages {
-  // 0
-  static const MessageType1 nameLength;
-  // 1
-  static const MessageType1 parameterEntityNameLength;
-  // 2
-  static const MessageType1 numberLength;
-  // 3
-  static const MessageType1 attributeValueLength;
-  // 4
-  static const MessageType0 peroGrpoProlog;
-  // 5
-  static const MessageType0 groupLevel;
-  // 6
-  static const MessageType2 groupCharacter;
-  // 7
-  static const MessageType0 psRequired;
-  // 8
-  static const MessageType2 markupDeclarationCharacter;
-  // 9
-  static const MessageType0 declarationLevel;
-  // 10
-  static const MessageType0 groupEntityEnd;
-  // 11
-  static const MessageType1 invalidToken;
-  // 12
-  static const MessageType0 groupEntityReference;
-  // 13
-  static const MessageType1 duplicateGroupToken;
-  // 14
-  static const MessageType1 groupCount;
-  // 15
-  static const MessageType0 literalLevel;
-  // 16
-  static const MessageType1 literalMinimumData;
-  // 17
-  static const MessageType0 dataTagPatternNonSgml;
-  // 18
-  static const MessageType0 dataTagPatternFunction;
-  // 19
-  static const MessageType0 eroGrpoStartTag;
-  // 20
-  static const MessageType0 eroGrpoProlog;
-  // 21
-  static const MessageType1 functionName;
-  // 22
-  static const MessageType1 characterNumber;
-  // 23
-  static const MessageType1 parameterEntityUndefined;
-  // 24
-  static const MessageType1 entityUndefined;
-  // 25
-  static const MessageType0 rniNameStart;
-  // 26
-  static const MessageType0L commentEntityEnd;
-  // 28
-  static const MessageType0 mixedConnectors;
-  // 29
-  static const MessageType1 noSuchReservedName;
-  // 30
-  static const MessageType1 invalidReservedName;
-  // 31
-  static const MessageType1 minimumLiteralLength;
-  // 32
-  static const MessageType1 tokenizedAttributeValueLength;
-  // 33
-  static const MessageType1 systemIdentifierLength;
-  // 34
-  static const MessageType1 parameterLiteralLength;
-  // 35
-  static const MessageType1 dataTagPatternLiteralLength;
-  // 36
-  static const MessageType0 literalClosingDelimiter;
-  // 37
-  static const MessageType2 paramInvalidToken;
-  // 38
-  static const MessageType2 groupTokenInvalidToken;
-  // 39
-  static const MessageType2 connectorInvalidToken;
-  // 40
-  static const MessageType1 noSuchDeclarationType;
-  // 41
-  static const MessageType1 dtdSubsetDeclaration;
-  // 42
-  static const MessageType1 declSubsetCharacter;
-  // 43
-  static const MessageType0 documentEndDtdSubset;
-  // 44
-  static const MessageType1 prologCharacter;
-  // 45
-  static const MessageType0 documentEndProlog;
-  // 46
-  static const MessageType1 prologDeclaration;
-  // 47
-  static const MessageType1 rankStemGenericIdentifier;
-  // 48
-  static const MessageType0 missingTagMinimization;
-  // 49
-  static const MessageType1 duplicateElementDefinition;
-  // 50
-  static const MessageType0 entityApplicableDtd;
-  // 51
-  static const MessageType1L commentDeclInvalidToken;
-  // 53
-  static const MessageType1 instanceDeclaration;
-  // 54
-  static const MessageType0 contentNonSgml;
-  // 55
-  static const MessageType1 noCurrentRank;
-  // 56
-  static const MessageType1 duplicateAttlistNotation;
-  // 57
-  static const MessageType1 duplicateAttlistElement;
-  // 58
-  static const MessageType0 endTagEntityEnd;
-  // 59
-  static const MessageType1 endTagCharacter;
-  // 60
-  static const MessageType1 endTagInvalidToken;
-  // 61
-  static const MessageType0 pcdataNotAllowed;
-  // 62
-  static const MessageType1 elementNotAllowed;
-  // 63
-  static const MessageType2 missingElementMultiple;
-  // 64
-  static const MessageType2 missingElementInferred;
-  // 65
-  static const MessageType1 startTagEmptyElement;
-  // 66
-  static const MessageType1L omitEndTagDeclare;
-  // 68
-  static const MessageType1L omitEndTagOmittag;
-  // 70
-  static const MessageType1 omitStartTagDeclaredContent;
-  // 71
-  static const MessageType1 elementEndTagNotFinished;
-  // 72
-  static const MessageType1 omitStartTagDeclare;
-  // 73
-  static const MessageType1 taglvlOpenElements;
-  // 74
-  static const MessageType1 undefinedElement;
-  // 75
-  static const MessageType0 emptyEndTagNoOpenElements;
-  // 76
-  static const MessageType1 elementNotFinished;
-  // 77
-  static const MessageType1 elementNotOpen;
-  // 78
-  static const MessageType1 internalParameterDataEntity;
-  // 79
-  static const MessageType1 attributeSpecCharacter;
-  // 80
-  static const MessageType0 unquotedAttributeValue;
-  // 81
-  static const MessageType0 attributeSpecEntityEnd;
-  // 82
-  static const MessageType1 externalParameterDataSubdocEntity;
-  // 83
-  static const MessageType1 duplicateEntityDeclaration;
-  // 84
-  static const MessageType1 duplicateParameterEntityDeclaration;
-  // 85
-  static const MessageType0 piEntityReference;
-  // 86
-  static const MessageType0 internalDataEntityReference;
-  // 87
-  static const MessageType0 externalNonTextEntityReference;
-  // 88
-  static const MessageType0 externalNonTextEntityRcdata;
-  // 89
-  static const MessageType0 entlvl;
-  // 90
-  static const MessageType0 piEntityRcdata;
-  // 91
-  static const MessageType1 recursiveEntityReference;
-  // 92
-  static const MessageType1 undefinedShortrefMapInstance;
-  // 93
-  static const MessageType0 usemapAssociatedElementTypeDtd;
-  // 94
-  static const MessageType0 usemapAssociatedElementTypeInstance;
-  // 95
-  static const MessageType2 undefinedShortrefMapDtd;
-  // 96
-  static const MessageType1 unknownShortrefDelim;
-  // 97
-  static const MessageType1 delimDuplicateMap;
-  // 98
-  static const MessageType0 noDocumentElement;
-  // 99
-  static const MessageType0 processingInstructionEntityEnd;
-  // 100
-  static const MessageType1 processingInstructionLength;
-  // 101
-  static const MessageType0 processingInstructionClose;
-  // 102
-  static const MessageType0 attributeSpecNameTokenExpected;
-  // 103
-  static const MessageType1 noSuchAttributeToken;
-  // 104
-  static const MessageType0 attributeNameShorttag;
-  // 105
-  static const MessageType1 noSuchAttribute;
-  // 106
-  static const MessageType0 attributeValueExpected;
-  // 107
-  static const MessageType1 nameTokenLength;
-  // 108
-  static const MessageType0 attributeSpecLiteral;
-  // 109
-  static const MessageType1 duplicateAttributeSpec;
-  // 110
-  static const MessageType1 duplicateAttributeDef;
-  // 111
-  static const MessageType0 emptyDataAttributeSpec;
-  // 112
-  static const MessageType0 markedSectionEnd;
-  // 113
-  static const MessageType1 markedSectionLevel;
-  // 114
-  static const MessageType0L unclosedMarkedSection;
-  // 116
-  static const MessageType0 specialParseEntityEnd;
-  // 117
-  static const MessageType2 normalizedAttributeValueLength;
-  // 118
-  static const MessageType0 attributeValueSyntax;
-  // 119
-  static const MessageType2 attributeValueChar;
-  // 120
-  static const MessageType1 attributeValueMultiple;
-  // 121
-  static const MessageType2 attributeValueNumberToken;
-  // 122
-  static const MessageType2 attributeValueName;
-  // 123
-  static const MessageType1 attributeMissing;
-  // 124
-  static const MessageType1 requiredAttributeMissing;
-  // 125
-  static const MessageType1 currentAttributeMissing;
-  // 126
-  static const MessageType1 invalidNotationAttribute;
-  // 127
-  static const MessageType1 invalidEntityAttribute;
-  // 128
-  static const MessageType3 attributeValueNotInGroup;
-  // 129
-  static const MessageType1 notDataOrSubdocEntity;
-  // 130
-  static const MessageType3 ambiguousModelInitial;
-  // 131
-  static const MessageType5 ambiguousModel;
-  // 132
-  static const MessageType5 ambiguousModelSingleAnd;
-  // 133
-  static const MessageType6 ambiguousModelMultipleAnd;
-  // 134
-  static const MessageType1L commentDeclarationCharacter;
-  // 136
-  static const MessageType1 nonSgmlCharacter;
-  // 137
-  static const MessageType0 dataMarkedSectionDeclSubset;
-  // 138
-  static const MessageType1L duplicateId;
-  // 140
-  static const MessageType1 notFixedValue;
-  // 141
-  static const MessageType1 sdCommentSignificant;
-  // 142
-  static const MessageType1 standardVersion;
-  // 143
-  static const MessageType1 namingBeforeLcnmstrt;
-  // 144
-  static const MessageType1 sdEntityEnd;
-  // 145
-  static const MessageType2 sdInvalidNameToken;
-  // 146
-  static const MessageType1 numberTooBig;
-  // 147
-  static const MessageType1 sdLiteralSignificant;
-  // 148
-  static const MessageType1 syntaxCharacterNumber;
-  // 149
-  static const MessageType0 sdParameterEntity;
-  // 150
-  static const MessageType2 sdParamInvalidToken;
-  // 151
-  static const MessageType0 giveUp;
-  // 152
-  static const MessageType1 sdMissingCharacters;
-  // 153
-  static const MessageType1 missingMinimumChars;
-  // 154
-  static const MessageType1 duplicateCharNumbers;
-  // 155
-  static const MessageType1 codeSetHoles;
-  // 156
-  static const MessageType1 basesetCharsMissing;
-  // 157
-  static const MessageType1 documentCharMax;
-  // 158
-  static const MessageType1 fpiMissingField;
-  // 159
-  static const MessageType1 fpiMissingTextClassSpace;
-  // 160
-  static const MessageType1 fpiInvalidTextClass;
-  // 161
-  static const MessageType1 fpiInvalidLanguage;
-  // 162
-  static const MessageType1 fpiIllegalDisplayVersion;
-  // 163
-  static const MessageType1 fpiExtraField;
-  // 164
-  static const MessageType0 notationIdentifierTextClass;
-  // 165
-  static const MessageType1 unknownBaseset;
-  // 166
-  static const MessageType2 lexicalAmbiguity;
-  // 167
-  static const MessageType1 missingSignificant;
-  // 168
-  static const MessageType1 translateSyntaxCharDoc;
-  // 169
-  static const MessageType1 translateSyntaxCharInternal;
-  // 170
-  static const MessageType1 missingSyntaxChar;
-  // 171
-  static const MessageType1 unknownCapacitySet;
-  // 172
-  static const MessageType1 duplicateCapacity;
-  // 173
-  static const MessageType1 capacityExceedsTotalcap;
-  // 174
-  static const MessageType1 unknownPublicSyntax;
-  // 175
-  static const MessageType0 nmstrtLength;
-  // 176
-  static const MessageType0 nmcharLength;
-  // 177
-  static const MessageType1 subdocLevel;
-  // 178
-  static const MessageType1 subdocEntity;
-  // 179
-  static const MessageType0 parameterEntityNotEnded;
-  // 180
-  static const MessageType1 missingId;
-  // 181
-  static const MessageType1 dtdUndefinedElement;
-  // 182
-  static const MessageType1 elementNotFinishedDocumentEnd;
-  // 183
-  static const MessageType0 subdocGiveUp;
-  // 184
-  static const MessageType0 noDtd;
-  // 185
-  static const MessageType0 noDtdSubset;
-  // 186
-  static const MessageType0 notSgml;
-  // 187
-  static const MessageType1 taglen;
-  // 188
-  static const MessageType0 groupParameterEntityNotEnded;
-  // 189
-  static const MessageType1 invalidSgmlChar;
-  // 190
-  static const MessageType1 translateDocChar;
-  // 191
-  static const MessageType1 attributeValueLengthNeg;
-  // 192
-  static const MessageType1 tokenizedAttributeValueLengthNeg;
-  // 193
-  static const MessageType1 scopeInstanceQuantity;
-  // 194
-  static const MessageType1 basesetTextClass;
-  // 195
-  static const MessageType1 capacityTextClass;
-  // 196
-  static const MessageType1 syntaxTextClass;
-  // 197
-  static const MessageType0 msocharRequiresMsichar;
-  // 198
-  static const MessageType1 switchNotMarkup;
-  // 199
-  static const MessageType1 switchNotInCharset;
-  // 200
-  static const MessageType1 ambiguousDocCharacter;
-  // 201
-  static const MessageType1 oneFunction;
-  // 202
-  static const MessageType1 duplicateFunctionName;
-  // 203
-  static const MessageType1 missingSignificant646;
-  // 204
-  static const MessageType1 generalDelimAllFunction;
-  // 205
-  static const MessageType1 nmcharLetter;
-  // 206
-  static const MessageType1 nmcharDigit;
-  // 207
-  static const MessageType1 nmcharRe;
-  // 208
-  static const MessageType1 nmcharRs;
-  // 209
-  static const MessageType1 nmcharSpace;
-  // 210
-  static const MessageType1 nmcharSepchar;
-  // 211
-  static const MessageType1 switchLetterDigit;
-  // 212
-  static const MessageType0 zeroNumberOfCharacters;
-  // 213
-  static const MessageType1 nameReferenceReservedName;
-  // 214
-  static const MessageType1 ambiguousReservedName;
-  // 215
-  static const MessageType1 duplicateReservedName;
-  // 216
-  static const MessageType1 reservedNameSyntax;
-  // 217
-  static const MessageType1 multipleBSequence;
-  // 218
-  static const MessageType1 blankAdjacentBSequence;
-  // 219
-  static const MessageType2 delimiterLength;
-  // 220
-  static const MessageType2 reservedNameLength;
-  // 221
-  static const MessageType1 nmcharNmstrt;
-  // 222
-  static const MessageType0 scopeInstanceSyntaxCharset;
-  // 223
-  static const MessageType0 emptyOmitEndTag;
-  // 224
-  static const MessageType1 conrefOmitEndTag;
-  // 225
-  static const MessageType1 conrefEmpty;
-  // 226
-  static const MessageType1 notationEmpty;
-  // 227
-  static const MessageType0 dataAttributeDeclaredValue;
-  // 228
-  static const MessageType0 dataAttributeDefaultValue;
-  // 229
-  static const MessageType2 attcnt;
-  // 230
-  static const MessageType0 idDeclaredValue;
-  // 231
-  static const MessageType1 multipleIdAttributes;
-  // 232
-  static const MessageType1 multipleNotationAttributes;
-  // 233
-  static const MessageType1 duplicateAttributeToken;
-  // 234
-  static const MessageType1 notationNoAttributes;
-  // 235
-  static const MessageType2 entityNotationUndefined;
-  // 236
-  static const MessageType2 mapEntityUndefined;
-  // 237
-  static const MessageType1 attlistNotationUndefined;
-  // 238
-  static const MessageType1 bracketedLitlen;
-  // 239
-  static const MessageType1 genericIdentifierLength;
-  // 240
-  static const MessageType0 instanceStartOmittag;
-  // 241
-  static const MessageType1 grplvl;
-  // 242
-  static const MessageType1 grpgtcnt;
-  // 243
-  static const MessageType0 unclosedStartTagShorttag;
-  // 244
-  static const MessageType0 netEnablingStartTagShorttag;
-  // 245
-  static const MessageType0 unclosedEndTagShorttag;
-  // 246
-  static const MessageType0 multipleDtds;
-  // 247
-  static const MessageType0 afterDocumentElementEntityEnd;
-  // 248
-  static const MessageType1 declarationAfterDocumentElement;
-  // 249
-  static const MessageType0 characterReferenceAfterDocumentElement;
-  // 250
-  static const MessageType0 entityReferenceAfterDocumentElement;
-  // 251
-  static const MessageType0 markedSectionAfterDocumentElement;
-  // 252
-  static const MessageType3 requiredElementExcluded;
-  // 253
-  static const MessageType3 invalidExclusion;
-  // 254
-  static const MessageType0 attributeValueShorttag;
-  // 255
-  static const MessageType0 conrefNotation;
-  // 256
-  static const MessageType1 duplicateNotationDeclaration;
-  // 257
-  static const MessageType1L duplicateShortrefDeclaration;
-  // 259
-  static const MessageType1 duplicateDelimGeneral;
-  // 260
-  static const MessageType1 idrefGrpcnt;
-  // 261
-  static const MessageType1 entityNameGrpcnt;
-  // 262
-  static const MessageType2 attsplen;
-  // 263
-  static const MessageType1 duplicateDelimShortref;
-  // 264
-  static const MessageType1 duplicateDelimShortrefSet;
-  // 265
-  static const MessageType1 defaultEntityInAttribute;
-  // 266
-  static const MessageType1 defaultEntityReference;
-  // 267
-  static const MessageType2 mapDefaultEntity;
-  // 268
-  static const MessageType1 noSuchDtd;
-  // 269
-  static const MessageType1 noLpdSubset;
-  // 270
-  static const MessageType0 assocElementDifferentAtts;
-  // 271
-  static const MessageType1 duplicateLinkSet;
-  // 272
-  static const MessageType0 emptyResultAttributeSpec;
-  // 273
-  static const MessageType1 noSuchSourceElement;
-  // 274
-  static const MessageType1 noSuchResultElement;
-  // 275
-  static const MessageType0 documentEndLpdSubset;
-  // 276
-  static const MessageType1 lpdSubsetDeclaration;
-  // 277
-  static const MessageType0 idlinkDeclSimple;
-  // 278
-  static const MessageType0 linkDeclSimple;
-  // 279
-  static const MessageType1 simpleLinkAttlistElement;
-  // 280
-  static const MessageType0 shortrefOnlyInBaseDtd;
-  // 281
-  static const MessageType0 usemapOnlyInBaseDtd;
-  // 282
-  static const MessageType0 linkAttributeDefaultValue;
-  // 283
-  static const MessageType0 linkAttributeDeclaredValue;
-  // 284
-  static const MessageType0 simpleLinkFixedAttribute;
-  // 285
-  static const MessageType0 duplicateIdLinkSet;
-  // 286
-  static const MessageType1 noInitialLinkSet;
-  // 287
-  static const MessageType1 notationUndefinedSourceDtd;
-  // 288
-  static const MessageType0 simpleLinkResultNotImplied;
-  // 289
-  static const MessageType0 simpleLinkFeature;
-  // 290
-  static const MessageType0 implicitLinkFeature;
-  // 291
-  static const MessageType0 explicitLinkFeature;
-  // 292
-  static const MessageType0 lpdBeforeBaseDtd;
-  // 293
-  static const MessageType0 dtdAfterLpd;
-  // 294
-  static const MessageType1 unstableLpdGeneralEntity;
-  // 295
-  static const MessageType1 unstableLpdParameterEntity;
-  // 296
-  static const MessageType1 multipleIdLinkRuleAttribute;
-  // 297
-  static const MessageType1 multipleLinkRuleAttribute;
-  // 298
-  static const MessageType2 uselinkBadLinkSet;
-  // 299
-  static const MessageType1 uselinkSimpleLpd;
-  // 300
-  static const MessageType1 uselinkBadLinkType;
-  // 301
-  static const MessageType1 duplicateDtdLpd;
-  // 302
-  static const MessageType1 duplicateLpd;
-  // 303
-  static const MessageType1 duplicateDtd;
-  // 304
-  static const MessageType1 undefinedLinkSet;
-  // 305
-  static const MessageType1 duplicateImpliedResult;
-  // 306
-  static const MessageType1 simpleLinkCount;
-  // 307
-  static const MessageType0 duplicateExplicitChain;
-  // 308
-  static const MessageType1 explicit1RequiresSourceTypeBase;
-  // 309
-  static const MessageType0 oneImplicitLink;
-  // 310
-  static const MessageType1 sorryLink;
-  // 311
-  static const MessageType0 entityReferenceMissingName;
-  // 312
-  static const MessageType1 explicitNoRequiresSourceTypeBase;
-  // 313
-  static const MessageType0 linkActivateTooLate;
-  // 314
-  static const MessageType0 pass2Ee;
-  // 315
-  static const MessageType2 idlinkElementType;
-  // 316
-  static const MessageType0 datatagNotImplemented;
-  // 317
-  static const MessageType0 startTagMissingName;
-  // 318
-  static const MessageType0 endTagMissingName;
-  // 319
-  static const MessageType0 startTagGroupNet;
-  // 320
-  static const MessageType0 documentElementUndefined;
-  // 321
-  static const MessageType0 badDefaultSgmlDecl;
-  // 322
-  static const MessageType1L nonExistentEntityRef;
-  // 324
-  static const MessageType0 pcdataUnreachable;
-  // 325
-  static const MessageType0 sdRangeNotSingleChar;
-  // 326
-  static const MessageType0 sdInvalidRange;
-  // 327
-  static const MessageType0 sdEmptyDelimiter;
-  // 328
-  static const MessageType0 tooManyCharsMinimumLiteral;
-  // 329
-  static const MessageType1 defaultedEntityDefined;
-  // 330
-  static const MessageType0 emptyStartTag;
-  // 331
-  static const MessageType0 emptyEndTag;
-  // 332
-  static const MessageType1 unusedMap;
-  // 333
-  static const MessageType1 unusedParamEntity;
-  // 334
-  static const MessageType1 cannotGenerateSystemIdPublic;
-  // 335
-  static const MessageType1 cannotGenerateSystemIdGeneral;
-  // 336
-  static const MessageType1 cannotGenerateSystemIdParameter;
-  // 337
-  static const MessageType1 cannotGenerateSystemIdDoctype;
-  // 338
-  static const MessageType1 cannotGenerateSystemIdLinktype;
-  // 339
-  static const MessageType1 cannotGenerateSystemIdNotation;
-  // 340
-  static const MessageType1 excludeIncludeSame;
-  // 341
-  static const MessageType1 implyingDtd;
-  // 342
-  static const MessageType1 afdrVersion;
-  // 343
-  static const MessageType0 missingAfdrDecl;
-  // 344
-  static const MessageType0 enrRequired;
-  // 345
-  static const MessageType1 numericCharRefLiteralNonSgml;
-  // 346
-  static const MessageType2 numericCharRefUnknownDesc;
-  // 347
-  static const MessageType3 numericCharRefUnknownBase;
-  // 348
-  static const MessageType1 numericCharRefBadInternal;
-  // 349
-  static const MessageType1 numericCharRefNoInternal;
-  // 350
-  static const MessageType0 wwwRequired;
-  // 351
-  static const MessageType1 attributeTokenNotUnique;
-  // 352
-  static const MessageType1 hexNumberLength;
-  // 353
-  static const MessageType1 entityNameSyntax;
-  // 354
-  static const MessageType0 cdataContent;
-  // 355
-  static const MessageType0 rcdataContent;
-  // 356
-  static const MessageType0 inclusion;
-  // 357
-  static const MessageType0 exclusion;
-  // 358
-  static const MessageType0 numberDeclaredValue;
-  // 359
-  static const MessageType0 nameDeclaredValue;
-  // 360
-  static const MessageType0 nutokenDeclaredValue;
-  // 361
-  static const MessageType0 conrefAttribute;
-  // 362
-  static const MessageType0 currentAttribute;
-  // 363
-  static const MessageType0 tempMarkedSection;
-  // 364
-  static const MessageType0 instanceIncludeMarkedSection;
-  // 365
-  static const MessageType0 instanceIgnoreMarkedSection;
-  // 366
-  static const MessageType0 rcdataMarkedSection;
-  // 367
-  static const MessageType0 piEntity;
-  // 368
-  static const MessageType0 bracketEntity;
-  // 369
-  static const MessageType0 internalCdataEntity;
-  // 370
-  static const MessageType0 internalSdataEntity;
-  // 371
-  static const MessageType0 externalCdataEntity;
-  // 372
-  static const MessageType0 externalSdataEntity;
-  // 373
-  static const MessageType0 dataAttributes;
-  // 374
-  static const MessageType0 rank;
-  // 375
-  static const MessageType0 missingSystemId;
-  // 376
-  static const MessageType0 psComment;
-  // 377
-  static const MessageType0 namedCharRef;
-  // 378
-  static const MessageType0 andGroup;
-  // 379
-  static const MessageType0 attributeValueNotLiteral;
-  // 380
-  static const MessageType0 missingAttributeName;
-  // 381
-  static const MessageType0 elementGroupDecl;
-  // 382
-  static const MessageType0 attlistGroupDecl;
-  // 383
-  static const MessageType0 emptyCommentDecl;
-  // 384
-  static const MessageType0 commentDeclS;
-  // 385
-  static const MessageType0 commentDeclMultiple;
-  // 386
-  static const MessageType0 missingStatusKeyword;
-  // 387
-  static const MessageType0 multipleStatusKeyword;
-  // 388
-  static const MessageType0 instanceParamEntityRef;
-  // 389
-  static const MessageType0 current;
-  // 390
-  static const MessageType0 minimizationParam;
-  // 391
-  static const MessageType0 refc;
-  // 392
-  static const MessageType0 pcdataNotFirstInGroup;
-  // 393
-  static const MessageType0 pcdataInSeqGroup;
-  // 394
-  static const MessageType0 pcdataInNestedModelGroup;
-  // 395
-  static const MessageType0 pcdataGroupNotRep;
-  // 396
-  static const MessageType0 nameGroupNotOr;
-  // 397
-  static const MessageType0 piMissingName;
-  // 398
-  static const MessageType0 instanceStatusKeywordSpecS;
-  // 399
-  static const MessageType0 externalDataEntityRef;
-  // 400
-  static const MessageType0 attributeValueExternalEntityRef;
-  // 401
-  static const MessageType1 dataCharDelim;
-  // 402
-  static const MessageType0 explicitSgmlDecl;
-  // 403
-  static const MessageType0 internalSubsetMarkedSection;
-  // 404
-  static const MessageType0 nestcWithoutNet;
-  // 405
-  static const MessageType0 contentAsyncEntityRef;
-  // 406
-  static const MessageType0 immednetRequiresEmptynrm;
-  // 407
-  static const MessageType0 nonSgmlCharRef;
-  // 408
-  static const MessageType0 defaultEntityDecl;
-  // 409
-  static const MessageType0 internalSubsetPsParamEntityRef;
-  // 410
-  static const MessageType0 internalSubsetTsParamEntityRef;
-  // 411
-  static const MessageType0 internalSubsetLiteralParamEntityRef;
-  // 412
-  static const MessageType0 cannotGenerateSystemIdSgml;
-  // 413
-  static const MessageType1 sdTextClass;
-  // 414
-  static const MessageType0 sgmlDeclRefRequiresWww;
-  // 415
-  static const MessageType0 pcdataGroupMemberOccurrenceIndicator;
-  // 416
-  static const MessageType0 pcdataGroupMemberModelGroup;
-  // 1000
-  static const MessageFragment delimStart;
-  // 1001
-  static const MessageFragment delimEnd;
-  // 1002
-  static const MessageFragment digit;
-  // 1003
-  static const MessageFragment nameStartCharacter;
-  // 1004
-  static const MessageFragment sepchar;
-  // 1005
-  static const MessageFragment separator;
-  // 1006
-  static const MessageFragment nameCharacter;
-  // 1007
-  static const MessageFragment dataCharacter;
-  // 1008
-  static const MessageFragment minimumDataCharacter;
-  // 1009
-  static const MessageFragment significantCharacter;
-  // 1010
-  static const MessageFragment recordEnd;
-  // 1011
-  static const MessageFragment recordStart;
-  // 1012
-  static const MessageFragment space;
-  // 1013
-  static const MessageFragment listSep;
-  // 1014
-  static const MessageFragment rangeSep;
-  // 1015
-  static const MessageFragment parameterLiteral;
-  // 1016
-  static const MessageFragment dataTagGroup;
-  // 1017
-  static const MessageFragment modelGroup;
-  // 1018
-  static const MessageFragment dataTagTemplateGroup;
-  // 1019
-  static const MessageFragment name;
-  // 1020
-  static const MessageFragment nameToken;
-  // 1021
-  static const MessageFragment elementToken;
-  // 1022
-  static const MessageFragment inclusions;
-  // 1023
-  static const MessageFragment exclusions;
-  // 1024
-  static const MessageFragment minimumLiteral;
-  // 1025
-  static const MessageFragment attributeValueLiteral;
-  // 1026
-  static const MessageFragment systemIdentifier;
-  // 1027
-  static const MessageFragment number;
-  // 1028
-  static const MessageFragment attributeValue;
-  // 1029
-  static const MessageFragment capacityName;
-  // 1030
-  static const MessageFragment generalDelimiteRoleName;
-  // 1031
-  static const MessageFragment referenceReservedName;
-  // 1032
-  static const MessageFragment quantityName;
-  // 1033
-  static const MessageFragment entityEnd;
-  // 1034
-  static const MessageFragment shortrefDelim;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ParserMessages_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ParserOptions.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "ParserOptions.h"
-#include <string.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-ParserOptions::ParserOptions()
-: datatag(0),
-  omittag(1),
-  rank(1),
-  shorttag(1),
-  emptynrm(0),
-  linkSimple(1000),
-  linkImplicit(1),
-  linkExplicit(1),
-  concur(0),
-  subdoc(99999999),
-  formal(1),
-  typeValid(sgmlDeclTypeValid),
-  shortref(1),
-  errorIdref(1),
-  errorSignificant(1),
-  errorAfdr(1),
-  noUnclosedTag(0),
-  noNet(0)
-{
-  for (int i = 0; i < nQuantity; i++)
-    quantity[i] = 99999999;
-  quantity[BSEQLEN] = 960;
-  quantity[NORMSEP] = 2;
-  quantity[LITLEN] = 24000;
-  quantity[PILEN] = 24000;
-  quantity[DTEMPLEN] = 24000;
-}
-
-Warnings::Warnings()
-{
-  memset(this, 0, sizeof(Warnings));
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ParserState.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,828 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "ParserState.h"
-#include "InternalInputSource.h"
-#include "MessageArg.h"
-#include "macros.h"
-#include "SgmlParser.h"
-#include "IListIter.h"
-#include "ParserMessages.h"
-#include "Undo.h"
-#include "Trie.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const Location ParserState::nullLocation_;
-sig_atomic_t ParserState::dummyCancel_ = 0;
-
-static const size_t eventSizes[] = {
-#define EVENT(c, f) sizeof(c),
-#include "events.h"
-#undef EVENT
-};
-
-static const size_t internalSizes[] = {
-  sizeof(InternalInputSource),
-  sizeof(OpenElement),
-  sizeof(UndoStartTag),
-  sizeof(UndoEndTag),
-  sizeof(UndoTransition)
-};
-
-static
-size_t maxSize(const size_t *v, size_t n, size_t max = 0)
-{
-  for (size_t i = 0; i < n; i++) {
-    if (v[i] > max)
-      max = v[i];
-  }
-  return max;
-}
-
-ParserState::ParserState(const Ptr<EntityManager> &em,
-			 const ParserOptions &opt,
-			 unsigned subdocLevel,
-			 Phase finalPhase)
-: entityManager_(em),
-  options_(opt),
-  inInstance_(0),
-  keepingMessages_(0),
-  eventAllocator_(maxSize(eventSizes, SIZEOF(eventSizes)), 50),
-  internalAllocator_(maxSize(internalSizes, SIZEOF(internalSizes), EntityOrigin::allocSize), 50),
-  handler_(&eventQueue_),
-  subdocLevel_(subdocLevel),
-  inputLevel_(0),
-  specialParseInputLevel_(0),
-  markedSectionLevel_(0),
-  markedSectionSpecialLevel_(0),
-  currentMode_(proMode),
-  hadLpd_(0),
-  resultAttributeSpecMode_(0),
-  pass2_(0),
-  activeLinkTypesSubsted_(0),
-  allowPass2_(0),
-  hadPass2Start_(0),
-  pcdataRecovering_(0),
-  currentMarkup_(0),
-  cancelPtr_(&dummyCancel_),
-  finalPhase_(finalPhase),
-  hadAfdrDecl_(0)
-{
-}
-
-void ParserState::inheritActiveLinkTypes(const ParserState &parent)
-{
-  activeLinkTypes_ = parent.activeLinkTypes_;
-  activeLinkTypesSubsted_ = parent.activeLinkTypesSubsted_;
-}
-
-void ParserState::allDone()
-{
-  phase_ = noPhase;
-}
-
-void ParserState::setPass2Start()
-{
-  ASSERT(inputLevel_ == 1);
-  if (hadPass2Start_)
-    return;
-  hadPass2Start_ = 1;
-  if (!pass2() && sd().link() && activeLinkTypes_.size() > 0) {
-    allowPass2_ = 1;
-    pass1Handler_.init(handler_);
-    handler_ = &pass1Handler_;
-    const InputSourceOrigin *p
-      = currentLocation().origin()->asInputSourceOrigin();
-    pass2StartOffset_= p->startOffset(currentLocation().index());
-  }
-  else {
-    allowPass2_ = 0;
-    currentInput()->willNotRewind();
-  }
-}
-
-void ParserState::allLinkTypesActivated()
-{
-  if (activeLinkTypes_.size() == 0 && inputLevel_ == 1)
-    currentInput()->willNotRewind();
-}
-
-Boolean ParserState::maybeStartPass2()
-{
-  if (pass2_ || !allowPass2_)
-    return 0;
-  handler_ = pass1Handler_.origHandler();
-  if (!nActiveLink() || pass1Handler_.hadError()) {
-    while (!pass1Handler_.empty()) {
-      if (cancelled())
-	return 0;
-      pass1Handler_.get()->handle(*handler_);
-    }
-    InputSource *top = 0;
-    for (IListIter<InputSource> iter(inputStack_);
-	 !iter.done();
-	 iter.next())
-      top = iter.cur();
-    if (top)
-      top->willNotRewind();
-    return 0;
-  }
-  pass1Handler_.clear();
-  while (inputLevel_ > 1) {
-    InputSource *p = inputStack_.get();
-    inputLevel_--;
-    delete p;
-  }
-  // Caller will call allDone() if inputLevel_ is 0.
-  if (inputLevel_ == 0)
-    return 0;
-  if (!inputStack_.head()->rewind(*this)) {
-    inputLevel_ = 0;
-    delete inputStack_.get();
-    return 0;
-  }
-  inputStack_.head()->willNotRewind();
-  for (; pass2StartOffset_ > 0; pass2StartOffset_--)
-    if (inputStack_.head()->get(messenger()) == InputSource::eE) {
-      message(ParserMessages::pass2Ee);
-      inputLevel_ = 0;
-      delete inputStack_.get();
-      return 0;
-    }
-  specialParseInputLevel_ = 0;
-  markedSectionLevel_ = 0;
-  markedSectionSpecialLevel_ = 0;
-  currentMode_ = proMode;
-  hadLpd_ = 0;
-  allowPass2_ = 0;
-  hadPass2Start_ = 0;
-  currentMarkup_ = 0;
-  inputLevel_ = 1;
-  inInstance_ = 0;
-  defDtd_.clear();
-  defLpd_.clear();
-  dtd_[0].swap(pass1Dtd_);
-  dtd_.clear();
-  dsEntity_.clear();
-  currentDtd_.clear();
-  currentDtdConst_.clear();
-  phase_ = noPhase;
-  pass2_ = 1;
-  lpd_.clear();
-  allLpd_.clear();
-  return 1;
-}
-
-Boolean ParserState::referenceDsEntity(const Location &loc)
-{
-  if (dsEntity_.isNull())
-    return 0;
-  Ptr<EntityOrigin> origin
-    = EntityOrigin::make(internalAllocator(), dsEntity_, loc);
-  dsEntity_->dsReference(*this, origin);
-  dsEntity_.clear();
-  return inputLevel() > 1;
-}
-
-void ParserState::startDtd(const StringC &name)
-{
-  defDtd_ = new Dtd(name, dtd_.size() == 0);
-  defLpd_.clear();
-  for (size_t i = 0; i < options().includes.size(); i++) {
-    StringC name = options().includes[i];
-    const SubstTable<Char> *subst = syntax().entitySubstTable();
-    for (size_t j = 0; j < name.size(); j++)
-      subst->subst(name[j]);
-    Text text;
-    text.addChars(syntax().reservedName(Syntax::rINCLUDE), Location());
-    Entity *entity
-      = new InternalTextEntity(name,
-			       Entity::parameterEntity,
-			       Location(),
-			       text,
-			       InternalTextEntity::none);
-    entity->setUsed();
-    defDtd_->insertEntity(entity);
-  }
-  size_t nEntities = instanceSyntax_->nEntities();
-  for (size_t i = 0; i < nEntities; i++) {
-    Text text;
-    text.addChar(instanceSyntax_->entityChar(i), Location());
-    Entity *entity
-      = new InternalCdataEntity(instanceSyntax_->entityName(i),
-				Location(),
-				text);
-    defDtd_->insertEntity(entity);
-  }
-  currentDtd_ = defDtd_;
-  currentDtdConst_ = defDtd_;
-  currentMode_ = dsMode;
-}
-
-void ParserState::endDtd()
-{
-  dtd_.push_back(defDtd_);
-  defDtd_.clear();
-  currentDtd_.clear();
-  currentDtdConst_.clear();
-  currentMode_ = proMode;
-}
-
-void ParserState::startLpd(Ptr<Lpd> &lpd)
-{
-  defLpd_ = lpd;
-  defDtd_ = defLpd_->sourceDtd();
-  currentDtd_ = defLpd_->sourceDtd();
-  currentDtdConst_ = defLpd_->sourceDtd();
-  currentMode_ = dsMode;
-}
-
-void ParserState::endLpd()
-{
-  hadLpd_ = 1;
-  if (defLpd_->active())
-    lpd_.push_back(defLpd_);
-  allLpd_.push_back(defLpd_);
-  defLpd_.clear();
-  currentDtd_.clear();
-  currentDtdConst_.clear();
-  currentMode_ = proMode;
-}
-
-void ParserState::popInputStack()
-{
-  ASSERT(inputLevel_ > 0);
-  InputSource *p = inputStack_.get();
-  inputLevel_--;
-  delete p;
-  if (specialParseInputLevel_ > 0 && inputLevel_ == specialParseInputLevel_)
-    currentMode_ = specialParseMode_;
-  if (currentMode_ == dsiMode
-      && inputLevel_ == 1
-      && markedSectionLevel_ == 0)
-    currentMode_ = dsMode;
-  if (inputLevelElementIndex_.size())
-    inputLevelElementIndex_.resize(inputLevelElementIndex_.size() - 1);
-}
-
-void ParserState::setSd(ConstPtr<Sd> sd)
-{
-  sd_ = sd;
-  mayDefaultAttribute_ = (sd_->omittag() || sd_->attributeDefault());
-  validate_ = sd_->typeValid();
-  implydefElement_ = sd_->implydefElement();
-  implydefAttlist_ = sd_->implydefAttlist();
-}
-
-void ParserState::setSyntax(ConstPtr<Syntax> syntax)
-{
-  syntax_ = syntax;
-  prologSyntax_ = syntax;
-  instanceSyntax_ = syntax;
-}
-
-void ParserState::setSyntaxes(ConstPtr<Syntax> prologSyntax,
-			      ConstPtr<Syntax> instanceSyntax)
-{
-  syntax_ = prologSyntax;
-  prologSyntax_ = prologSyntax;
-  instanceSyntax_ = instanceSyntax;
-}
-
-void ParserState::pushInput(InputSource *in)
-{
-  if (!in)
-    return;
-  if (!syntax_.isNull() && syntax_->multicode())
-    in->setMarkupScanTable(syntax_->markupScanTable());
-  inputStack_.insert(in);
-  inputLevel_++;
-  if (specialParseInputLevel_ > 0 && inputLevel_ > specialParseInputLevel_)
-    currentMode_ = rcconeMode;	// mode for rcdata in an entity
-  else if (currentMode_ == dsMode)
-    currentMode_ = dsiMode;
-  if (inInstance_ && sd().integrallyStored())
-    inputLevelElementIndex_.push_back(tagLevel() ? currentElement().index() : 0);
-}
-
-void ParserState::startMarkedSection(const Location &loc)
-{
-  markedSectionLevel_++;
-  markedSectionStartLocation_.push_back(loc);
-  if (currentMode_ == dsMode)
-    currentMode_ = dsiMode;
-  if (markedSectionSpecialLevel_)
-    markedSectionSpecialLevel_++;
-}
-
-void ParserState::startSpecialMarkedSection(Mode mode, const Location &loc)
-{
-  markedSectionLevel_++;
-  markedSectionStartLocation_.push_back(loc);
-  specialParseInputLevel_ = inputLevel_;
-  markedSectionSpecialLevel_ = 1;
-  specialParseMode_ = currentMode_ = mode;
-}
-
-void ParserState::endMarkedSection()
-{
-  ASSERT(markedSectionLevel_ > 0);
-  markedSectionLevel_--;
-  markedSectionStartLocation_.resize(markedSectionStartLocation_.size()
-					- 1);
-  if (markedSectionSpecialLevel_ > 0) {
-    markedSectionSpecialLevel_--;
-    if (markedSectionSpecialLevel_ > 0)
-      return;			// remain in imsMode
-    specialParseInputLevel_ = 0;
-    if (inInstance_)
-      currentMode_ = contentMode();
-    else
-      currentMode_ = dsiMode;
-  }
-  if (currentMode_ == dsiMode
-      && inputLevel_ == 1
-      && markedSectionLevel_ == 0)
-    currentMode_ = dsMode;
-}
-
-void ParserState::pushElement(OpenElement *e)
-{
-  ContentState::pushElement(e);
-  pcdataRecovering_ = 0;
-  // the start tag of this element may have been implied by data
-  // inside a cdata or rcdata marked section
-  if (markedSectionSpecialLevel_ == 0) {
-    currentMode_ = contentMode();
-    if (e->requiresSpecialParse()) {
-      specialParseMode_ = currentMode_;
-      specialParseInputLevel_ = inputLevel_;
-    }
-  }
-}
-
-// PCDATA was encountered somewhere where it was not allowed.
-// Change the current mode to improve recovery.
-
-void ParserState::pcdataRecover()
-{
-  switch (currentMode_) {
-  case econMode:
-    currentMode_ = mconMode;
-    break;
-  case econnetMode:
-    currentMode_ = mconnetMode;
-    break;
-  default:
-    break;
-  }
-  pcdataRecovering_ = 1;
-}
-
-OpenElement *ParserState::popSaveElement()
-{
-  OpenElement *e = ContentState::popSaveElement();
-  // the end tag of this element may have been implied by data
-  // inside a cdata or rcdata marked section
-  if (markedSectionSpecialLevel_ == 0) {
-    currentMode_ = contentMode();
-    specialParseInputLevel_ = 0;
-  }
-  pcdataRecovering_ = 0;
-  return e;
-}
-
-void ParserState::popElement()
-{
-  delete popSaveElement();
-}
-			      
-Boolean ParserState::entityIsOpen(const Entity *entity) const
-{
-  for (IListIter<InputSource> iter(inputStack_); !iter.done(); iter.next()) {
-    const EntityOrigin *eo
-      = iter.cur()->currentLocation().origin()->asEntityOrigin();
-    if (eo && eo->entity() == entity)
-      return 1;
-  }
-  return 0;
-}
-
-void ParserState::startInstance()
-{
-  if (!instanceSyntax_.isNull())
-    syntax_ = instanceSyntax_;
-  currentMode_ = econMode;
-  currentDtd_ = dtd_[0];
-  currentDtdConst_ = dtd_[0];
-  startContent(currentDtd());
-  inInstance_ = 1;
-  if (sd().rank())
-    currentRank_.assign(currentDtd().nRankStem(), StringC());
-  currentAttributes_.clear();
-  currentAttributes_.resize(currentDtd().nCurrentAttribute());
-  idTable_.clear();
-}
-
-Id *ParserState::lookupCreateId(const StringC &name)
-{
-  Id *id = idTable_.lookup(name);
-  if (!id) {
-    id = new Id(name);
-    idTable_.insert(id);
-  }
-  return id;
-}
-
-ConstPtr<Entity>
-ParserState::lookupEntity(Boolean isParameter,
-			  const StringC &name,
-			  const Location &useLocation,
-			  Boolean referenced)
-{
-  Dtd *dtd;
-  if (resultAttributeSpecMode_)
-    dtd = defComplexLpd().resultDtd().pointer();
-  else
-    dtd = currentDtd_.pointer();
-  if (dtd) {
-    Ptr<Entity> entity(dtd->lookupEntity(isParameter, name));
-    // Did we find it in pass1Dtd?
-    // Did we look at the defaultEntity?
-    if (!inInstance_ && pass2() && dtd->isBase()
-	&& !resultAttributeSpecMode_
-	&& (entity.isNull() || !entity->declInActiveLpd())) {
-      ConstPtr<Entity> entity1
-	= pass1Dtd_->lookupEntity(isParameter, name);
-      if (!entity1.isNull() && entity1->declInActiveLpd()
-	  && !entity1->defaulted()) {
-	if (referenced)
-	  noteReferencedEntity(entity1, 1, 0);
-	return entity1;
-      }
-      else if (!entity.isNull()) {
-	if (referenced)
-	  noteReferencedEntity(entity, 0, 0);
-	entity->setUsed();
-	return entity;
-      }
-    }
-    else if (!entity.isNull()) {
-      entity->setUsed();
-      return entity;
-    }
-    if (!isParameter) {
-      ConstPtr<Entity> entity(dtd->defaultEntity());
-      Boolean note = 0;
-      Boolean usedPass1 = 0;
-      if (!inInstance_ && pass2() && dtd->isBase()
-	  && !resultAttributeSpecMode_
-	  && (entity.isNull() || !entity->declInActiveLpd())) {
-	if (referenced)
-	  note = 1;
-	ConstPtr<Entity> entity1 = pass1Dtd_->defaultEntity();
-	if (!entity1.isNull() && entity1->declInActiveLpd()) {
-	  usedPass1 = 1;
-	  entity = entity1;
-	}
-      }
-      if (!entity.isNull()) {
-	Boolean mustCopy = 1;
-	if (inInstance_) {
-	  ConstPtr<Entity> tem 
-	    = instanceDefaultedEntityTable_.lookupConst(name);
-	  if (!tem.isNull()) {
-	    entity = tem;
-	    mustCopy = 0;
-	  }
-	}
-	if (mustCopy) {
-	  Ptr<Entity> p(entity->copy());
-	  p->setName(name);
-	  p->generateSystemId(*this);
-	  p->setDefaulted();
-	  entity = p;
-	  if (inInstance_) {
-	    instanceDefaultedEntityTable_.insert(p);
-	    eventHandler().entityDefaulted(new (eventAllocator())
-					   EntityDefaultedEvent(entity,
-								useLocation));
-	  }
-	  else
-	    dtd->insertEntity(p);
-	}
-	if (note)
-	  noteReferencedEntity(entity, usedPass1, 1);
-      }
-      else
-	entity = undefinedEntityTable_.lookupConst(name);
-      return entity;
-    }
-  }
-  return (Entity *)0;
-}
-
-ConstPtr<Entity> ParserState::createUndefinedEntity(const StringC &name, const Location &loc)
-{
-  Text text;
-  Ptr<Entity> entity(new InternalCdataEntity(name, loc, text));
-  undefinedEntityTable_.insert(entity);
-  return entity;
-}
-
-void ParserState::noteReferencedEntity(const ConstPtr<Entity> &entity,
-				       Boolean foundInPass1Dtd,
-				       Boolean lookedAtDefault)
-{
-  LpdEntityRef ref;
-  ref.entity = entity;
-  ref.lookedAtDefault = lookedAtDefault;
-  ref.foundInPass1Dtd = foundInPass1Dtd;
-  LpdEntityRef *old = lpdEntityRefs_.lookup(ref);
-  if (!old)
-    lpdEntityRefs_.insert(new LpdEntityRef(ref));
-}
-
-// Compare entity definitions.
-// e1 is the original (will not be an external non-text entity).
-// FIXME should look at generated sysids as well.
-static
-Boolean sameEntityDef(const Entity *e1, const Entity *e2)
-{
-  if (e1->dataType() != e2->dataType())
-    return 0;
-  const InternalEntity *i1 = e1->asInternalEntity();
-  const InternalEntity *i2 = e2->asInternalEntity();
-  if (i1) {
-    if (!i2)
-      return 0;
-    if (i1->string() != i2->string())
-      return 0;
-    return 1;
-  }
-  else if (i2)
-    return 0;
-  const ExternalEntity *x1 = e1->asExternalEntity();
-  const ExternalEntity *x2 = e2->asExternalEntity();
-  const StringC *s1 = x1->externalId().systemIdString();
-  const StringC *s2 = x2->externalId().systemIdString();
-  if (s1) {
-    if (!s2)
-      return 0;
-    if (*s1 != *s2)
-      return 0;
-  }
-  else if (s2)
-    return 0;
-  s1 = x1->externalId().publicIdString();
-  s2 = x2->externalId().publicIdString();
-  if (s1) {
-    if (!s2)
-      return 0;
-    if (*s1 != *s2)
-      return 0;
-  }
-  else if (s2)
-    return 0;
-  return 1;
-}
-
-void ParserState::checkEntityStability()
-{
-  LpdEntityRefSetIter iter(lpdEntityRefs_);
-  LpdEntityRef *ref;
-  while ((ref = iter.next()) != 0) {
-    ConstPtr<Entity> entity
-      = dtd_[0]->lookupEntity(ref->entity->declType()
-			      == Entity::parameterEntity,
-			      ref->entity->name());
-    if (entity.isNull() && ref->lookedAtDefault)
-      entity = dtd_[0]->defaultEntity();
-    if (entity.isNull()
-	? ref->foundInPass1Dtd
-	: !sameEntityDef(ref->entity.pointer(), entity.pointer()))
-      message(((ref->entity->declType()
-		== Entity::parameterEntity)
-	       ? ParserMessages::unstableLpdParameterEntity
-	       : ParserMessages::unstableLpdGeneralEntity),
-	      StringMessageArg(ref->entity->name()));
-  }
-  {
-    // Ensure that the memory is released.
-    LpdEntityRefSet tem;
-    lpdEntityRefs_.swap(tem);
-  }
-}    
-
-Boolean ParserState::appendCurrentRank(StringC &str, const RankStem *stem)
-     const
-{
-  const StringC &suffix = currentRank_[stem->index()];
-  if (suffix.size() > 0) {
-    str += suffix;
-    return 1;
-  }
-  return 0;
-}
-
-void ParserState::setCurrentRank(const RankStem *stem, const StringC &suffix)
-{
-  currentRank_[stem->index()] = suffix;
-}
-
-void ParserState::getCurrentToken(const SubstTable<Char> *subst,
-				  StringC &str) const
-{
-  InputSource *in = currentInput();
-  const Char *p = in->currentTokenStart();
-  size_t count = in->currentTokenLength();
-  str.resize(count);
-  StringC::iterator s = str.begin();
-  for (; count > 0; --count)
-    *s++ = (*subst)[*p++];
-}
-
-void ParserState::queueMessage(MessageEvent *event)
-{
-  if (cancelled()) {
-    delete event;
-    return;
-  }
-  if (keepingMessages_)
-    keptMessages_.append(event);
-  else
-    handler_->message(event);
-}
-
-void ParserState::releaseKeptMessages()
-{
-  keepingMessages_ = 0;
-  while (!keptMessages_.empty()) {
-    if (cancelled()) {
-      allDone();
-      return;
-    }
-    handler_->message(keptMessages_.get());
-  }
-}
-
-void ParserState::discardKeptMessages()
-{
-  keepingMessages_ = 0;
-  keptMessages_.clear();
-}
-
-void ParserState::initMessage(Message &msg)
-{
-  if (inInstance()) {
-    StringC rniPcdata = syntax().delimGeneral(Syntax::dRNI);
-    rniPcdata += syntax().reservedName(Syntax::rPCDATA);
-    getOpenElementInfo(msg.openElementInfo, rniPcdata);
-  }
-  msg.loc = currentLocation();
-}
-
-void ParserState::dispatchMessage(Message &msg)
-{
-  queueMessage(new MessageEvent(msg));
-}
-
-void ParserState::dispatchMessage(const Message &msg)
-{
-  queueMessage(new MessageEvent(msg));
-}
-
-AttributeList *
-ParserState::allocAttributeList(const ConstPtr<AttributeDefinitionList> &def,
-				unsigned i)
-{
-  if (i < attributeLists_.size())
-    attributeLists_[i]->init(def);
-  else {
-    attributeLists_.resize(i + 1);
-    attributeLists_[i] = new AttributeList(def);
-  }
-  return attributeLists_[i].pointer();
-}
-
-void ParserState::activateLinkType(const StringC &name)
-{
-  if (!hadPass2Start_ && !pass2_)
-    activeLinkTypes_.push_back(name);
-  else
-    message(ParserMessages::linkActivateTooLate);
-}
-
-Boolean ParserState::shouldActivateLink(const StringC &name) const
-{
-  if (!activeLinkTypesSubsted_) {
-    // FIXME use mutable
-    ParserState *state = (ParserState *)this;
-    for (size_t i = 0; i < activeLinkTypes_.size(); i++)
-      for (size_t j = 0; j < activeLinkTypes_[i].size(); j++)
-	syntax().generalSubstTable()->subst(state->activeLinkTypes_[i][j]);
-    state->activeLinkTypesSubsted_ = 1;
-  }
-  for (size_t i = 0; i < activeLinkTypes_.size(); i++)
-    if (name == activeLinkTypes_[i])
-      return 1;
-  return 0;
-}
-
-Ptr<Dtd> ParserState::lookupDtd(const StringC &name)
-{
-  for (size_t i = 0; i < dtd_.size(); i++)
-    if (dtd_[i]->name() == name)
-      return dtd_[i];
-  return Ptr<Dtd>();
-}
-
-ConstPtr<Lpd> ParserState::lookupLpd(const StringC &name) const
-{
-  for (size_t i = 0; i < allLpd_.size(); i++)
-    if (allLpd_[i]->name() == name)
-      return allLpd_[i];
-  return ConstPtr<Lpd>();
-}
-
-ConstPtr<Notation> ParserState::getAttributeNotation(const StringC &name,
-						     const Location &)
-{
-  ConstPtr<Notation> notation;
-  if (haveCurrentDtd())
-    notation = currentDtd().lookupNotation(name);
-  else if (resultAttributeSpecMode_) {
-    const Dtd *resultDtd = defComplexLpd().resultDtd().pointer();
-    if (!resultDtd)
-      return 0;
-    notation = resultDtd->lookupNotation(name);
-  }
-  return notation; 
-}
-
-ConstPtr<Entity> ParserState::getAttributeEntity(const StringC &str,
-						 const Location &loc)
-{
-  ConstPtr<Entity> entity = lookupEntity(0, str, loc, 0);
-  if (!entity.isNull()
-      && entity->defaulted()
-      && options().warnDefaultEntityReference) {
-    setNextLocation(loc);
-    message(ParserMessages::defaultEntityInAttribute,
-	    StringMessageArg(str));
-  }
-  return entity;
-}
-
-Boolean ParserState::defineId(const StringC &str, const Location &loc,
-			      Location &prevLoc)
-{
-  if (!inInstance() || !validate())
-    return 1;
-  Id *id = lookupCreateId(str);
-  if (id->defined()) {
-    prevLoc = id->defLocation();
-    return 0;
-  }
-  id->define(loc);
-  return 1;
-}
-
-void ParserState::noteIdref(const StringC &str, const Location &loc)
-{
-  if (!inInstance() || !options().errorIdref || !validate())
-    return;
-  Id *id = lookupCreateId(str);
-  if (!id->defined())
-    id->addPendingRef(loc);
-}
-
-void ParserState::noteCurrentAttribute(size_t i, AttributeValue *value)
-{
-  if (inInstance())
-    currentAttributes_[i] = value;
-}
-
-ConstPtr<AttributeValue> ParserState::getCurrentAttribute(size_t i) const
-{
-  if (!inInstance())
-    return ConstPtr<AttributeValue>();
-  return currentAttributes_[i];
-}
-
-const Syntax &ParserState::attributeSyntax() const
-{
-  return syntax();
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ParserState.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,844 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef ParserState_INCLUDED
-#define ParserState_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <stddef.h>
-#include <signal.h>
-#include "Allocator.h"
-#include "Attribute.h"
-#include "Boolean.h"
-#include "Vector.h"
-#include "StringC.h"
-#include "Dtd.h"
-#include "Entity.h"
-#include "EntityCatalog.h"
-#include "EntityManager.h"
-#include "Event.h"
-#include "EventQueue.h"
-#include "Id.h"
-#include "InputSource.h"
-#include "IList.h"
-#include "IQueue.h"
-#include "Location.h"
-#include "Message.h"
-#include "Mode.h"
-#include "OpenElement.h"
-#include "OutputState.h"
-#include "ParserOptions.h"
-#include "Ptr.h"
-#include "Recognizer.h"
-#include "Sd.h"
-#include "Syntax.h"
-#include "NCVector.h"
-#include "Owner.h"
-#include "Lpd.h"
-#include "LpdEntityRef.h"
-#include "Markup.h"
-#include "ContentState.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class ParserState : public ContentState, public AttributeContext { 
-public:
-  enum Phase {
-    noPhase,
-    initPhase,
-    prologPhase,
-    declSubsetPhase,
-    instanceStartPhase,
-    contentPhase
-    };
-  ParserState(const Ptr<EntityManager> &,
-	      const ParserOptions &,
-	      unsigned subdocLevel,
-	      Phase finalPhase);
-  void setHandler(EventHandler *, const volatile sig_atomic_t *cancelPtr);
-  void unsetHandler();
-  Boolean inInstance() const;
-  Boolean hadDtd() const;
-  void allDone();
-  void startDtd(const StringC &);
-  void endDtd();
-  void startInstance();
-  unsigned subdocLevel() const;
-  Boolean haveDefLpd() const;
-  Dtd &defDtd();
-  const Ptr<Dtd> &defDtdPointer() const;
-  Boolean haveCurrentDtd() const;
-  const Dtd &currentDtd() const;
-  Dtd &currentDtdNonConst() const;
-  const ConstPtr<Dtd> &currentDtdPointer() const;
-  void startLpd(Ptr<Lpd> &lpd);
-  void endLpd();
-  Lpd &defLpd();
-  Ptr<Lpd> &defLpdPointer();
-  Ptr<ComplexLpd> defComplexLpdPointer();
-  size_t nActiveLink() const;
-  const Lpd &activeLpd(size_t i) const;
-  ComplexLpd &defComplexLpd();
-  Ptr<Dtd> lookupDtd(const StringC &name);
-  Ptr<Dtd> baseDtd();
-  void activateLinkType(const StringC &);
-  void allLinkTypesActivated();
-  void setResultAttributeSpecMode();
-  void clearResultAttributeSpecMode();
-  Boolean haveApplicableDtd() const;
-  Boolean hadLpd() const;
-  Boolean pass2() const;
-  void setPass2Start();
-  Boolean maybeStartPass2();
-  void checkEntityStability();
-  void noteReferencedEntity(const ConstPtr<Entity> &entity,
-			    Boolean, Boolean);
-  ConstPtr<Lpd> lookupLpd(const StringC &name) const;
-  Boolean shouldActivateLink(const StringC &) const;
-  Char currentChar() const;
-  const Location &currentLocation() const;
-  InputSource *currentInput() const;
-  EntityManager &entityManager() const;
-  Ptr<EntityManager> entityManagerPtr() const;
-  const EntityCatalog &entityCatalog() const;
-  ConstPtr<EntityCatalog> entityCatalogPtr() const;
-  void setEntityCatalog(const ConstPtr<EntityCatalog> &);
-  void setSyntax(ConstPtr<Syntax>);
-  void setSyntaxes(ConstPtr<Syntax>, ConstPtr<Syntax>);
-  void setSd(ConstPtr<Sd>);
-  const Syntax &syntax() const;
-  const Syntax &instanceSyntax() const;
-  const ConstPtr<Syntax> &syntaxPointer() const;
-  const ConstPtr<Syntax> &prologSyntaxPointer() const;
-  const ConstPtr<Syntax> &instanceSyntaxPointer() const;
-  const Sd &sd() const;
-  const ConstPtr<Sd> &sdPointer() const;
-  void setPhase(Phase phase);
-  Phase phase() const;
-  Phase finalPhase() const;
-  Mode currentMode() const;
-  void setRecognizer(Mode, ConstPtr<Recognizer>);
-  void setNormalMap(const XcharMap<PackedBoolean> &);
-  const XcharMap<PackedBoolean> &normalMap() const;
-  Xchar getChar();
-  void skipChar();
-  Token getToken(Mode mode);
-  StringC currentToken() const;
-  void getCurrentToken(StringC &) const;
-  void getCurrentToken(const SubstTable<Char> *, StringC &) const;
-  unsigned inputLevel() const;
-  unsigned specialParseInputLevel() const;
-  unsigned markedSectionLevel() const;
-  unsigned markedSectionSpecialLevel() const;
-  unsigned currentInputElementIndex() const;
-  const Location &currentMarkedSectionStartLocation() const;
-  Boolean entityIsOpen(const Entity *) const;
-  void popInputStack();
-  void pushInput(InputSource *);
-  Boolean referenceDsEntity(const Location &);
-  void setDsEntity(const ConstPtr<Entity> &);
-  Boolean eventQueueEmpty() const;
-  Event *eventQueueGet();
-  EventHandler &eventHandler();
-  void pushElement(OpenElement *);
-  OpenElement *popSaveElement();
-  void popElement();
-  void pcdataRecover();
-  Boolean pcdataRecovering() const;
-  ConstPtr<Entity> lookupEntity(Boolean isParameter,
-				const StringC &name,
-				const Location &,
-				Boolean referenced);
-  ConstPtr<Entity> createUndefinedEntity(const StringC &,
-					 const Location &);
-  Boolean appendCurrentRank(StringC &, const RankStem *) const;
-  void setCurrentRank(const RankStem *, const StringC &);
-  void startMarkedSection(const Location &);
-  void startSpecialMarkedSection(Mode, const Location &);
-  void endMarkedSection();
-  void queueRe(const Location &);
-  void noteMarkup();
-  void noteData();
-  void noteRs();
-  void noteStartElement(Boolean included);
-  void noteEndElement(Boolean included);
-  // size of objects allocated with this must not exceed
-  // sizeof(StartElementEvent)
-  Allocator &eventAllocator();
-  // size of objects allocated with this must not exceed
-  // sizeof(OpenElement)
-  Allocator &internalAllocator();
-  AttributeList *allocAttributeList(const ConstPtr<AttributeDefinitionList> &,
-				    unsigned i);
-
-  static void freeEvent(void *);
-  Boolean wantMarkup() const;
-  const EventsWanted &eventsWanted() const;
-  StringC &nameBuffer();
-  typedef NamedTableIter<Id> IdTableIter;
-  IdTableIter idTableIter();
-  const ParserOptions &options() const;
-  void enableImplydef();
-  Boolean implydefElement();
-  Boolean implydefAttlist();
-  void keepMessages();
-  void releaseKeptMessages();
-  void discardKeptMessages();
-  Messenger &messenger();
-
-  Markup *currentMarkup();
-  const Location &markupLocation() const;
-  Markup *startMarkup(Boolean, const Location &);
-  void inheritActiveLinkTypes(const ParserState &parent);
-  Boolean cancelled() const;
-
-  // AFDR extensions
-  void setHadAfdrDecl();
-  Boolean hadAfdrDecl() const;
-
-  // Implementation of AttributeContext.
-  Boolean defineId(const StringC &, const Location &, Location &);
-  void noteIdref(const StringC &, const Location &);
-  void noteCurrentAttribute(size_t, AttributeValue *);
-  ConstPtr<AttributeValue> getCurrentAttribute(size_t) const;
-  ConstPtr<Entity> getAttributeEntity(const StringC &,
-				      const Location &);
-  ConstPtr<Notation> getAttributeNotation(const StringC &,
-					  const Location &);
-  const Syntax &attributeSyntax() const;
-
-private:
-  ParserState(const ParserState &); // undefined
-  void operator=(const ParserState &); // undefined
-  void dispatchMessage(Message &);
-  void dispatchMessage(const Message &);
-  void initMessage(Message &);
-  void queueMessage(MessageEvent *);
-  Id *lookupCreateId(const StringC &);
-
-  ParserOptions options_;
-  EventHandler *handler_;
-  Pass1EventHandler pass1Handler_;
-  Boolean allowPass2_;
-  Offset pass2StartOffset_;
-  Boolean hadPass2Start_;
-  EventQueue eventQueue_;
-  OutputState outputState_;
-  ConstPtr<Syntax> prologSyntax_;
-  ConstPtr<Syntax> instanceSyntax_;
-  ConstPtr<Sd> sd_;
-  unsigned subdocLevel_;
-  Ptr<EntityManager> entityManager_;
-  ConstPtr<EntityCatalog> entityCatalog_;
-  Phase phase_;
-  Phase finalPhase_;
-  Boolean inInstance_;
-  Ptr<Dtd> defDtd_;
-  Ptr<Lpd> defLpd_;
-  Vector<ConstPtr<Lpd> > allLpd_;
-  Vector<ConstPtr<Lpd> > lpd_; // active LPDs
-  Vector<StringC> activeLinkTypes_;
-  Boolean activeLinkTypesSubsted_;
-  Boolean hadLpd_;
-  Boolean resultAttributeSpecMode_;
-  Boolean pass2_;
-  typedef OwnerTable<LpdEntityRef, LpdEntityRef, LpdEntityRef, LpdEntityRef>
-    LpdEntityRefSet;
-  typedef OwnerTableIter<LpdEntityRef, LpdEntityRef, LpdEntityRef, LpdEntityRef>
-    LpdEntityRefSetIter;
-  LpdEntityRefSet lpdEntityRefs_;
-  // external entity to be referenced at the end of the declaration subset
-  ConstPtr<Entity> dsEntity_;
-  Allocator eventAllocator_;
-  Allocator internalAllocator_;
-  NCVector<Owner<AttributeList> > attributeLists_;
-  StringC nameBuffer_;
-  Boolean keepingMessages_;
-  IQueue<MessageEvent> keptMessages_;
-  Mode currentMode_;
-  Boolean pcdataRecovering_;
-  // if in a special parse (cdata, rcdata, ignore), the input level
-  // at which the special parse started.
-  unsigned specialParseInputLevel_;
-  Mode specialParseMode_;
-  unsigned markedSectionLevel_;
-  unsigned markedSectionSpecialLevel_;
-  Vector<Location> markedSectionStartLocation_;
-  ConstPtr<Recognizer> recognizers_[nModes];
-  XcharMap<PackedBoolean> normalMap_;
-  unsigned inputLevel_;
-  IList<InputSource> inputStack_;
-  Vector<unsigned> inputLevelElementIndex_;
-  Ptr<Dtd> currentDtd_;
-  ConstPtr<Dtd> currentDtdConst_;
-  Vector<Ptr<Dtd> > dtd_;
-  Ptr<Dtd> pass1Dtd_;
-  ConstPtr<Syntax> syntax_;
-  Vector<StringC> currentRank_;
-  NamedTable<Id> idTable_;
-  NamedResourceTable<Entity> instanceDefaultedEntityTable_;
-  NamedResourceTable<Entity> undefinedEntityTable_;
-  Vector<ConstPtr<AttributeValue> > currentAttributes_;
-  Markup *currentMarkup_;
-  Markup markup_;
-  Location markupLocation_;
-  Boolean hadAfdrDecl_;
-  Boolean implydefElement_;
-  Boolean implydefAttlist_;
-  const volatile sig_atomic_t *cancelPtr_;
-  static sig_atomic_t dummyCancel_;
-  static const Location nullLocation_;
-};
-
-inline
-Messenger &ParserState::messenger()
-{
-  return *this;
-}
-
-inline
-Boolean ParserState::wantMarkup() const
-{
-  return (inInstance_
-	  ? options_.eventsWanted.wantInstanceMarkup()
-	  : options_.eventsWanted.wantPrologMarkup());
-}
-
-
-
-inline
-const EventsWanted &ParserState::eventsWanted() const
-{
-  return options_.eventsWanted;
-}
-
-inline
-InputSource *ParserState::currentInput() const
-{
-  return inputStack_.head();
-}
-
-inline
-const Location &ParserState::currentLocation() const
-{
-  InputSource *in = currentInput();
-  return in ? in->currentLocation() : nullLocation_;
-}
-
-inline
-Boolean ParserState::pcdataRecovering() const
-{
-  return pcdataRecovering_;
-}
-
-inline
-unsigned ParserState::inputLevel() const
-{
-  return inputLevel_;
-}
-
-inline
-unsigned ParserState::specialParseInputLevel() const
-{
-  return specialParseInputLevel_;
-}
-
-inline
-unsigned ParserState::markedSectionLevel() const
-{
-  return markedSectionLevel_;
-}
-
-inline
-unsigned ParserState::markedSectionSpecialLevel() const
-{
-  return markedSectionSpecialLevel_;
-}
-
-inline
-const Location &ParserState::currentMarkedSectionStartLocation() const
-{
-  return markedSectionStartLocation_.back();
-}
-
-inline
-unsigned ParserState::currentInputElementIndex() const
-{
-  return inputLevelElementIndex_.back();
-}
-
-inline
-Char ParserState::currentChar() const
-{
-  return currentInput()->currentTokenStart()[0];
-}
-
-inline
-StringC ParserState::currentToken() const
-{
-  return StringC(currentInput()->currentTokenStart(),
-		 currentInput()->currentTokenLength());
-}
-
-inline
-void ParserState::getCurrentToken(StringC &str) const
-{
-  InputSource *in = currentInput();
-  str.assign(in->currentTokenStart(), in->currentTokenLength());
-}
-
-inline
-void ParserState::setRecognizer(Mode mode, ConstPtr<Recognizer> p)
-{
-  recognizers_[mode] = p;
-}
-
-inline
-void ParserState::setNormalMap(const XcharMap<PackedBoolean> &map)
-{
-  normalMap_ = map;
-}
-
-inline
-const XcharMap<PackedBoolean> &ParserState::normalMap() const
-{
-  return normalMap_;
-}
-
-inline
-Boolean ParserState::haveDefLpd() const
-{
-  return !defLpd_.isNull();
-}
-
-inline
-Boolean ParserState::haveCurrentDtd() const
-{
-  return !currentDtd_.isNull();
-}
-
-inline
-Dtd &ParserState::defDtd()
-{
-  return *defDtd_;
-}
-
-inline
-const Dtd &ParserState::currentDtd() const
-{
-  return *currentDtd_;
-}
-
-inline
-Dtd &ParserState::currentDtdNonConst() const
-{
-  return *currentDtd_;
-}
-
-inline
-const Ptr<Dtd> &ParserState::defDtdPointer() const
-{
-  return defDtd_;
-}
-
-inline
-const ConstPtr<Dtd> &ParserState::currentDtdPointer() const
-{
-  return currentDtdConst_;
-}
-
-inline
-Boolean ParserState::inInstance() const
-{
-  return inInstance_;
-}
-
-inline
-const Syntax &ParserState::syntax() const
-{
-  return *syntax_;
-}
-
-inline
-const Syntax &ParserState::instanceSyntax() const
-{
-  return *instanceSyntax_;
-}
-
-inline
-const ConstPtr<Syntax> &ParserState::syntaxPointer() const
-{
-  return syntax_;
-}
-
-inline
-const ConstPtr<Syntax> &ParserState::instanceSyntaxPointer() const
-{
-  return instanceSyntax_;
-}
-
-inline
-const ConstPtr<Syntax> &ParserState::prologSyntaxPointer() const
-{
-  return prologSyntax_;
-}
-
-inline
-const Sd &ParserState::sd() const
-{
-  return *sd_;
-}
-
-inline
-const ConstPtr<Sd> &ParserState::sdPointer() const
-{
-  return sd_;
-}
-
-inline
-void ParserState::setPhase(Phase phase)
-{
-  phase_ = phase;
-}
-
-inline
-Mode ParserState::currentMode() const
-{
-  return currentMode_;
-}
-
-inline
-Xchar ParserState::getChar()
-{
-  return inputStack_.head()->get(messenger());
-}
-
-inline
-void ParserState::skipChar()
-{
-  (void)getChar();
-}
-
-inline
-Token ParserState::getToken(Mode mode)
-{
-  return recognizers_[mode]->recognize(inputStack_.head(), messenger());
-}
-
-inline
-Boolean ParserState::hadDtd() const
-{
-  return dtd_.size() > 0;
-}
-
-inline
-Boolean ParserState::eventQueueEmpty() const
-{
-  return eventQueue_.empty();
-}
-
-inline
-Event *ParserState::eventQueueGet()
-{
-  return eventQueue_.get();
-}
-
-inline
-ParserState::Phase ParserState::phase() const
-{
-  return phase_;
-}
-
-inline
-ParserState::Phase ParserState::finalPhase() const
-{
-  return finalPhase_;
-}
-
-inline
-EntityManager &ParserState::entityManager() const
-{
-  return *entityManager_;
-}
-
-inline
-Ptr<EntityManager> ParserState::entityManagerPtr() const
-{
-  return entityManager_;
-}
-
-inline
-const EntityCatalog &ParserState::entityCatalog() const
-{
-  return *entityCatalog_;
-}
-
-inline
-ConstPtr<EntityCatalog> ParserState::entityCatalogPtr() const
-{
-  return entityCatalog_;
-}
-
-inline
-void ParserState::setEntityCatalog(const ConstPtr<EntityCatalog> &catalog)
-{
-  entityCatalog_ = catalog;
-}
-
-inline
-void ParserState::setDsEntity(const ConstPtr<Entity> &entity)
-{
-  dsEntity_ = entity;
-}
-
-inline
-Allocator &ParserState::eventAllocator()
-{
-  return eventAllocator_;
-}
-
-inline
-Allocator &ParserState::internalAllocator()
-{
-  return internalAllocator_;
-}
-
-inline
-StringC &ParserState::nameBuffer()
-{
-  return nameBuffer_;
-}
-
-inline
-void ParserState::setHandler(EventHandler *handler,
-			     const volatile sig_atomic_t *cancelPtr)
-{
-  handler_ = handler;
-  cancelPtr_ = cancelPtr ? cancelPtr : &dummyCancel_;
-}
-
-inline
-void ParserState::unsetHandler()
-{
-  handler_ = &eventQueue_;
-  cancelPtr_ = &dummyCancel_;
-}
-
-inline
-void ParserState::queueRe(const Location &location)
-{
-  outputState_.handleRe(*handler_, eventAllocator_, options_.eventsWanted,
-			syntax().standardFunction(Syntax::fRE),
-			location);
-}
-
-inline
-void ParserState::noteMarkup()
-{
-  if (inInstance_)
-    outputState_.noteMarkup(*handler_, eventAllocator_, options_.eventsWanted);
-}
-
-inline
-void ParserState::noteRs()
-{
-  outputState_.noteRs(*handler_, eventAllocator_, options_.eventsWanted);
-}
-
-inline
-void ParserState::noteStartElement(Boolean included)
-{
-  outputState_.noteStartElement(included, *handler_, eventAllocator_,
-				options_.eventsWanted);
-}
-
-inline
-void ParserState::noteEndElement(Boolean included)
-{
-  outputState_.noteEndElement(included, *handler_, eventAllocator_,
-			      options_.eventsWanted);
-}
-
-inline
-void ParserState::noteData()
-{
-  outputState_.noteData(*handler_, eventAllocator_, options_.eventsWanted);
-}
-
-inline
-unsigned ParserState::subdocLevel() const
-{
-  return subdocLevel_;
-}
-
-inline
-EventHandler &ParserState::eventHandler()
-{
-  return *handler_;
-}
-
-inline
-ParserState::IdTableIter ParserState::idTableIter()
-{
-  // Avoid use of typedef to work around MSVC 2.0 bug.
-  return NamedTableIter<Id>(idTable_);
-}
-
-inline
-const ParserOptions &ParserState::options() const
-{
-  return options_;
-}
-
-inline
-Boolean ParserState::implydefElement()
-{
-  return implydefElement_;
-}
-
-inline
-Boolean ParserState::implydefAttlist()
-{
-  return implydefAttlist_;
-}
-
-inline
-void ParserState::enableImplydef()
-{
-  implydefElement_ = 1;
-  implydefAttlist_ = 1;
-}
-
-inline
-void ParserState::keepMessages()
-{
-  keepingMessages_ = 1;
-}
-
-inline
-Boolean ParserState::haveApplicableDtd() const
-{
-  return !currentDtd_.isNull();
-}
-
-inline
-Boolean ParserState::hadLpd() const
-{
-  return hadLpd_;
-}
-
-inline
-Boolean ParserState::pass2() const
-{
-  return pass2_;
-}
-
-inline
-size_t ParserState::nActiveLink() const
-{
-  return lpd_.size();
-}
-
-inline
-const Lpd &ParserState::activeLpd(size_t i) const
-{
-  return *lpd_[i];
-}
-
-inline
-Lpd &ParserState::defLpd()
-{
-  return *defLpd_;
-}
-
-inline
-Ptr<Lpd> &ParserState::defLpdPointer()
-{
-  return defLpd_;
-}
-
-inline
-Ptr<ComplexLpd> ParserState::defComplexLpdPointer()
-{
-  return (ComplexLpd *)defLpd_.pointer();
-}
-
-inline
-ComplexLpd &ParserState::defComplexLpd()
-{
-  return (ComplexLpd &)defLpd();
-}
-
-inline
-Ptr<Dtd> ParserState::baseDtd() 
-{
-  if (dtd_.size() > 0)
-    return dtd_[0];
-  else
-    return Ptr<Dtd>();
-}
-
-inline
-void ParserState::setResultAttributeSpecMode()
-{
-  resultAttributeSpecMode_ = 1;
-}
-
-inline
-void ParserState::clearResultAttributeSpecMode()
-{
-  resultAttributeSpecMode_ = 0;
-}
-
-inline
-Markup *ParserState::currentMarkup()
-{
-  return currentMarkup_;
-}
-
-inline
-const Location &ParserState::markupLocation() const
-{
-  return markupLocation_;
-}
-
-inline
-Markup *ParserState::startMarkup(Boolean storing, const Location &loc)
-{
-  markupLocation_ = loc;
-  if (storing) {
-    markup_.clear();
-    return currentMarkup_ = &markup_;
-  }
-  else
-    return currentMarkup_ = 0;
-}
-
-inline
-Boolean ParserState::cancelled() const
-{
-  return *cancelPtr_ != 0;
-}
-
-inline
-void ParserState::setHadAfdrDecl()
-{
-  hadAfdrDecl_ = 1;
-}
-
-inline
-Boolean ParserState::hadAfdrDecl() const
-{
-  return hadAfdrDecl_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not ParserState_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Partition.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Partition.h"
-#include "ISet.h"
-#include "ISetIter.h"
-#include "SubstTable.h"
-#include "Link.h"
-#include "IList.h"
-#include "IListIter.h"
-#include "Owner.h"
-#include "macros.h"
-#include "EquivClass.h"
-#include "constant.h"
-#include "StringC.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-static void refineByChar(IList<EquivClass> *, Char);
-static void refineBySet(IList<EquivClass> *, const ISet<Char> &, unsigned);
-
-#if _MSC_VER == 900
-// Work around MSVC 2.0 bug.
-typedef SubstTable<Char> _msvc_dummy;
-#endif
-
-Partition::Partition(const ISet<Char> &chars,
-		     const ISet<Char> **sets,
-		     int nSets,
-		     const SubstTable<Char> &subst)
-: map_(0)			// eE gets code 0
-{
-  IList<EquivClass> classes;
-  classes.insert(new EquivClass);
-  classes.head()->set.addRange(0, charMax);
-
-  {
-    ISetIter<Char> iter(chars);
-    Char min, max;
-    while (iter.next(min, max)) {
-      do {
-	refineByChar(&classes, subst[min]);
-      } while (min++ != max);
-    }
-  }
-
-  int i;
-  for (i = 0; i < nSets; i++)
-    refineBySet(&classes, *sets[i], (1 << i));
-
-  maxCode_ = 0;
-
-  setCodes_.resize(nSets);
-
-  for (IListIter<EquivClass> listIter(classes);
-       !listIter.done();
-       listIter.next()) {
-    ++maxCode_;
-    ASSERT(maxCode_ != 0);
-    EquivClass *p = listIter.cur();
-    for (i = 0; i < nSets; i++)
-      if ((1 << i) & p->inSets)
-	setCodes_[i] += maxCode_;
-    ISetIter<Char> setIter(p->set);
-    Char min, max;
-    while (setIter.next(min, max))
-      map_.setRange(min, max, maxCode_);
-  }
-
-  {
-    ISetIter<Char> iter(chars);
-    Char min, max;
-    while (iter.next(min, max)) {
-      do {
-	StringC str(subst.inverse(min));
-	EquivCode code = map_[min];
-	for (size_t i = 0; i < str.size(); i++)
-	  map_.setChar(str[i], code);
-      } while (min++ != max);
-    }
-  }
-}
-
-static
-void refineByChar(IList<EquivClass> *classes, Char c)
-{
-  // Avoid modifying *classes, while there's an active iter on it.
-  EquivClass *found = 0;
-  {
-    for (IListIter<EquivClass> iter(*classes); !iter.done(); iter.next()) {
-      if (iter.cur()->set.contains(c)) {
-	found = iter.cur();
-	break;
-      }
-    }
-  }
-  if (found && !found->set.isSingleton()) {
-    found->set.remove(c);
-    classes->insert(new EquivClass(found->inSets));
-    classes->head()->set.add(c);
-  }
-}
-
-static
-void addUpTo(ISet<Char> *to, Char limit, const ISet<Char> &from)
-{
-  ISetIter<Char> iter(from);
-  Char min, max;
-  while (iter.next(min, max) && min < limit)
-    to->addRange(min, max >= limit ? limit - 1 : max);
-}
-
-enum RefineResult { allIn, allOut, someInSomeOut };
-
-static
-RefineResult refine(const ISet<Char> &set, const ISet<Char> &refiner,
-		    ISet<Char> *inp, ISet<Char> *outp)
-{
-  Char setMin, setMax, refMin, refMax;
-  ISetIter<Char> refIter(refiner);
-  ISetIter<Char> setIter(set);
-  Boolean oneIn = 0;
-  Boolean oneOut = 0;
-
-  if (!refIter.next(refMin, refMax))
-    return allOut;
-  while (setIter.next(setMin, setMax)) {
-    while (setMin <= setMax) {
-      while (refMax < setMin && refIter.next(refMin, refMax))
-	;
-      if (refMax < setMin || setMin < refMin) {
-	if (!oneOut) {
-	  if (oneIn)
-	    addUpTo(inp, setMin, set);
-	  oneOut = 1;
-	}
-	if (refMax < setMin || refMin > setMax) {
-	  if (oneIn)
-	    outp->addRange(setMin, setMax);
-	  break;
-	}
-	else {
-	  if (oneIn)
-	    outp->addRange(setMin, refMin - 1);
-	  setMin = refMin;
-	}
-      }
-      else {
-	if (!oneIn) {
-	  if (oneOut)
-	    addUpTo(outp, setMin, set);
-	  oneIn = 1;
-	}
-	if (setMax <= refMax) {
-	  if (oneOut)
-	    inp->addRange(setMin, setMax);
-	  break;
-	}
-	else {
-	  // refMax < setMax
-	  if (oneOut)
-	    inp->addRange(setMin, refMax);
-	  // avoid wrapping round
-	  if (refMax == charMax)
-	    break;
-	  setMin = refMax + 1;
-	}
-      }
-    }
-  }
-  if (oneIn)
-    return oneOut ? someInSomeOut : allIn;
-  else
-    return allOut;
-}
-
-static
-void refineBySet(IList<EquivClass> *classes, const ISet<Char> &set,
-		 unsigned setFlag)
-{
-  Owner<EquivClass> in(new EquivClass), out(new EquivClass);
-  IList<EquivClass> newClasses;
-  for (;;) {
-    EquivClass *p = classes->head();
-    if (!p)
-      break;
-    if (!out)
-      out = new EquivClass;
-    switch (refine(p->set, set, &in->set, &out->set)) {
-    case someInSomeOut:
-      in->inSets = p->inSets | setFlag;
-      newClasses.insert(in.extract());
-      out->inSets = p->inSets;
-      newClasses.insert(out.extract());
-      in = classes->get();
-      in->set.clear();
-      in->inSets = 0;
-      break;
-    case allIn:
-      p->inSets |= setFlag;
-      newClasses.insert(classes->get());
-      break;
-    case allOut:
-      newClasses.insert(classes->get());
-      break;
-    }
-  }
-  classes->swap(newClasses);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Partition.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Partition_INCLUDED
-#define Partition_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "SubstTable.h"
-#include "StringOf.h"
-#include "ISet.h"
-#include "XcharMap.h"
-#include "Vector.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Partition {
-public:
-  Partition(const ISet<Char> &chars,
-	    const ISet<Char> **sets,
-	    int nSets,
-	    const SubstTable<Char> &subst);
-  EquivCode maxCode() const;
-  EquivCode charCode(Char c) const;
-  EquivCode eECode() const;
-  const String<EquivCode> &setCodes(int i) const;
-  const XcharMap<EquivCode> &map() const;
-private:
-  Partition(const Partition &);	// undefined
-  void operator=(const Partition &); // undefined
-  EquivCode maxCode_;
-  Vector<String<EquivCode> > setCodes_;
-  XcharMap<EquivCode> map_;
-};
-
-inline
-EquivCode Partition::maxCode() const
-{
-  return maxCode_;
-}
-
-inline
-EquivCode Partition::charCode(Char c) const
-{
-  return map_[c];
-}
-
-inline
-EquivCode Partition::eECode() const
-{
-  return 0;
-}
-
-inline
-const String<EquivCode> &Partition::setCodes(int i) const
-{
-  return setCodes_[i];
-}
-
-inline
-const XcharMap<EquivCode> &Partition::map() const
-{
-  return map_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Partition_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/PosixStorage.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,718 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "PosixStorage.h"
-#include "RewindStorageObject.h"
-#include "StorageManager.h"
-#include "DescriptorManager.h"
-#include "MessageArg.h"
-#include "ErrnoMessageArg.h"
-#include "SearchResultMessageArg.h"
-#include "Message.h"
-#include "StringC.h"
-#include "StringOf.h"
-#include "CharsetInfo.h"
-#include "CodingSystem.h"
-#include "macros.h"
-#include "PosixStorageMessages.h"
-
-#include <sys/types.h>
-#include <stdio.h>
-#include <ctype.h>
-
-#ifdef SP_INCLUDE_IO_H
-#include <io.h>		// for open, fstat, lseek, read prototypes
-#endif
-
-#ifdef SP_INCLUDE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef SP_INCLUDE_OSFCN_H
-#include <osfcn.h>
-#endif
-
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <stddef.h>
-
-#ifndef S_ISREG
-#ifndef S_IFREG
-#define S_IFREG _S_IFREG
-#endif
-#ifndef S_IFMT
-#define S_IFMT _S_IFMT
-#endif
-#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
-#endif /* not S_ISREG */
-
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-#ifdef SP_WIDE_SYSTEM
-#include <windows.h>
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-#ifdef SP_WIDE_SYSTEM
-typedef wchar_t FChar;
-#else
-typedef char FChar;
-#endif
-
-class PosixBaseStorageObject : public RewindStorageObject {
-public:
-  PosixBaseStorageObject(int fd, Boolean mayRewind);
-  size_t getBlockSize() const;
-protected:
-  enum { defaultBlockSize = 8192 };
-  int fd_;
-  PackedBoolean eof_;
-
-  Boolean seekToStart(Messenger &);
-  virtual Boolean seek(off_t, Messenger &) = 0;
-  static int xclose(int fd);
-private:
-  Boolean canSeek(int fd);
-  off_t startOffset_;
-};
-
-PosixBaseStorageObject::PosixBaseStorageObject(int fd, Boolean mayRewind)
-: fd_(fd), eof_(0),
-  RewindStorageObject(mayRewind, mayRewind && canSeek(fd))
-{
-}
-
-Boolean PosixBaseStorageObject::canSeek(int fd)
-{
-  struct stat sb;
-  if (fstat(fd, &sb) < 0 || !S_ISREG(sb.st_mode)
-      || (startOffset_ = lseek(fd, off_t(0), SEEK_CUR)) < 0)
-    return 0;
-  else
-    return 1;
-}
-
-Boolean PosixBaseStorageObject::seekToStart(Messenger &mgr)
-{
-  eof_ = 0;
-  return seek(startOffset_, mgr);
-}
-
-int PosixBaseStorageObject::xclose(int fd)
-{
-  int ret;
-  do {
-    ret = ::close(fd);
-  } while (ret < 0 && errno == EINTR);
-  return ret;
-}
-
-class PosixStorageObject : public PosixBaseStorageObject, private DescriptorUser {
-public:
-  PosixStorageObject(int fd,
-		     const StringC &,
-		     const String<FChar> &,
-		     Boolean mayRewind,
-		     DescriptorManager *);
-  ~PosixStorageObject();
-  Boolean read(char *buf, size_t bufSize, Messenger &mgr, size_t &nread);
-  Boolean suspend();
-  Boolean seek(off_t, Messenger &);
-  void willNotRewind();
-private:
-  void resume(Messenger &);
-
-  PackedBoolean suspended_;
-  off_t suspendPos_;
-  const MessageType2 *suspendFailedMessage_;
-  int suspendErrno_;
-  StringC filename_;
-  String<FChar> cfilename_;
-
-  void systemError(Messenger &, const MessageType2 &, int);
-};
-
-inline int openFile(const FChar *s) {
-#ifdef SP_WIDE_SYSTEM
-   int fd = _wopen(s, O_RDONLY|O_BINARY);
-   if (fd < 0 && errno != ENOENT) {
-     String<char> buf;
-     int len = WideCharToMultiByte(CP_ACP, 0, s, -1, 0, 0, 0, 0);
-     buf.resize(len + 1);
-     WideCharToMultiByte(CP_ACP, 0, s, -1, buf.begin(), len, 0, 0);
-     buf[len] = '\0';
-     return ::open(buf.data(), O_RDONLY|O_BINARY);
-   }
-   return fd;
-#else
-    return ::open(s, O_RDONLY|O_BINARY);
-#endif
-  }
-
-PosixStorageManager::PosixStorageManager(const char *type,
-					 const CharsetInfo *filenameCharset,
-#ifndef SP_WIDE_SYSTEM
-					 const OutputCodingSystem *filenameCodingSystem,
-#endif
-					 int maxFDs)
-: IdStorageManager(filenameCharset),
-  type_(type),
-#ifndef SP_WIDE_SYSTEM
-  filenameCodingSystem_(filenameCodingSystem),
-#endif
-  descriptorManager_(maxFDs)
-{
-  Char newline = idCharset()->execToDesc('\n');
-  reString_.assign(&newline, 1);
-}
-
-const char *PosixStorageManager::type() const
-{
-  return type_;
-}
-
-void PosixStorageManager::addSearchDir(const StringC &str)
-{
-  searchDirs_.push_back(str);
-}
-
-#ifdef SP_POSIX_FILENAMES
-
-#define FILENAME_TYPE_DEFINED
-
-// FIXME should use idCharset.
-
-Boolean PosixStorageManager::isAbsolute(const StringC &file) const
-{
-  return file.size() > 0 && file[0] == '/';
-}
-
-StringC PosixStorageManager::extractDir(const StringC &str) const
-{
-  for (size_t i = str.size(); i > 0; i--)
-    if (str[i - 1] == '/')
-      return StringC(str.data(), i);	// include slash for root case
-  return StringC();
-}
-
-StringC PosixStorageManager::combineDir(const StringC &dir,
-					const StringC &base) const
-{
-  StringC result(dir);
-  if (dir.size() > 0 && dir[dir.size() - 1] != '/')
-    result += '/';
-  result += base;
-  return result;
-}
-
-Boolean PosixStorageManager::transformNeutral(StringC &str, Boolean fold,
-					      Messenger &) const
-{
-  if (fold)
-    for (size_t i = 0; i < str.size(); i++) {
-      Char c = str[i];
-      if (c <= (unsigned char)-1)
-	str[i] = tolower(str[i]);
-    }
-  return 1;
-}
-
-#endif /* SP_POSIX_FILENAMES */
-
-#ifdef SP_MSDOS_FILENAMES
-
-#define FILENAME_TYPE_DEFINED
-
-Boolean PosixStorageManager::isAbsolute(const StringC &s) const
-{
-  if (s.size() == 0)
-    return 0;
-  return s[0] == '/' || s[0] == '\\' || (s.size() > 1 && s[1] == ':');
-}
-
-StringC PosixStorageManager::extractDir(const StringC &str) const
-{
-  for (size_t i = str.size(); i > 0; i--)
-    if (str[i - 1] == '/' || str[i - 1] == '\\'
-	|| (i == 2  && str[i - 1] == ':'))
-      return StringC(str.data(), i);	// include separator
-  return StringC();
-}
-
-StringC PosixStorageManager::combineDir(const StringC &dir,
-					const StringC &base) const
-{
-  StringC result(dir);
-  if (dir.size() > 0) {
-    Char lastChar = dir[dir.size() - 1];
-    if (lastChar != '/' && lastChar != '\\'
-	&& !(dir.size() == 2 && lastChar == ':'))
-    result += '\\';
-  }
-  result += base;
-  return result;
-}
-
-Boolean PosixStorageManager::transformNeutral(StringC &str, Boolean,
-					      Messenger &) const
-{
-  for (size_t i = 0; i < str.size(); i++)
-    if (str[i] == '/')
-      str[i] = '\\';
-  return 1;
-}
-
-#endif /* SP_MSDOS_FILENAMES */
-
-#ifdef SP_MAC_FILENAMES
-// Colons separate directory names
-// relative path-names start with a colon, or have no colons
-// absolute path-names don't start with a colon and have at least one colon
-#define FILENAME_TYPE_DEFINED
-
-Boolean PosixStorageManager::isAbsolute(const StringC &s) const
-{
-  if (s.size() == 0)
-    return 0;
-  if (s[0] == ':')
-    return 0;	// starts with a colon => relative
-  size_t ss = s.size();
-  for (size_t i = 0; i < ss; i++)
-    if (s[i] == ':')
-      return 1; // absolute
-  return 0; // no colons => relative
-}
-
-StringC PosixStorageManager::extractDir(const StringC &str) const
-{
-  for (size_t i = str.size(); i > 0; i--)
-    if (str[i - 1] == ':')
-      return StringC(str.data(), i);	// include separator
-  return StringC();
-}
-
-StringC PosixStorageManager::combineDir(const StringC &dir,
-					const StringC &base) const
-{
-  StringC result(dir);
-  if (dir.size() > 0) {
-    Char lastChar = dir[dir.size() - 1];
-    if (lastChar != ':')
-    result += ':';
-  }
-  if (base[0] == ':') {
-    StringC newbase(base.data() + 1,base.size() - 1);
-    result += newbase;
-  }
-  else result += base;
-  return result;
-}
-
-Boolean PosixStorageManager::transformNeutral(StringC &str, Boolean,
-					      Messenger &) const
-{
-  if (str[0] == '/') {	// absolute
-    StringC nstr(str.data() + 1,str.size()-1);
-    str = nstr;
-  }
-  else {	// relative
-    Char cc = ':';
-    StringC colon(&cc,1);
-    str.insert(0,colon);
-  }
-  for (size_t i = 0; i < str.size(); i++)
-    if (str[i] == '/')
-      str[i] = ':';
-  return 1;
-}
-
-#endif /* SP_MAC_FILENAMES */
-
-#ifndef FILENAME_TYPE_DEFINED
-
-Boolean PosixStorageManager::isAbsolute(const StringC &) const
-{
-  return 1;
-}
-
-StringC PosixStorageManager::extractDir(const StringC &) const
-{
-  return StringC();
-}
-
-StringC PosixStorageManager::combineDir(const StringC &,
-					const StringC &base) const
-{
-  return base;
-}
-
-Boolean PosixStorageManager::transformNeutral(StringC &, Boolean,
-					      Messenger &) const
-{
-  return 1;
-}
-
-#endif /* not FILENAME_TYPE_DEFINED */
-
-Boolean PosixStorageManager::resolveRelative(const StringC &baseId,
-					     StringC &specId,
-					     Boolean search) const
-{
-  if (isAbsolute(specId))
-    return 1;
-  if (!search || searchDirs_.size() == 0) {
-    specId = combineDir(extractDir(baseId), specId);
-    return 1;
-  }
-  return 0;
-}
-
-StorageObject *
-PosixStorageManager::makeStorageObject(const StringC &spec,
-				       const StringC &base,
-				       Boolean search,
-				       Boolean mayRewind,
-				       Messenger &mgr,
-				       StringC &found)
-{
-  if (spec.size() == 0) {
-    mgr.message(PosixStorageMessages::invalidFilename,
-		StringMessageArg(spec));
-    return 0;
-  }
-  descriptorManager_.acquireD();
-  Boolean absolute = isAbsolute(spec);
-  SearchResultMessageArg sr;
-  for (size_t i = 0; i < searchDirs_.size() + 1; i++) {
-    StringC filename;
-    if (absolute)
-      filename = spec;
-    else if (i == 0)
-    	filename = combineDir(extractDir(base), spec);
-    else
-      filename = combineDir(searchDirs_[i - 1], spec);
-#ifdef SP_WIDE_SYSTEM
-    String<FChar> cfilename(filename);
-    cfilename += FChar(0);
-#else
-    String<FChar> cfilename = filenameCodingSystem_->convertOut(filename);
-#endif
-    int fd;
-    do {
-      fd = openFile(cfilename.data());
-    } while (fd < 0 && errno == EINTR);
-    if (fd >= 0) {
-      found = filename;
-      return new PosixStorageObject(fd,
-				    filename,
-				    cfilename,
-				    mayRewind,
-				    &descriptorManager_);
-    }
-    int savedErrno = errno;
-    if (absolute || !search || searchDirs_.size() == 0) {
-      ParentLocationMessenger(mgr).message(PosixStorageMessages::openSystemCall,
-					   StringMessageArg(filename),
-					   ErrnoMessageArg(savedErrno));
-      descriptorManager_.releaseD();
-      return 0;
-    }
-    sr.add(filename, savedErrno);
-  }
-  descriptorManager_.releaseD();
-  ParentLocationMessenger(mgr).message(PosixStorageMessages::cannotFind,
-				       StringMessageArg(spec), sr);
-  return 0;
-}
-
-PosixStorageObject::PosixStorageObject(int fd,
-				       const StringC &filename,
-				       const String<FChar> &cfilename,
-				       Boolean mayRewind,
-				       DescriptorManager *manager)
-: DescriptorUser(manager),
-  PosixBaseStorageObject(fd, mayRewind),
-  suspended_(0),
-  filename_(filename),
-  cfilename_(cfilename)
-{
-}
-
-PosixStorageObject::~PosixStorageObject()
-{
-  if (fd_ >= 0) {
-    (void)xclose(fd_);
-    releaseD();
-  }
-}
-
-Boolean PosixStorageObject::seek(off_t off, Messenger &mgr)
-{
-  if (lseek(fd_, off, SEEK_SET) < 0) {
-    fd_ = -1;
-    systemError(mgr, PosixStorageMessages::lseekSystemCall, errno);
-    return 0;
-  }
-  else
-    return 1;
-}
-
-Boolean PosixStorageObject::read(char *buf, size_t bufSize, Messenger &mgr,
-				 size_t &nread)
-{
-  if (readSaved(buf, bufSize, nread))
-    return 1;
-  if (suspended_)
-    resume(mgr);
-  if (fd_ < 0 || eof_)
-    return 0;
-  long n;
-  do {
-    n = ::read(fd_, buf, bufSize);
-  } while (n < 0 && errno == EINTR);
-  if (n > 0) {
-    nread = size_t(n);
-    saveBytes(buf, nread);
-    return 1;
-  }
-  if (n < 0) {
-    int saveErrno = errno;
-    releaseD();
-    (void)xclose(fd_);
-    systemError(mgr, PosixStorageMessages::readSystemCall, saveErrno);
-    fd_ = -1;
-  }
-  else {
-    eof_ = 1;
-    // n == 0, so end of file
-    if (!mayRewind_) {
-      releaseD();
-      if (xclose(fd_) < 0)
-	systemError(mgr, PosixStorageMessages::closeSystemCall, errno);
-      fd_ = -1;
-    }
-    
-  }
-  return 0;
-}
-
-void PosixStorageObject::willNotRewind()
-{
-  RewindStorageObject::willNotRewind();
-  if (eof_ && fd_ >= 0) {
-    releaseD();
-    (void)xclose(fd_);
-    fd_ = -1;
-  }
-}
-
-Boolean PosixStorageObject::suspend()
-{
-  if (fd_ < 0 || suspended_)
-    return 0;
-  struct stat sb;
-  if (fstat(fd_, &sb) < 0 || !S_ISREG(sb.st_mode))
-    return 0;
-  suspendFailedMessage_ = 0;
-  suspendPos_ = lseek(fd_, 0, SEEK_CUR);
-  if (suspendPos_ == (off_t)-1) {
-    suspendFailedMessage_ = &PosixStorageMessages::lseekSystemCall;
-    suspendErrno_ = errno;
-  }
-  if (xclose(fd_) < 0 && !suspendFailedMessage_) {
-    suspendFailedMessage_ = &PosixStorageMessages::closeSystemCall;
-    suspendErrno_ = errno;
-  }
-  fd_ = -1;
-  suspended_ = 1;
-  releaseD();
-  return 1;
-}
-
-void PosixStorageObject::resume(Messenger &mgr)
-{
-  ASSERT(suspended_);
-  if (suspendFailedMessage_) {
-    systemError(mgr, *suspendFailedMessage_, suspendErrno_);
-    suspended_ = 0;
-    return;
-  }
-  acquireD();
-  // suspended_ must be 1 until after acquireD() is called,
-  // so that we don't try to suspend this one before it is resumed.
-  suspended_ = 0;
-  do {
-    fd_ = openFile(cfilename_.data());
-  } while (fd_ < 0 && errno == EINTR);
-  if (fd_ < 0) {
-    releaseD();
-    systemError(mgr, PosixStorageMessages::openSystemCall, errno);
-    return;
-  }
-  if (lseek(fd_, suspendPos_, SEEK_SET) < 0) {
-    systemError(mgr, PosixStorageMessages::lseekSystemCall, errno);
-    (void)xclose(fd_);
-    fd_ = -1;
-    releaseD();
-  }
-}
-
-#ifdef SP_STAT_BLKSIZE
-
-size_t PosixBaseStorageObject::getBlockSize() const
-{
-  struct stat sb;
-  long sz;
-  if (fstat(fd_, &sb) < 0)
-    return defaultBlockSize;
-  if (!S_ISREG(sb.st_mode))
-    return defaultBlockSize;
-  if ((unsigned long)sb.st_blksize > size_t(-1))
-    sz = size_t(-1);
-  else
-    sz = sb.st_blksize;
-  return sz;
-}
-
-#else /* not SP_STAT_BLKSIZE */
-
-size_t PosixBaseStorageObject::getBlockSize() const
-{
-  return defaultBlockSize;
-}
-
-#endif /* not SP_STAT_BLKSIZE */
-
-void PosixStorageObject::systemError(Messenger &mgr,
-				     const MessageType2 &msg,
-				     int err)
-{
-  ParentLocationMessenger(mgr).message(msg,
-				       StringMessageArg(filename_),
-				       ErrnoMessageArg(err));
-}
-
-class PosixFdStorageObject : public PosixBaseStorageObject {
-public:
-  PosixFdStorageObject(int, Boolean mayRewind);
-  Boolean read(char *buf, size_t bufSize, Messenger &mgr, size_t &nread);
-  Boolean seek(off_t, Messenger &);
-  enum {
-    noError,
-    readError,
-    invalidNumberError,
-    lseekError
-  };
-private:
-  int origFd_;
-};
-
-PosixFdStorageManager::PosixFdStorageManager(const char *type,
-					     const CharsetInfo *idCharset)
-: IdStorageManager(idCharset), type_(type)
-{
-}
-
-Boolean PosixFdStorageManager::inheritable() const
-{
-  return 0;
-}
-
-StorageObject *PosixFdStorageManager::makeStorageObject(const StringC &id,
-							const StringC &,
-							Boolean,
-							Boolean mayRewind,
-							Messenger &mgr,
-							StringC &foundId)
-{
-  int n = 0;
-  size_t i;
-  for (i = 0; i < id.size(); i++) {
-    UnivChar ch;
-    if (!idCharset()->descToUniv(id[i], ch))
-      break;
-    if (ch < UnivCharsetDesc::zero || ch > UnivCharsetDesc::zero + 9)
-      break;
-    int digit = ch - UnivCharsetDesc::zero;
-    // Allow the division to be done at compile-time.
-    if (n > INT_MAX/10)
-      break;
-    n *= 10;
-    if (n > INT_MAX - digit)
-      break;
-    n += digit;
-  }
-  if (i < id.size() || i == 0) {
-    mgr.message(PosixStorageMessages::invalidNumber,
-		StringMessageArg(id));
-    return 0;
-  }
-  foundId = id;
-  // Could check access mode with fcntl(n, F_GETFL).
-  return new PosixFdStorageObject(n, mayRewind);
-}
-
-PosixFdStorageObject::PosixFdStorageObject(int fd, Boolean mayRewind)
-: PosixBaseStorageObject(fd, mayRewind), origFd_(fd)
-{
-}
-
-const char *PosixFdStorageManager::type() const
-{
-  return type_;
-}
-
-Boolean PosixFdStorageObject::read(char *buf, size_t bufSize, Messenger &mgr,
-				   size_t &nread)
-{
-  if (readSaved(buf, bufSize, nread))
-    return 1;
-  if (fd_ < 0 || eof_)
-    return 0;
-  long n;
-  do {
-    n = ::read(fd_, buf, bufSize);
-  } while (n < 0 && errno == EINTR);
-  if (n > 0) {
-    nread = size_t(n);
-    saveBytes(buf, nread);
-    return 1;
-  }
-  if (n < 0) {
-    ParentLocationMessenger(mgr).message(PosixStorageMessages::fdRead,
-					 NumberMessageArg(fd_),
-					 ErrnoMessageArg(errno));
-    fd_ = -1;
-  }
-  else
-    eof_ = 1;
-  return 0;
-}
-
-Boolean PosixFdStorageObject::seek(off_t off, Messenger &mgr)
-{
-  if (lseek(fd_, off, SEEK_SET) < 0) {
-    ParentLocationMessenger(mgr).message(PosixStorageMessages::fdLseek,
-					 NumberMessageArg(fd_),
-					 ErrnoMessageArg(errno));
-    return 0;
-  }
-  else
-    return 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/PosixStorageMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-// This file was automatically generated from lib\PosixStorageMessages.msg by msggen.pl.
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct PosixStorageMessages {
-  // 2200
-  static const MessageType2 readSystemCall;
-  // 2201
-  static const MessageType2 openSystemCall;
-  // 2202
-  static const MessageType2 closeSystemCall;
-  // 2203
-  static const MessageType2 lseekSystemCall;
-  // 2204
-  static const MessageType1 invalidFilename;
-  // 2205
-  static const MessageType2 fdRead;
-  // 2206
-  static const MessageType2 fdLseek;
-  // 2207
-  static const MessageType1 invalidNumber;
-  // 2208
-  static const MessageType2 cannotFind;
-};
-const MessageType2 PosixStorageMessages::readSystemCall(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2200
-#ifndef SP_NO_MESSAGE_TEXT
-,"error reading %1 (%2)"
-#endif
-);
-const MessageType2 PosixStorageMessages::openSystemCall(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2201
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot open %1 (%2)"
-#endif
-);
-const MessageType2 PosixStorageMessages::closeSystemCall(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2202
-#ifndef SP_NO_MESSAGE_TEXT
-,"error closing %1 (%2)"
-#endif
-);
-const MessageType2 PosixStorageMessages::lseekSystemCall(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2203
-#ifndef SP_NO_MESSAGE_TEXT
-,"error seeking on %1 (%2)"
-#endif
-);
-const MessageType1 PosixStorageMessages::invalidFilename(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2204
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid filename %1"
-#endif
-);
-const MessageType2 PosixStorageMessages::fdRead(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2205
-#ifndef SP_NO_MESSAGE_TEXT
-,"error reading file descriptor %1 (%2)"
-#endif
-);
-const MessageType2 PosixStorageMessages::fdLseek(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2206
-#ifndef SP_NO_MESSAGE_TEXT
-,"error seeking on file descriptor %1 (%2)"
-#endif
-);
-const MessageType1 PosixStorageMessages::invalidNumber(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2207
-#ifndef SP_NO_MESSAGE_TEXT
-,"%1 is not a valid file descriptor number"
-#endif
-);
-const MessageType2 PosixStorageMessages::cannotFind(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2208
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot find %1; tried %2"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Priority.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Priority_INCLUDED
-#define Priority_INCLUDED 1
-
-#include <limits.h>
-#include "Boolean.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Priority {
-public:
-  typedef unsigned char Type;
-  enum {
-    data = 0,
-    dataDelim = 1,
-    function = 2,
-    delim = UCHAR_MAX
-    };
-  static inline Type blank(int n) {
-    // `Priority::' works round gcc 2.5.5 bug
-    return Priority::Type(n + function);
-  }
-  static inline Boolean isBlank(Type t) {
-    return function < t && t < delim;
-  }
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Priority_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Recognizer.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Resource.h"
-#include "Trie.h"
-#include "Owner.h"
-#include "XcharMap.h"
-#include "Recognizer.h"
-#include "InputSource.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Recognizer::Recognizer(Trie *trie, const XcharMap<EquivCode> &map)
-: trie_(trie), map_(map), multicode_(0)
-{
-}
-
-Recognizer::Recognizer(Trie *trie, const XcharMap<EquivCode> &map,
-		       Vector<Token> &suppressTokens)
-: trie_(trie), map_(map), multicode_(1)
-{
-  suppressTokens.swap(suppressTokens_);
-}
-
-Token Recognizer::recognize(InputSource *in, Messenger &mgr) const
-{
-  if (multicode_) {
-    in->startToken();
-    if (in->scanSuppress())
-      return suppressTokens_[map_[in->tokenChar(mgr)]];
-  }
-  else
-    in->startTokenNoMulticode();
-  register const Trie *pos = trie_.pointer();
-  do {
-    pos = pos->next(map_[in->tokenChar(mgr)]);
-  } while (pos->hasNext());
-  if (!pos->blank()) {
-    in->endToken(pos->tokenLength());
-    return pos->token();
-  }
-  const BlankTrie *b = pos->blank();
-  const Trie *newPos = b;
-  size_t maxBlanks = b->maxBlanksToScan();
-  size_t nBlanks;
-  for (nBlanks = 0; nBlanks < maxBlanks; nBlanks++) {
-    EquivCode code = map_[in->tokenChar(mgr)];
-    if (!b->codeIsBlank(code)) {
-      if (newPos->hasNext())
-	newPos = newPos->next(code);
-      break;
-    }
-  }
-  while (newPos->hasNext())
-    newPos = newPos->next(map_[in->tokenChar(mgr)]);
-  if (newPos->token() != 0) {
-    in->endToken(newPos->tokenLength() + b->additionalLength() + nBlanks);
-    return newPos->token();
-  }
-  else {
-    in->endToken(pos->tokenLength() + (pos->includeBlanks() ? nBlanks : 0));
-    return pos->token();
-  }
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Recognizer.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Recognizer_INCLUDED
-#define Recognizer_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Resource.h"
-#include "Owner.h"
-#include "XcharMap.h"
-#include "types.h"
-#include "Vector.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class Messenger;
-class InputSource;
-class Trie;
-
-class Recognizer : public Resource {
-public:
-  Recognizer(Trie *, const XcharMap<EquivCode> &);
-  Recognizer(Trie *, const XcharMap<EquivCode> &, Vector<Token> &);
-  Token recognize(InputSource *, Messenger &) const;
-private:
-  Recognizer(const Recognizer &); // undefined
-  void operator=(const Recognizer &); // undefined
-  Boolean multicode_;
-  Owner<Trie> trie_;
-  XcharMap<EquivCode> map_;
-  Vector<Token> suppressTokens_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Recognizer_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/RewindStorageObject.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "RewindStorageObject.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-RewindStorageObject::RewindStorageObject(Boolean mayRewind, Boolean canSeek)
-: mayRewind_(mayRewind), canSeek_(canSeek),
-  savingBytes_(mayRewind && !canSeek), readingSaved_(0)
-{
-}
-
-Boolean RewindStorageObject::rewind(Messenger &mgr)
-{
-  ASSERT(mayRewind_);
-  if (canSeek_)
-    return seekToStart(mgr);
-  else {
-    readingSaved_ = 1;
-    nBytesRead_ = 0;
-    return 1;
-  }
-}
-
-void RewindStorageObject::unread(const char *s, size_t n)
-{
-  savedBytes_.append(s, n);
-  if (!readingSaved_) {
-    readingSaved_ = 1;
-    nBytesRead_ = 0;
-  }
-}
-
-void RewindStorageObject::willNotRewind()
-{
-  mayRewind_ = 0;
-  savingBytes_ = 0;
-  if (!readingSaved_) {
-    // Ensure that memory is released now.
-    String<char> tem;
-    tem.swap(savedBytes_);
-  }
-}
-
-Boolean RewindStorageObject::readSaved(char *buf, size_t bufSize,
-				       size_t &nread)
-{
-  if (!readingSaved_)
-    return 0;
-  if (nBytesRead_ >= savedBytes_.size()) {
-    if (!mayRewind_) {
-      // Ensure that memory is released now.
-      String<char> tem;
-      tem.swap(savedBytes_);
-    }
-    readingSaved_ = 0;
-    return 0;
-  }
-  nread = savedBytes_.size() - nBytesRead_;
-  if (nread > bufSize)
-    nread = bufSize;
-  memcpy(buf, savedBytes_.data() + nBytesRead_, nread);
-  nBytesRead_ += nread;
-  return 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/SGMLApplication.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "Boolean.h"
-#include "SGMLApplication.h"
-
-SGMLApplication::~SGMLApplication()
-{
-}
-
-void SGMLApplication::appinfo(const AppinfoEvent &)
-{
-}
-
-void SGMLApplication::startDtd(const StartDtdEvent &)
-{
-}
-
-void SGMLApplication::endDtd(const EndDtdEvent &)
-{
-}
-
-void SGMLApplication::endProlog(const EndPrologEvent &)
-{
-}
-
-void SGMLApplication::startElement(const StartElementEvent &)
-{
-}
-
-void SGMLApplication::endElement(const EndElementEvent &)
-{
-}
-
-void SGMLApplication::data(const DataEvent &)
-{
-}
-
-void SGMLApplication::sdata(const SdataEvent &)
-{
-}
-
-void SGMLApplication::pi(const PiEvent &)
-{
-}
-
-void SGMLApplication::externalDataEntityRef(const ExternalDataEntityRefEvent &)
-{
-}
-
-void SGMLApplication::subdocEntityRef(const SubdocEntityRefEvent &)
-{
-}
-
-void SGMLApplication::nonSgmlChar(const NonSgmlCharEvent &)
-{
-}
-
-void SGMLApplication::commentDecl(const CommentDeclEvent &)
-{
-}
-
-void SGMLApplication::markedSectionStart(const MarkedSectionStartEvent &)
-{
-}
-
-void SGMLApplication::markedSectionEnd(const MarkedSectionEndEvent &)
-{
-}
-
-void SGMLApplication::ignoredChars(const IgnoredCharsEvent &)
-{
-}
-
-void SGMLApplication::generalEntity(const GeneralEntityEvent &)
-{
-}
-
-void SGMLApplication::error(const ErrorEvent &)
-{
-}
-
-void SGMLApplication::openEntityChange(const OpenEntityPtr &)
-{
-}
-
-
-SGMLApplication::OpenEntity::OpenEntity()
-: count_(0)
-{
-}
-
-SGMLApplication::OpenEntity::~OpenEntity()
-{
-}
-
-SGMLApplication::OpenEntityPtr::OpenEntityPtr()
-: ptr_(0)
-{
-}
-
-SGMLApplication::OpenEntityPtr::OpenEntityPtr(const OpenEntityPtr &ptr)
-: ptr_(ptr.ptr_)
-{
-  if (ptr_)
-    ptr_->count_ += 1;
-}
-
-SGMLApplication::OpenEntityPtr::~OpenEntityPtr()
-{
-  if (ptr_) {
-    ptr_->count_ -= 1;
-    if (ptr_->count_ == 0)
-      delete ptr_;
-  }
-}
-
-void SGMLApplication::OpenEntityPtr::operator=(OpenEntity *p)
-{
-  if (p)
-    p->count_ += 1;
-  if (ptr_) {
-    ptr_->count_ -= 1;
-    if (ptr_->count_ == 0)
-      delete ptr_;
-  }
-  ptr_ = p;
-}
-
-SGMLApplication::Location::Location()
-{
-  init();
-}
-
-SGMLApplication::Location::Location(const OpenEntityPtr &ptr, Position pos)
-{
-  if (ptr)
-    *this = ptr->location(pos);
-  else
-    init();
-}
-
-void SGMLApplication::Location::init()
-{
-  entityName.ptr = 0;
-  entityName.len = 0;
-  filename.ptr = 0;
-  filename.len = 0;
-  lineNumber = (unsigned long)-1;
-  columnNumber = (unsigned long)-1;
-  byteOffset = (unsigned long)-1;
-  entityOffset = (unsigned long)-1;
-  other = 0;
-}
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/SJISCodingSystem.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,181 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-
-#ifdef SP_MULTI_BYTE
-
-#include "SJISCodingSystem.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SJISDecoder : public Decoder {
-public:
-  SJISDecoder();
-  size_t decode(Char *, const char *, size_t, const char **);
-private:
-};
-
-class SJISEncoder : public RecoveringEncoder {
-public:
-  SJISEncoder();
-  void output(const Char *, size_t, OutputByteStream *);
-  void output(Char *tmp_char, size_t tmp_size_t, OutputByteStream *tmp_obs) {
-        output((const Char *)tmp_char, (size_t) tmp_size_t, (OutputByteStream *)tmp_obs);
-  }
-
-};
-
-Decoder *SJISCodingSystem::makeDecoder() const
-{
-  return new SJISDecoder;
-}
-
-Encoder *SJISCodingSystem::makeEncoder() const
-{
-  return new SJISEncoder;
-}
-
-
-SJISDecoder::SJISDecoder()
-{
-}
-
-size_t SJISDecoder::decode(Char *to, const char *s,
-			   size_t slen, const char **rest)
-{
-  Char *start = to;
-  while (slen > 0) {
-    unsigned char c = *(unsigned char *)s;
-    if (!(c & 0x80)) {
-      *to++ = c;
-      s++;
-      slen--;
-    }
-    else if (129 <= c && c <= 159) {
-      if (slen < 2)
-	break;
-      s++;
-      slen -= 2;
-      unsigned char c2 = *(unsigned char *)s++;
-      unsigned short n = ((c - 112) << 9) | c2;
-      if (64 <= c2 && c2 <= 127)
-	n -= 31 + (1 << 8);
-      else if (c2 <= 158)
-	n -= 32 + (1 << 8);
-      else if (c2 <= 252)
-	n -= 126;
-      else
-	continue;
-      n |= 0x8080;
-      *to++ = n;
-    }
-    else if (224 <= c && c <= 239) {
-      if (slen < 2)
-	break;
-      s++;
-      slen -= 2;
-      unsigned char c2 = *(unsigned char *)s++;
-      unsigned short n = ((c - 176) << 9) | c2;
-      if (64 <= c2 && c2 <= 127)
-	n -= 31 + (1 << 8);
-      else if (c2 <= 158)
-	n -= 32 + (1 << 8);
-      else if (c2 <= 252)
-	n -= 126;
-      else
-	continue;
-      n |= 0x8080;
-      *to++ = n;
-    }
-    else if (161 <= c && c <= 223) {
-      slen--;
-      s++;
-      *to++ = c;
-    }
-    else {
-      // 128, 160, 240-255
-      slen--;
-      s++;
-    }
-  }
-  *rest = s;
-  return to - start;
-}
-
-SJISEncoder::SJISEncoder()
-{
-}
-
-void SJISEncoder::output(const Char *s, size_t n, OutputByteStream *sb)
-{
-  for (; n > 0; s++, n--) {
-    Char c = *s;
-    unsigned short mask = (unsigned short)(c & 0x8080);
-    if (mask == 0)
-      sb->sputc((unsigned char)(c & 0xff));
-    else if (mask == 0x8080) {
-      unsigned char c1 = (c >> 8) & 0x7f;
-      unsigned char c2 = c & 0x7f;
-      unsigned char out1;
-      if (c1 < 33)
-	out1 = 0;
-      else if (c1 < 95)
-	out1 = ((c1 + 1) >> 1) + 112;
-      else if (c1 < 127)
-	out1 = ((c1 + 1) >> 1) + 176;
-      else
-	out1 = 0;
-      if (out1) {
-	unsigned char out2;
-	if (c1 & 1) {
-	  if (c2 < 33)
-	    out2 = 0;
-	  else if (c2 <= 95)
-	    out2 = c2 + 31;
-	  else if (c2 <= 126)
-	    out2 = c2 + 32;
-	  else
-	    out2 = 0;
-	}
-	else {
-	  if (33 <= c2 && c2 <= 126)
-	    out2 = c2 + 126;
-	  else
-	    out2 = 0;
-	}
-	if (out2) {
-	  sb->sputc(out1);
-	  sb->sputc(out2);
-	}
-	else
-	  handleUnencodable(c, sb);
-      }
-      else
-	handleUnencodable(c, sb);
-    }
-    else if (mask == 0x0080) {
-      if (161 <= c && c <= 223)
-	sb->sputc((unsigned char)(c & 0xff));
-      else
-	handleUnencodable(c, sb);
-    }
-    else
-      handleUnencodable(c, sb);
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#else /* not SP_MULTI_BYTE */
-
-#ifndef __GNUG__
-static char non_empty_translation_unit;	// sigh
-#endif
-
-#endif /* not SP_MULTI_BYTE */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/SOEntityCatalog.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1149 +0,0 @@
-// Copyright (c) 1994, 1995, 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "CharsetInfo.h"
-#include "MessageArg.h"
-#include "CatalogMessages.h"
-#include "SOEntityCatalog.h"
-#include "EntityDecl.h"
-#include "EntityCatalog.h"
-#include "Message.h"
-#include "StringC.h"
-#include "types.h"
-#include "HashTable.h"
-#include "InputSource.h"
-#include "Boolean.h"
-#include "SubstTable.h"
-#include "CatalogEntry.h"
-#include "Vector.h"
-#include "StorageManager.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class CatalogParser;
-class SOEntityCatalog;
-
-class SOCatalogManagerImpl : public SOCatalogManager {
-public:
-  SOCatalogManagerImpl(const Vector<StringC> &sysids,
-		       size_t nSysidsMustExist,
-		       const CharsetInfo *sysidCharset,
-		       const CharsetInfo *catalogCharset,
-		       Boolean useDocCatalog);
-  ConstPtr<EntityCatalog> makeCatalog(StringC &systemId,
-				      const CharsetInfo &charset,
-				      ExtendEntityManager *,
-				      Messenger &) const;
-  Boolean mapCatalog(ParsedSystemId &systemId,
-		     ExtendEntityManager *em,
-		     Messenger &mgr) const;
-private:
-  void addCatalogsForDocument(CatalogParser &parser,
-			      StringC &sysid,
-			      SOEntityCatalog *,
-			      const CharsetInfo &charset,
-			      Messenger &mgr) const;
-  size_t nSystemCatalogsMustExist_;
-  Vector<StringC> systemCatalogs_;
-  const CharsetInfo *sysidCharset_;
-  const CharsetInfo *catalogCharset_;
-  Boolean useDocCatalog_;
-};
-
-class SOEntityCatalog : public EntityCatalog {
-public:
-  SOEntityCatalog(Ptr<ExtendEntityManager> em);
-  typedef EntityDecl::DeclType DeclType;
-  Boolean document(const CharsetInfo &, Messenger &, StringC &) const;
-  Boolean sgmlDecl(const CharsetInfo &, Messenger &, StringC &) const;
-  Boolean lookup(const EntityDecl &entity,
-		 const Syntax &,
-		 const CharsetInfo &,
-		 Messenger &,
-		 StringC &) const;
-  Boolean lookupPublic(const StringC &,
-		       const CharsetInfo &,
-		       Messenger &,
-		       StringC &) const;
-  Boolean lookupChar(const StringC &,
-                     const CharsetInfo &,
-		     Messenger &,
-		     UnivChar &) const;
-  void addPublicId(StringC &publicId, StringC &systemId, const Location &,
-		   Boolean override);
-  void addDelegate(StringC &prefix, StringC &systemId, const Location &,
-		   Boolean override);
-  void addSystemId(StringC &systemId, StringC &replSystemId, const Location &);
-  void addName(StringC &name, DeclType, StringC &systemId, const Location &,
-	       Boolean override);
-  void setSgmlDecl(StringC &str, const Location &loc);
-  void setDocument(StringC &str, const Location &loc);
-  void setBase(const Location &loc);
-  void endCatalog();
-  const Ptr<ExtendEntityManager> &entityManager() {
-    return em_;
-  }
-private:
-  SOEntityCatalog(const SOEntityCatalog &);	// undefined
-  void operator=(const SOEntityCatalog &);	// undefined
-
-  Boolean expandCatalogSystemId(const StringC &str,
-				const Location &loc,
-				size_t baseNumber,
-				Boolean isNdata,
-				const CharsetInfo &charset,
-				const StringC *lookupPublicId,
-				Messenger &mgr,
-				StringC &result) const;
-  const CatalogEntry *
-    findBestPublicEntry(const StringC &publicId, Boolean overrideOnly,
-			const CharsetInfo &charset, Boolean &delegated) const;
-
-  class Table {
-  public:
-    Table();
-    const CatalogEntry *lookup(const StringC &, Boolean overrideOnly) const;
-    const CatalogEntry *lookup(const StringC &key,
-			       const SubstTable<Char> &substTable,
-			       Boolean overrideOnly) const;
-    void insert(const StringC &, const CatalogEntry &, Boolean override);
-    size_t count() const;
-  private:
-    Table(const Table &);	// undefined
-    void operator=(const Table &); // undefined
-    // These are entries that are applicable when an explicit system id
-    // was specified in the external identifier.
-    HashTable<StringC,CatalogEntry> overrideEntries_;
-    // This specifies the entries that should substitute for the
-    // overrideEntries_ when an explicit system identifier was not specified.
-    HashTable<StringC,CatalogEntry> normalEntries_;
-  };
-
-  Table publicIds_;
-  Table delegates_;
-  HashTable<StringC,CatalogEntry> systemIds_;
-  Table names_[5];
-  size_t catalogNumber_;
-  Boolean haveSgmlDecl_;
-  StringC sgmlDecl_;
-  Location sgmlDeclLoc_;
-  size_t sgmlDeclBaseNumber_;
-  StringC document_;
-  Boolean haveDocument_;
-  Location documentLoc_;
-  size_t documentBaseNumber_;
-  Boolean haveCurrentBase_;
-  Vector<Location> base_;
-  Ptr<ExtendEntityManager> em_;
-};
-
-class CatalogParser : private Messenger {
-public:
-  CatalogParser(const CharsetInfo &);
-  void parseCatalog(const StringC &sysid,
-		    Boolean mustExist,
-		    const CharsetInfo &sysidCharset,
-		    const CharsetInfo &catalogCharset,
-		    InputSourceOrigin *origin,
-		    SOEntityCatalog *catalog,
-		    Messenger &mgr);
-public:
-  // Since it's a return type, it has to be public to keep some 
-  // (broken) compilers happy.
-  enum Param {
-    eofParam,
-    literalParam,
-    nameParam,
-    percentParam
-  };
-private:
-  enum {
-    data,
-    eof,
-    nul,
-    lit,
-    lita,
-    minus,
-    s,
-    min				// other minimum data characters
-  };
-  enum { minimumLiteral = 01 };
-
-  Messenger &messenger() { return *this; }
-  void dispatchMessage(Message &);
-  void dispatchMessage(const Message &);
-  void initMessage(Message &);
-  void parsePublic();
-  void parseDelegate();
-  void parseDtddecl();
-  void parseSystem();
-  void parseNameMap(EntityDecl::DeclType declType);
-  void parseOverride();
-  Param parseParam(unsigned flags = 0);
-  Boolean parseArg();
-  void parseLiteral(Char delim, unsigned flags);
-  void parseName();
-  void skipComment();
-  void upcase(StringC &);
-  Boolean inLoop(const Location &loc);
-  Boolean isMinimumData(Xchar c) {
-    int cat = categoryTable_[c];
-    return (cat == min || (cat == s && c != tab_)
-	    || cat == minus || cat == lita);
-  }
-  Xchar get() { return in_->get(messenger()); }
-  void unget() { in_->ungetToken(); }
-  Messenger *mgr_;
-  InputSource *in_;
-  SOEntityCatalog *catalog_;
-  StringC param_;
-  Location paramLoc_;
-  Char minus_;
-  Char tab_;
-  Char rs_;
-  Char re_;
-  Char space_;
-  StringC publicKey_;
-  StringC systemKey_;
-  StringC entityKey_;
-  StringC doctypeKey_;
-  StringC linktypeKey_;
-  StringC notationKey_;
-  StringC overrideKey_;
-  StringC sgmlDeclKey_;
-  StringC documentKey_;
-  StringC catalogKey_;
-  StringC yesKey_;
-  StringC noKey_;
-  StringC baseKey_;
-  StringC delegateKey_;
-  StringC dtddeclKey_;
-  StringC sgmlKey_;
-  XcharMap<unsigned char> categoryTable_;
-  SubstTable<Char> substTable_;
-  Boolean override_;
-};
-
-ExtendEntityManager::CatalogManager *
-SOCatalogManager::make(const Vector<StringC> &sysids,
-		       size_t nSysidsMustExist,
-		       const CharsetInfo *sysidCharset,
-		       const CharsetInfo *catalogCharset,
-		       Boolean useDocCatalog)
-{
-  return new SOCatalogManagerImpl(sysids,
-				  nSysidsMustExist,
-				  sysidCharset,
-				  catalogCharset,
-				  useDocCatalog);
-}
-		       
-SOCatalogManagerImpl::SOCatalogManagerImpl(const Vector<StringC> &systemCatalogs,
-					   size_t nSystemCatalogsMustExist,
-					   const CharsetInfo *sysidCharset,
-					   const CharsetInfo *catalogCharset,
-					   Boolean useDocCatalog)
-: systemCatalogs_(systemCatalogs),
-  nSystemCatalogsMustExist_(nSystemCatalogsMustExist),
-  sysidCharset_(sysidCharset),
-  catalogCharset_(catalogCharset),
-  useDocCatalog_(useDocCatalog)
-{
-}
-
-Boolean SOCatalogManagerImpl::mapCatalog(ParsedSystemId &systemId,
-					 ExtendEntityManager *em,
-					 Messenger &mgr) const
-{
-  Vector<ParsedSystemId::Map> maps;
-  systemId.maps.swap(maps);
-  while (maps.size() > 0) {
-    StringC catalogSystemId;
-    systemId.unparse(*sysidCharset_, 0, catalogSystemId);
-    SOEntityCatalog *catalog = new SOEntityCatalog(em);
-    ConstPtr<EntityCatalog> deleter(catalog);
-    CatalogParser parser(*catalogCharset_);
-    parser.parseCatalog(catalogSystemId, 1, *sysidCharset_, *catalogCharset_,
-			InputSourceOrigin::make(), catalog, mgr);
-    // FIXME do catalog caching here
-    StringC s;
-    if (maps.back().type == ParsedSystemId::Map::catalogDocument) {
-      if (!catalog->document(*sysidCharset_, mgr, s)) {
-	mgr.message(CatalogMessages::noDocumentEntry,
-		    StringMessageArg(catalogSystemId));
-	return 0;
-      }
-    }
-    else {
-      ASSERT(maps.back().type == ParsedSystemId::Map::catalogPublic);
-      if (!catalog->lookupPublic(maps.back().publicId, *sysidCharset_, mgr,
-				 s)) {
-	mgr.message(CatalogMessages::noPublicEntry,
-		    StringMessageArg(maps.back().publicId),
-		    StringMessageArg(catalogSystemId));
-	return 0;
-      }
-    }
-    ParsedSystemId tem;
-    if (!em->parseSystemId(s, *sysidCharset_, 0, 0, mgr, tem))
-      return 0;
-    systemId = tem;
-    maps.resize(maps.size() - 1);
-    for (size_t i = 0; i < systemId.maps.size(); i++)
-      maps.push_back(systemId.maps[i]);
-    systemId.maps.clear();
-  }
-  return 1;
-}
-
-ConstPtr<EntityCatalog>
-SOCatalogManagerImpl::makeCatalog(StringC &systemId,
-				  const CharsetInfo &charset,
-				  ExtendEntityManager *em,
-				  Messenger &mgr) const
-{
-  SOEntityCatalog *entityCatalog = new SOEntityCatalog(em);
-  CatalogParser parser(*catalogCharset_);
-  size_t i;
-  for (i = 0; i < nSystemCatalogsMustExist_; i++)
-    parser.parseCatalog(systemCatalogs_[i], 1,
-			*sysidCharset_, *catalogCharset_,
-			InputSourceOrigin::make(), entityCatalog,
-			mgr);
-  if (useDocCatalog_)
-    addCatalogsForDocument(parser, systemId, entityCatalog, charset, mgr);
-  for (i = nSystemCatalogsMustExist_; i < systemCatalogs_.size(); i++)
-    parser.parseCatalog(systemCatalogs_[i], 0,
-			*sysidCharset_, *catalogCharset_,
-			InputSourceOrigin::make(), entityCatalog,
-			mgr);
-
-  return entityCatalog;
-}
-
-
-void SOCatalogManagerImpl::addCatalogsForDocument(CatalogParser &parser,
-						  StringC &sysid,
-						  SOEntityCatalog *impl,
-						  const CharsetInfo &charset,
-						  Messenger &mgr) const
-{
-  ParsedSystemId v;
-  if (!impl->entityManager()->parseSystemId(sysid, charset, 0, 0, mgr, v))
-    return;
-  if (v.maps.size() > 0) {
-    if (v.maps[0].type == ParsedSystemId::Map::catalogDocument) {
-      v.maps.erase(v.maps.begin(), v.maps.begin() + 1);
-      StringC tem;
-      v.unparse(charset, 0, tem);
-      parser.parseCatalog(tem, 1, charset, *catalogCharset_,
-			  InputSourceOrigin::make(), impl, mgr);
-      if (!impl->document(charset, mgr, sysid)) {
-	mgr.message(CatalogMessages::noDocumentEntry, StringMessageArg(tem));
-	sysid.resize(0);
-      }
-    }
-    return;
-  }
-  Vector<StringC> catalogs;
-  size_t i;
-  for (i = 0; i < v.size(); i++)
-    if (v[i].storageManager->inheritable()) {
-      ParsedSystemId catalogId;
-      catalogId.resize(1);
-      StorageObjectSpec &spec = catalogId.back();
-      spec.storageManager = v[i].storageManager;
-      spec.codingSystemType = v[i].codingSystemType;
-      spec.codingSystemName = v[i].codingSystemName;
-      spec.specId = spec.storageManager->idCharset()->execToDesc("catalog");
-      spec.storageManager->resolveRelative(v[i].specId, spec.specId, 0);
-      spec.baseId = v[i].baseId;
-      spec.records = v[i].records;
-      StringC tem;
-      catalogId.unparse(charset, 0, tem);
-      for (size_t j = 0; j < catalogs.size(); j++)
-	if (tem == catalogs[j]) {
-	  tem.resize(0);
-	  break;
-	}
-      if (tem.size() > 0) {
-	catalogs.resize(catalogs.size() + 1);
-	tem.swap(catalogs.back());
-      }
-    }
-  for (i = 0; i < catalogs.size(); i++)
-    parser.parseCatalog(catalogs[i], 0, charset,
-			*catalogCharset_, InputSourceOrigin::make(), impl,
-			mgr);
-}
-
-SOEntityCatalog::SOEntityCatalog(Ptr<ExtendEntityManager> em)
-: em_(em), catalogNumber_(0), haveSgmlDecl_(0), haveDocument_(0),
-  haveCurrentBase_(0)
-{
-}
-
-void SOEntityCatalog::endCatalog()
-{
-  catalogNumber_++;
-  haveCurrentBase_ = 0;
-}
-
-Boolean SOEntityCatalog::expandCatalogSystemId(const StringC &str,
-					       const Location &loc,
-					       size_t baseNumber,
-					       Boolean isNdata,
-					       const CharsetInfo &charset,
-					       const StringC *lookupPublicId,
-					       Messenger &mgr,
-					       StringC &result) const
-{
-  return em_->expandSystemId(str,
-			     (baseNumber ? base_[baseNumber - 1] : loc),
-			     isNdata,
-			     charset,
-			     lookupPublicId,
-			     mgr,
-			     result);
-}
-
-Boolean SOEntityCatalog::lookup(const EntityDecl &entity,
-				const Syntax &syntax,
-				const CharsetInfo &charset,
-				Messenger &mgr,
-				StringC &result) const
-{
-  const CatalogEntry *entry = 0;
-  const CatalogEntry *delegatedEntry = 0;
-  if (entity.systemIdPointer())
-    entry = systemIds_.lookup(*entity.systemIdPointer());
-  if (entity.publicIdPointer()) {
-    const CatalogEntry *publicEntry;
-    Boolean delegated;
-    publicEntry = findBestPublicEntry(*entity.publicIdPointer(),
-				      entity.systemIdPointer() != 0,
-				      charset,
-				      delegated);
-    if (publicEntry && delegated)
-      delegatedEntry = publicEntry;
-    // match for system id has priority over match for public id in same
-    // catalog
-    if (publicEntry
-	&& (!entry || publicEntry->catalogNumber < entry->catalogNumber))
-      entry = publicEntry;
-  }
-  if (entity.name().size() > 0
-      && (!entry || entry->catalogNumber > 0)) {
-    const CatalogEntry *entityEntry; 
-    int tableIndex = (entity.declType() >= EntityDecl::parameterEntity
-		      ? int(entity.declType()) - 1
-		      : int(entity.declType()));
-    StringC name(entity.name());
-    Boolean subst;
-    switch (entity.declType()) {
-    case EntityDecl::parameterEntity:
-      {
-	StringC tem(name);
-	name = syntax.peroDelim();
-	name += tem;
-      }
-      // fall through
-    case EntityDecl::generalEntity:
-      subst = syntax.namecaseEntity();
-      break;
-    default:
-      subst = syntax.namecaseGeneral();
-      break;
-    }
-    if (!subst)
-      entityEntry = names_[tableIndex].lookup(name,
-					      entity.systemIdPointer() != 0);
-    else
-      entityEntry = names_[tableIndex].lookup(entity.name(),
-					      syntax.upperSubstTable(),
-					      entity.systemIdPointer() != 0);
-    // match for public id has priority over match for entity in same
-    // catalog
-    if (entityEntry
-	&& (!entry || entityEntry->catalogNumber < entry->catalogNumber))
-      entry = entityEntry;
-  }
-  if (entry)
-    return expandCatalogSystemId(entry->to,
-				 entry->loc,
-				 entry->baseNumber,
-				 entity.dataType() == EntityDecl::ndata,
-				 charset,
-				 entry == delegatedEntry
-				 ? entity.publicIdPointer()
-				 : 0,
-				 mgr,
-				 result);
-  if (entity.systemIdPointer())
-    return em_->expandSystemId(*entity.systemIdPointer(),
-			       entity.defLocation(),
-			       entity.dataType() == EntityDecl::ndata,
-			       charset,
-			       0,
-			       mgr,
-			       result);
-  return 0;
-}
-
-Boolean SOEntityCatalog::lookupPublic(const StringC &publicId,
-				      const CharsetInfo &charset,
-				      Messenger &mgr,
-				      StringC &result) const
-{
-  Boolean delegated;
-  const CatalogEntry *entry = findBestPublicEntry(publicId, 0, charset,
-						  delegated);
-  return (entry
-	  && expandCatalogSystemId(entry->to, entry->loc, entry->baseNumber,
-				   0, charset, delegated ? &publicId : 0,
-				   mgr, result));
-				 
-}
-
-Boolean SOEntityCatalog::lookupChar(const StringC &name,
-				    const CharsetInfo &charset,
-				    Messenger &mgr,
-				    UnivChar &result) const
-{
-  Boolean delegated;
-  const CatalogEntry *entry = findBestPublicEntry(name, 0, charset,
-						  delegated);
-  if (!entry)
-    return 0;
-  if (delegated)
-    return 0;  // FIXME
-  const StringC &number = entry->to;
-  if (number.size() == 0)
-    return 0;
-  UnivChar n = 0;
-  for (size_t i = 0; i < number.size(); i++) {
-    int d = charset.digitWeight(number[i]);
-    if (d < 0)
-      return 0;
-    if (n <= UnivChar(-1)/10 && (n *= 10) <= UnivChar(-1) - d)
-      n += d;
-  }
-  result = n;
-  return 1;
-}
-
-const CatalogEntry *
-SOEntityCatalog::findBestPublicEntry(const StringC &publicId,
-				     Boolean overrideOnly,
-				     const CharsetInfo &charset,
-				     Boolean &delegated) const
-{
-  Char slash = charset.execToDesc('/');
-  Char colon = charset.execToDesc(':');
-  const CatalogEntry *bestEntry = 0;
-  for (size_t i = 0; i <= publicId.size(); i++) {
-    if ((i + 1 < publicId.size()
-	 && (publicId[i] == slash || publicId[i] == colon)
-	 && publicId[i + 1] == publicId[i])
-	|| (i >= 2
-	    && (publicId[i - 1] == slash || publicId[i - 1] == colon)
-	    && publicId[i - 2] == publicId[i - 1])) {
-      StringC tem(publicId.data(), i);
-      const CatalogEntry *entry = delegates_.lookup(tem, overrideOnly);
-      if (entry
-	  && (!bestEntry
-	      || entry->catalogNumber <= bestEntry->catalogNumber)) {
-	bestEntry = entry;
-	delegated = 1;
-      }
-    }
-  }
-  const CatalogEntry *entry = publicIds_.lookup(publicId, overrideOnly);
-  if (entry
-      && (!bestEntry || entry->catalogNumber <= bestEntry->catalogNumber)) {
-    bestEntry = entry;
-    delegated = 0;
-  }
-  return bestEntry;
-}
-
-Boolean SOEntityCatalog::sgmlDecl(const CharsetInfo &charset,
-				  Messenger &mgr,
-				  StringC &result) const
-
-{
-  return haveSgmlDecl_ && expandCatalogSystemId(sgmlDecl_, sgmlDeclLoc_,
-						sgmlDeclBaseNumber_,
-						0, charset, 0, mgr, result);
-}
-
-Boolean SOEntityCatalog::document(const CharsetInfo &charset,
-				  Messenger &mgr,
-				  StringC &result) const
-
-{
-  return haveDocument_ && expandCatalogSystemId(document_, documentLoc_,
-						documentBaseNumber_,
-						0, charset, 0, mgr, result);
-}
-
-void SOEntityCatalog::addPublicId(StringC &publicId, StringC &systemId,
-				  const Location &loc, Boolean override)
-{
-  CatalogEntry entry;
-  entry.loc = loc;
-  entry.catalogNumber = catalogNumber_;
-  entry.baseNumber = haveCurrentBase_ ? base_.size() : 0;
-  systemId.swap(entry.to);
-  publicIds_.insert(publicId, entry, override);
-}
-
-void SOEntityCatalog::addDelegate(StringC &prefix, StringC &systemId,
-				  const Location &loc, Boolean override)
-{
-  CatalogEntry entry;
-  entry.loc = loc;
-  entry.catalogNumber = catalogNumber_;
-  entry.baseNumber = haveCurrentBase_ ? base_.size() : 0;
-  systemId.swap(entry.to);
-  delegates_.insert(prefix, entry, override);
-}
-
-void SOEntityCatalog::addSystemId(StringC &systemId, StringC &toSystemId,
-				  const Location &loc)
-{
-  CatalogEntry entry;
-  entry.loc = loc;
-  entry.catalogNumber = catalogNumber_;
-  entry.baseNumber = haveCurrentBase_ ? base_.size() : 0;
-  toSystemId.swap(entry.to);
-  systemIds_.insert(systemId, entry, false);
-}
-
-void SOEntityCatalog::addName(StringC &name, DeclType declType,
-			      StringC &systemId, const Location &loc,
-			      Boolean override)
-{
-  CatalogEntry entry;
-  entry.loc = loc;
-  entry.catalogNumber = catalogNumber_;
-  entry.baseNumber = haveCurrentBase_ ? base_.size() : 0;
-  int tableIndex = (declType >= EntityDecl::parameterEntity
-		    ? int(declType) - 1
-		    : int(declType));
-  entry.serial = names_[tableIndex].count();
-  systemId.swap(entry.to);
-  names_[tableIndex].insert(name, entry, override);
-}
-
-void SOEntityCatalog::setSgmlDecl(StringC &str, const Location &loc)
-{
-  if (!haveSgmlDecl_) {
-    haveSgmlDecl_ = true;
-    str.swap(sgmlDecl_);
-    sgmlDeclLoc_ = loc;
-    sgmlDeclBaseNumber_ = haveCurrentBase_ ? base_.size() : 0;
-
-  }
-}
-
-void SOEntityCatalog::setDocument(StringC &str, const Location &loc)
-{
-  if (!haveDocument_) {
-    haveDocument_ = true;
-    str.swap(document_);
-    documentLoc_ = loc;
-    documentBaseNumber_ = haveCurrentBase_ ? base_.size() : 0;
-  }
-}
-
-void SOEntityCatalog::setBase(const Location &loc)
-{
-  if (loc.origin().isNull())
-    haveCurrentBase_ = 0;
-  else {
-    haveCurrentBase_ = 1;
-    base_.push_back(loc);
-  }
-}
-
-SOEntityCatalog::Table::Table()
-{
-}
-
-void SOEntityCatalog::Table::insert(const StringC &key,
-				    const CatalogEntry &entry,
-				    Boolean override)
-{
-  if (override)
-    overrideEntries_.insert(key, entry, false);
-  else {
-    const CatalogEntry *e = overrideEntries_.lookup(key);
-    if (!e)
-      normalEntries_.insert(key, entry, false);
-  }
-}
-
-const CatalogEntry *SOEntityCatalog::Table::lookup(const StringC &key,
-						   Boolean overrideOnly) const
-{
-  if (!overrideOnly) {
-    const CatalogEntry *e = normalEntries_.lookup(key);
-    if (e)
-      return e;
-  }
-  return overrideEntries_.lookup(key);
-}
-
-const CatalogEntry *
-SOEntityCatalog::Table::lookup(const StringC &name,
-			       const SubstTable<Char> &substTable,
-			       Boolean overrideOnly) const
-{
-  HashTableIter<StringC,CatalogEntry> iter1(overrideEntries_);
-  HashTableIter<StringC,CatalogEntry> iter2(normalEntries_);
-  HashTableIter<StringC,CatalogEntry> *iters[2];
-  int nIter = 0;
-  iters[nIter++] = &iter1;
-  if (!overrideOnly)
-    iters[nIter++] = &iter2;
-  const CatalogEntry *entry = 0;
-  for (int i = 0; i < nIter; i++) {
-    HashTableIter<StringC,CatalogEntry> &iter = *iters[i];
-    const StringC *key;
-    const CatalogEntry *value;
-    StringC buffer;
-    while (iter.next(key, value)) {
-      buffer = *key;
-      for (size_t j = 0; j < buffer.size(); j++)
-	substTable.subst(buffer[j]);
-      if (buffer == name) {
-	if (!entry || value->serial < entry->serial)
-	  entry = value;
-      }
-    }
-  }
-  return entry;
-}
-
-size_t SOEntityCatalog::Table::count() const
-{
-  return normalEntries_.count() + overrideEntries_.count();
-}
-
-CatalogParser::CatalogParser(const CharsetInfo &charset)
-: categoryTable_(data),
-  entityKey_(charset.execToDesc("ENTITY")),
-  publicKey_(charset.execToDesc("PUBLIC")),
-  systemKey_(charset.execToDesc("SYSTEM")),
-  doctypeKey_(charset.execToDesc("DOCTYPE")),
-  linktypeKey_(charset.execToDesc("LINKTYPE")),
-  notationKey_(charset.execToDesc("NOTATION")),
-  overrideKey_(charset.execToDesc("OVERRIDE")),
-  sgmlDeclKey_(charset.execToDesc("SGMLDECL")),
-  documentKey_(charset.execToDesc("DOCUMENT")),
-  catalogKey_(charset.execToDesc("CATALOG")),
-  yesKey_(charset.execToDesc("YES")),
-  noKey_(charset.execToDesc("NO")),
-  baseKey_(charset.execToDesc("BASE")),
-  delegateKey_(charset.execToDesc("DELEGATE")),
-  dtddeclKey_(charset.execToDesc("DTDDECL")),
-  sgmlKey_(charset.execToDesc("SGML"))
-{
-  static const char lcletters[] = "abcdefghijklmnopqrstuvwxyz";
-  static const char ucletters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-  // minimum data other than lcletter, ucletter
-  static const char minChars[] = "0123456789-.'()+,/:=?";
-  static const char sChars[] = " \n\r\t";
-  categoryTable_.setChar(0, nul);
-  const char *p;
-  const char *q;
-  for (p = lcletters, q = ucletters; *p; p++, q++) {
-    Char lc = charset.execToDesc(*p);
-    Char uc = charset.execToDesc(*q);
-    substTable_.addSubst(lc, uc);
-    categoryTable_.setChar(lc, min);
-    categoryTable_.setChar(uc, min);
-  }
-  for (p = sChars; *p; p++)
-    categoryTable_.setChar(charset.execToDesc(*p), s);
-  for (p = minChars; *p; p++)
-    categoryTable_.setChar(charset.execToDesc(*p), min);
-  categoryTable_.setChar(charset.execToDesc('\''), lita);
-  categoryTable_.setChar(charset.execToDesc('"'), lit);
-  minus_ = charset.execToDesc('-');
-  categoryTable_.setChar(minus_, minus);
-  tab_ = charset.execToDesc('\t');
-  re_ = charset.execToDesc('\r');
-  rs_ = charset.execToDesc('\n');
-  space_ = charset.execToDesc(' ');
-  categoryTable_.setEe(eof);
-}
-
-void CatalogParser::parseCatalog(const StringC &sysid,
-				 Boolean mustExist,
-				 const CharsetInfo &sysidCharset,
-				 const CharsetInfo &catalogCharset,
-				 InputSourceOrigin *origin,
-				 SOEntityCatalog *catalog,
-				 Messenger &mgr)
-{
-  const Ptr<ExtendEntityManager> &em = catalog->entityManager();
-  in_ = em->open(sysid, sysidCharset, origin,
-		 mustExist ? 0 : ExtendEntityManager::mayNotExist, mgr);
-  if (!in_)
-    return;
-  catalog_ = catalog;
-  mgr_ = &mgr;
-  override_ = 0;
-  Boolean recovering = false;
-  Vector<StringC> subSysids;
-  Vector<Location> subSysidLocs;
-  for (;;) {
-    Param parm = parseParam();
-    if (parm == nameParam) {
-      upcase(param_);
-      Boolean wasRecovering = recovering;
-      recovering = false;
-      if (param_ == publicKey_)
-	parsePublic();
-      else if (param_ == systemKey_)
-	parseSystem();
-      else if (param_ == entityKey_)
-	parseNameMap(EntityDecl::generalEntity);
-      else if (param_ == doctypeKey_)
-	parseNameMap(EntityDecl::doctype);
-      else if (param_ == linktypeKey_)
-	parseNameMap(EntityDecl::linktype);
-      else if (param_ == notationKey_)
-	parseNameMap(EntityDecl::notation);
-      else if (param_ == sgmlKey_)
-	parseNameMap(EntityDecl::sgml);
-      else if (param_ == sgmlDeclKey_) {
-	if (parseArg())
-	  catalog_->setSgmlDecl(param_, paramLoc_);
-      }
-      else if (param_ == documentKey_) {
-	if (parseArg())
-	  catalog_->setDocument(param_, paramLoc_);
-      }
-      else if (param_ == overrideKey_)
-	parseOverride();
-      else if (param_ == catalogKey_) {
-	if (parseArg()) {
-	  if (inLoop(paramLoc_))
-	    break;
-	  subSysids.resize(subSysids.size() + 1);
-	  param_.swap(subSysids.back());
-	  subSysidLocs.push_back(paramLoc_);
-	}
-      }
-      else if (param_ == baseKey_) {
-	if (parseArg()) {
-	  StringC tem;
-	  if (em->expandSystemId(param_,
-				 paramLoc_,
-				 0,
-				 catalogCharset,
-				 0,
-				 mgr,
-				 tem)) {
-	    InputSource *in = em->open(tem,
-				       catalogCharset,
-				       InputSourceOrigin::make(paramLoc_),
-				       0,
-				       mgr);
-	    if (in && (in->get(mgr) != InputSource::eE || !in->accessError()))
-	      catalog->setBase(in->currentLocation());
-	  }
-	}
-      }
-      else if (param_ == delegateKey_)
-	parseDelegate();
-      else if (param_ == dtddeclKey_)
-	parseDtddecl();
-      else {
-	if (!wasRecovering && parseParam() == eofParam)
-	  break;
-	recovering = true;
-      }
-    }
-    else if (parm == eofParam)
-      break;
-    else if (!recovering) {
-      recovering = true;
-      message(CatalogMessages::nameExpected);
-    }
-  }
-  delete in_;
-  catalog->endCatalog();
-  for (size_t i = 0; i < subSysids.size(); i++) {
-    StringC tem;
-    if (em->expandSystemId(subSysids[i], subSysidLocs[i], 0, catalogCharset,
-			   0, mgr, tem))
-      parseCatalog(tem, 1, catalogCharset, catalogCharset,
-		   InputSourceOrigin::make(subSysidLocs[i]), catalog, mgr);
-  }
-}
-
-Boolean CatalogParser::inLoop(const Location &loc)
-{
-  const InputSourceOrigin *origin = paramLoc_.origin()->asInputSourceOrigin();
-  if (!origin)
-    return 0;
-  const ExternalInfo *info = origin->externalInfo();
-  if (!info)
-    return 0;
-  StorageObjectLocation soLoc;
-  if (!ExtendEntityManager::externalize(info,
-					origin->startOffset(paramLoc_.index()),
-					soLoc))
-    return 0;
-  for (;;) {
-    const Location &parent = origin->parent();
-    if (parent.origin().isNull())
-      break;
-    origin = parent.origin()->asInputSourceOrigin();
-    if (!origin)
-      break;
-    const ExternalInfo *info1 = origin->externalInfo();
-    if (info1) {
-      StorageObjectLocation soLoc1;
-      if (ExtendEntityManager::externalize(info1,
-					   origin->startOffset(parent.index()),
-					   soLoc1)) {
-	if (soLoc.storageObjectSpec->storageManager
-	    == soLoc1.storageObjectSpec->storageManager
-	    && soLoc.actualStorageId == soLoc1.actualStorageId) {
-	  setNextLocation(loc.origin()->parent());
-	  message(CatalogMessages::inLoop);
-	  return 1;
-	}
-      }
-    }
-  }
-  return 0;
-}
-
-void CatalogParser::parseOverride()
-{
-  if (parseParam() != nameParam) {
-    message(CatalogMessages::overrideYesOrNo);
-    return;
-  }
-  upcase(param_);
-  if (param_ == yesKey_)
-    override_ = 1;
-  else if (param_ == noKey_)
-    override_ = 0;
-  else
-    message(CatalogMessages::overrideYesOrNo);
-}
-
-void CatalogParser::parsePublic()
-{
-  if (parseParam(minimumLiteral) != literalParam) {
-    message(CatalogMessages::literalExpected);
-    return;
-  }
-  StringC publicId;
-  param_.swap(publicId);
-  if (!parseArg())
-    return;
-  catalog_->addPublicId(publicId, param_, paramLoc_, override_);
-}
-
-void CatalogParser::parseDelegate()
-{
-  if (parseParam(minimumLiteral) != literalParam) {
-    message(CatalogMessages::literalExpected);
-    return;
-  }
-  StringC publicId;
-  param_.swap(publicId);
-  if (!parseArg())
-    return;
-  catalog_->addDelegate(publicId, param_, paramLoc_, override_);
-}
-
-void CatalogParser::parseDtddecl()
-{
-  message(CatalogMessages::dtddeclNotSupported);
-  if (parseParam(minimumLiteral) != literalParam) {
-    message(CatalogMessages::literalExpected);
-    return;
-  }
-  if (!parseArg())
-    return;
-}
-
-void CatalogParser::parseSystem()
-{
-  if (!parseArg())
-    return;
-  StringC systemId;
-  param_.swap(systemId);
-  Param parm = parseParam();
-  if (parm == nameParam)
-    message(CatalogMessages::systemShouldQuote);
-  else if (parm != literalParam) {
-    message(CatalogMessages::literalExpected);
-    return;
-  }
-  catalog_->addSystemId(systemId, param_, paramLoc_);
-}
-
-void CatalogParser::parseNameMap(EntityDecl::DeclType declType)
-{
-  if (!parseArg())
-    return;
-  StringC name;
-  param_.swap(name);
-  if (!parseArg())
-    return;
-  catalog_->addName(name, declType, param_, paramLoc_, override_);
-}
-
-Boolean CatalogParser::parseArg()
-{
-  Param parm = parseParam();
-  if (parm != nameParam && parm != literalParam) {
-    message(CatalogMessages::nameOrLiteralExpected);
-    return false;
-  }
-  return true;
-}
-
-CatalogParser::Param CatalogParser::parseParam(unsigned flags)
-{
-  for (;;) {
-    Xchar c = get();
-    switch (categoryTable_[c]) {
-    case eof:
-      return eofParam;
-    case lit:
-    case lita:
-      parseLiteral(c, flags);
-      return literalParam;
-    case s:
-      break;
-    case nul:
-      message(CatalogMessages::nulChar);
-      break;
-    case minus:
-      c = get();
-      if (c == minus_) {
-	skipComment();
-	break;
-      }
-      unget();
-      // fall through
-    default:
-      parseName();
-      return nameParam;
-    }
-  }
-}
-
-void CatalogParser::skipComment()
-{
-  for (;;) {
-    Xchar c = get();
-    if (c == minus_) {
-      c = get();
-      if (c == minus_)
-	break;
-    }
-    if (c == InputSource::eE) {
-      message(CatalogMessages::eofInComment);
-      break;
-    }
-  }
-}
-
-void CatalogParser::parseLiteral(Char delim, unsigned flags)
-{
-  paramLoc_ = in_->currentLocation();
-  enum { no, yesBegin, yesMiddle } skipping = yesBegin;
-  param_.resize(0);
-  for (;;) {
-    Xchar c = get();
-    if (c == InputSource::eE) {
-      message(CatalogMessages::eofInLiteral);
-      break;
-    }
-    if (Char(c) == delim)
-      break;
-    if (flags & minimumLiteral) {
-      if (!isMinimumData(c))
-	message(CatalogMessages::minimumData);
-      if (c == rs_)
-	;
-      else if (c == space_ || c == re_) {
-	if (skipping == no) {
-	  param_ += space_;
-	  skipping = yesMiddle;
-	}
-      }
-      else {
-	skipping = no;
-	param_ += Char(c);
-      }
-    }
-    else
-      param_ += Char(c);
-  }
-  if (skipping == yesMiddle)
-    param_.resize(param_.size() - 1);
-}
-
-void CatalogParser::parseName()
-{
-  paramLoc_ = in_->currentLocation();
-  size_t length;
-  for (length = 1;; length++) {
-    Xchar c = in_->tokenChar(messenger());
-    int cat = categoryTable_[c];
-    if (cat == eof || cat == s)
-      break;
-    // FIXME maybe check for LIT or LITA
-    if (cat == nul)
-      message(CatalogMessages::nulChar);
-  }
-  in_->endToken(length);
-  param_.assign(in_->currentTokenStart(), in_->currentTokenLength());
-}
-
-void CatalogParser::upcase(StringC &str)
-{
-  for (size_t i = 0; i < str.size(); i++)
-    substTable_.subst(str[i]);
-}
-
-void CatalogParser::dispatchMessage(const Message &msg)
-{
-  mgr_->dispatchMessage(msg);
-}
-
-void CatalogParser::dispatchMessage(Message &msg)
-{
-  mgr_->dispatchMessage(msg);
-}
-
-void CatalogParser::initMessage(Message &msg)
-{
-  msg.loc = in_->currentLocation();
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Sd.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Sd.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Sd::Sd(const Ptr<EntityManager> &entityManager)
-: entityManager_(entityManager),
-  internalCharsetIsDocCharset_(entityManager->internalCharsetIsDocCharset()),
-  docCharset_(entityManager->charset()),
-  scopeInstance_(0),
-  www_(0),
-  netEnable_(netEnableNo),
-  entityRef_(entityRefAny),
-  typeValid_(1),
-  integrallyStored_(0)
-{
-  int i;
-  for (i = 0; i < nBooleanFeature; i++)
-    booleanFeature_[i] = 0;
-  for (i = 0; i < nNumberFeature; i++)
-    numberFeature_[i] = 0;
-  for (i = 0; i < nCapacity; i++)
-    capacity_[i] = 35000;
-  if (internalCharsetIsDocCharset_)
-    internalCharsetPtr_ = 0;
-  else
-    internalCharsetPtr_ = &entityManager->charset();
-}
-
-void Sd::setDocCharsetDesc(const UnivCharsetDesc &desc)
-{
-  docCharset_.set(desc);
-}
-
-const char *const Sd::reservedName_[] = {
-  "ALL",
-  "ANY",
-  "APPINFO",
-  "ATTLIST",
-  "ATTRIB",
-  "BASESET",
-  "CAPACITY",
-  "CHARSET",
-  "CONCUR",
-  "CONTROLS",
-  "DATATAG",
-  "DEFAULT",
-  "DELIM",
-  "DESCSET",
-  "DOCTYPE",
-  "DOCUMENT",
-  "ELEMENT",
-  "EMPTY",
-  "EMPTYNRM",
-  "ENDTAG",
-  "ENTITIES",
-  "ENTITY",
-  "EXPLICIT",
-  "FEATURES",
-  "FORMAL",
-  "FUNCHAR",
-  "FUNCTION",
-  "GENERAL",
-  "IMMEDNET",
-  "IMPLICIT",
-  "IMPLYDEF",
-  "INSTANCE",
-  "INTEGRAL",
-  "INTERNAL",
-  "KEEPRSRE",
-  "LCNMCHAR",
-  "LCNMSTRT",
-  "LINK",
-  "MINIMIZE",
-  "MSICHAR",
-  "MSOCHAR",
-  "MSSCHAR",
-  "NAMECASE",
-  "NAMECHAR",
-  "NAMES",
-  "NAMESTRT",
-  "NAMING",
-  "NETENABL",
-  "NO",
-  "NOASSERT",
-  "NONE",
-  "NOTATION",
-  "OMITNAME",
-  "OMITTAG",
-  "OTHER",
-  "PUBLIC",
-  "QUANTITY",
-  "RANK",
-  "RE",
-  "REF",
-  "RS",
-  "SCOPE",
-  "SEEALSO",
-  "SEPCHAR",
-  "SGML",
-  "SGMLREF",
-  "SHORTREF",
-  "SHORTTAG",
-  "SHUNCHAR",
-  "SIMPLE",
-  "SPACE",
-  "STARTTAG",
-  "SUBDOC",
-  "SWITCHES",
-  "SYNTAX",
-  "SYSTEM",
-  "TYPE",
-  "UCNMCHAR",
-  "UCNMSTRT",
-  "UNCLOSED",
-  "UNUSED",
-  "URN",
-  "VALIDITY",
-  "VALUE",
-  "YES"
-};
-
-const char *const Sd::capacityName_[] = {
-  "TOTALCAP",
-  "ENTCAP",
-  "ENTCHCAP",
-  "ELEMCAP",
-  "GRPCAP",
-  "EXGRPCAP",
-  "EXNMCAP",
-  "ATTCAP",
-  "ATTCHCAP",
-  "AVGRPCAP",
-  "NOTCAP",
-  "NOTCHCAP",
-  "IDCAP",
-  "IDREFCAP",
-  "MAPCAP",
-  "LKSETCAP",
-  "LKNMCAP"
-};
-
-
-const char *const Sd::quantityName_[] = {
-  "ATTCNT",
-  "ATTSPLEN",
-  "BSEQLEN",
-  "DTAGLEN",
-  "DTEMPLEN",
-  "ENTLVL",
-  "GRPCNT",
-  "GRPGTCNT",
-  "GRPLVL",
-  "LITLEN",
-  "NAMELEN",
-  "NORMSEP",
-  "PILEN",
-  "TAGLEN",
-  "TAGLVL"
-};
-
-const char *const Sd::generalDelimiterName_[] = {
-  "AND",
-  "COM",
-  "CRO",
-  "DSC",
-  "DSO",
-  "DTGC",
-  "DTGO",
-  "ERO",
-  "ETAGO",
-  "GRPC",
-  "GRPO",
-  "HCRO",
-  "LIT",
-  "LITA",
-  "MDC",
-  "MDO",
-  "MINUS",
-  "MSC",
-  "NET",
-  "NESTC",
-  "OPT",
-  "OR",
-  "PERO",
-  "PIC",
-  "PIO",
-  "PLUS",
-  "REFC",
-  "REP",
-  "RNI",
-  "SEQ",
-  "STAGO",
-  "TAGC",
-  "VI"
-};
-
-Boolean Sd::lookupQuantityName(const StringC &name, Syntax::Quantity &quantity)
-     const
-{
-  for (size_t i = 0; i < SIZEOF(quantityName_); i++)
-    if (execToInternal(quantityName_[i]) == name) {
-      quantity = Syntax::Quantity(i);
-      return 1;
-    }
-  return 0;
-}
-
-Boolean Sd::lookupCapacityName(const StringC &name, Sd::Capacity &capacity)
-     const
-{
-  for (size_t i = 0; i < SIZEOF(capacityName_); i++)
-    if (execToInternal(capacityName_[i]) == name) {
-      capacity = Sd::Capacity(i);
-      return 1;
-    }
-  return 0;
-}
-
-Boolean Sd::lookupGeneralDelimiterName(const StringC &name,
-				       Syntax::DelimGeneral &delimGeneral)
-     const
-{
-  for (size_t i = 0; i < SIZEOF(generalDelimiterName_); i++)
-    if (execToInternal(generalDelimiterName_[i]) == name) {
-      delimGeneral = Syntax::DelimGeneral(i);
-      return 1;
-    }
-  return 0;
-}
-
-StringC Sd::quantityName(Syntax::Quantity q) const
-{
-  return execToInternal(quantityName_[q]);
-}
-
-StringC Sd::generalDelimiterName(Syntax::DelimGeneral d) const
-{
-  return execToInternal(generalDelimiterName_[d]);
-}
-
-UnivChar Sd::nameToUniv(const StringC &name)
-{
-  const int *p = namedCharTable_.lookup(name);
-  int n;
-  if (p)
-    n = *p;
-  else {
-    n = int(namedCharTable_.count());
-    namedCharTable_.insert(name, n);
-  }
-  return n + 0x60000000;	// 10646 private use group
-}
-
-void Sd::setShorttag(Boolean b)
-{
-  for (int i = fSHORTTAG_FIRST; i <= fSHORTTAG_LAST; i++)
-    booleanFeature_[i] = b;
-  netEnable_ = netEnableAll;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/SdFormalError.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef SdFormalError_INCLUDED
-#define SdFormalError_INCLUDED 1
-
-#include "Link.h"
-#include "StringC.h"
-#include "Message.h"
-#include "Location.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class ParserState;
-
-class SdFormalError : public Link {
-public:
-  SdFormalError(const Location &, const MessageType1 &, const StringC &);
-  void send(ParserState &);
-private:
-  const MessageType1 *message_;
-  Location location_;
-  StringC id_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not SdFormalError_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/SdText.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "SdText.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-SdText::SdText()
-{
-}
-
-SdText::SdText(const Location &loc, Boolean lita)
-: lita_(lita)
-{
-  items_.resize(items_.size() + 1);
-  items_.back().loc = loc;
-  items_.back().index = 0;
-}
-
-void SdText::addChar(SyntaxChar c, const Location &loc)
-{
-  if (items_.size() == 0
-      || loc.origin().pointer() != items_.back().loc.origin().pointer()
-      || loc.index() != (items_.back().loc.index()
-			 + (chars_.size() - items_.back().index))) {
-    items_.resize(items_.size() + 1);
-    items_.back().loc = loc;
-    items_.back().index = chars_.size();
-  }
-  chars_ += c;
-}
-
-void SdText::swap(SdText &to)
-{
-  items_.swap(to.items_);
-  chars_.swap(to.chars_);
-  {
-    Boolean tem = to.lita_;
-    to.lita_ = lita_;
-    lita_ = tem;
-  }
-}
-
-Location SdText::endDelimLocation() const
-{
-  Location loc(items_.back().loc);
-  loc += chars_.size() - items_.back().index;
-  return loc;
-}
-
-SdTextItem::SdTextItem()
-{
-}
-
-SdTextIter::SdTextIter(const SdText &text)
-: ptr_(&text),
-  itemIndex_(0)
-{
-}
-
-Boolean SdTextIter::next(const SyntaxChar *&ptr, size_t &length, Location &loc)
-{
-  const Vector<SdTextItem> &items = ptr_->items_;
-  if (itemIndex_ >= items.size())
-    return 0;
-  loc = items[itemIndex_].loc;
-  const String<SyntaxChar> &chars = ptr_->chars_;
-  size_t charsIndex = items[itemIndex_].index;
-  ptr = chars.data() + charsIndex;
-  if (itemIndex_ + 1 < items.size())
-    length = items[itemIndex_ + 1].index - charsIndex;
-  else
-    length = chars.size() - charsIndex;
-  itemIndex_++;
-  return 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/SearchResultMessageArg.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "SearchResultMessageArg.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-RTTI_DEF1(SearchResultMessageArg, OtherMessageArg);
-
-SearchResultMessageArg::SearchResultMessageArg()
-{
-}
-
-MessageArg *SearchResultMessageArg::copy() const
-{
-  return new SearchResultMessageArg(*this);
-}
-
-void SearchResultMessageArg::add(StringC &str, int n)
-{
-  filename_.resize(filename_.size() + 1);
-  str.swap(filename_.back());
-  errno_.push_back(n);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/SgmlParser.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "SgmlParser.h"
-#include "Parser.h"
-#include "Trie.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-SgmlParser::SgmlParser()
-: parser_(0)
-{
-}
-
-SgmlParser::SgmlParser(const Params &params)
-: parser_(new Parser(params))
-{
-}
-
-void SgmlParser::init(const Params &params)
-{
-  delete parser_;
-  parser_ = new Parser(params);
-}
-
-SgmlParser::~SgmlParser()
-{
-  delete parser_;
-}
-
-Event *SgmlParser::nextEvent()
-{
-  return parser_->nextEvent();
-}
-
-void SgmlParser::parseAll(EventHandler &handler,
-			  const volatile sig_atomic_t *cancelPtr)
-{
-  parser_->parseAll(handler, cancelPtr);
-}
-
-ConstPtr<Sd> SgmlParser::sd() const
-{
-  return parser_->sdPointer();
-}
-
-ConstPtr<Syntax> SgmlParser::instanceSyntax() const
-{
-  return parser_->instanceSyntaxPointer();
-}
-
-ConstPtr<Syntax> SgmlParser::prologSyntax() const
-{
-  return parser_->prologSyntaxPointer();
-}
-
-EntityManager &SgmlParser::entityManager() const
-{
-  return parser_->entityManager();
-}
-
-const EntityCatalog &SgmlParser::entityCatalog() const
-{
-  return parser_->entityCatalog();
-}
-
-void SgmlParser::activateLinkType(const StringC &name)
-{
-  parser_->activateLinkType(name);
-}
-
-void SgmlParser::allLinkTypesActivated()
-{
-  parser_->allLinkTypesActivated();
-}
-
-void SgmlParser::swap(SgmlParser &s)
-{
-  Parser *tem = parser_;
-  parser_ = s.parser_;
-  s.parser_ = tem;
-}
-
-Ptr<Dtd> SgmlParser::baseDtd()
-{
-  return parser_->baseDtd();
-}
-
-const ParserOptions &SgmlParser::options() const
-{
-  return parser_->options();
-}
-
-SgmlParser::Params::Params()
-: entityType(document),
-  parent(0),
-  options(0),
-  subdocInheritActiveLinkTypes(0),
-  subdocReferenced(0),
-  subdocLevel(0)
-{
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ShortReferenceMap.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "ShortReferenceMap.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-ShortReferenceMap::ShortReferenceMap()
-: Named(StringC()), used_(0)
-{
-}
-
-ShortReferenceMap::ShortReferenceMap(const StringC &name)
-: Named(name)
-{
-}
-
-void ShortReferenceMap::setNameMap(Vector<StringC> &map)
-{
-  map.swap(nameMap_);
-  // Make sure we know it's defined.
-  if (nameMap_.size() == 0)
-    nameMap_.resize(1);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/SrInfo.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef SrInfo_INCLUDED
-#define SrInfo_INCLUDED
-
-#include "types.h"
-#include "StringOf.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct SrInfo {
-  String<EquivCode> chars;
-  int bSequenceLength;
-  String<EquivCode> chars2;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not SrInfo_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/StdioStorage.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-#include "StdioStorage.h"
-#include "Message.h"
-#include "types.h"
-#include "ErrnoMessageArg.h"
-#include "StringOf.h"
-#include "StringC.h"
-#include "CodingSystem.h"
-
-#include "StdioStorageMessages.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <stddef.h>
-#include <errno.h>
-
-#ifndef SEEK_SET
-#define SEEK_SET 0
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class StdioStorageObject : public StorageObject {
-public:
-  StdioStorageObject(FILE *fp, const StringC &filename);
-  ~StdioStorageObject();
-  Boolean read(char *buf, size_t bufSize, Messenger &mgr, size_t &nread);
-  Boolean rewind(Messenger &mgr);
-  size_t getBlockSize() const;
-private:
-  enum ErrorIndex {
-    invalidErrorIndex,
-    fopenFailed,
-    readError,
-    seekError
-  };
-  void error(Messenger &mgr, const MessageType2 &, int err);
-
-  FILE *fp_;
-  StringC filename_;
-  String<char> filenameBytes_;
-};
-
-StdioStorageManager::StdioStorageManager(const char *type,
-					 const CharsetInfo *filenameCharset,
-					 const OutputCodingSystem *filenameCodingSystem)
-: IdStorageManager(filenameCharset),
-  type_(type),
-  filenameCodingSystem_(filenameCodingSystem)
-{
-}
-
-StorageObject *StdioStorageManager::makeStorageObject(const StringC &str,
-						      const StringC &,
-						      Boolean,
-						      Boolean,
-						      Messenger &mgr,
-						      StringC &filename)
-{
-  filename = str;
-  String<char> filenameBytes = filenameCodingSystem_->convertOut(filename);
-  errno = 0;
-  FILE *fp = fopen(filenameBytes.data(), "r");
-  if (!fp) {
-    ParentLocationMessenger(mgr).message(StdioStorageMessages::openFailed,
-					 StringMessageArg(filename),
-					 ErrnoMessageArg(errno));
-
-    return 0;
-  }
-  return new StdioStorageObject(fp, filename);
-}
-
-const char *StdioStorageManager::type() const
-{
-  return type_;
-}
-
-StdioStorageObject::StdioStorageObject(FILE *fp, const StringC &filename)
-: fp_(fp), filename_(filename)
-{
-}
-
-StdioStorageObject::~StdioStorageObject()
-{
-  if (fp_) {
-    fclose(fp_);
-    fp_ = 0;
-  }
-}
-
-Boolean StdioStorageObject::rewind(Messenger &mgr)
-{
-  if (fp_) {
-    errno = 0;
-    if (fseek(fp_, 0L, SEEK_SET) < 0) {
-      error(mgr, StdioStorageMessages::seekFailed, errno);
-      return 0;
-    }
-    return 1;
-  }
-  return 1;
-}
-
-size_t StdioStorageObject::getBlockSize() const
-{
-  return BUFSIZ;
-}
-
-Boolean StdioStorageObject::read(char *buf, size_t bufSize, Messenger &mgr,
-				 size_t &nread)
-{
-  if (!fp_)
-    return 0;
-  errno = 0;
-  size_t n = 0;
-  FILE *fp = fp_;
-  while (n < bufSize) {
-    int c = getc(fp);
-    if (c == EOF) {
-      if (ferror(fp)) {
-	error(mgr, StdioStorageMessages::readFailed, errno);
-	(void)fclose(fp);
-	return 0;
-      }
-      fclose(fp);
-      fp_ = 0;
-      break;
-    }
-    buf[n++] = c;
-  }
-  nread = n;
-  return n > 0;
-}
-
-void StdioStorageObject::error(Messenger &mgr,
-			       const MessageType2 &msg,
-			       int err)
-{
-  ParentLocationMessenger(mgr).message(msg,
-				       StringMessageArg(filename_),
-				       ErrnoMessageArg(err));
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/StdioStorageMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-// This file was automatically generated from lib\StdioStorageMessages.msg by msggen.pl.
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct StdioStorageMessages {
-  // 2400
-  static const MessageType2 openFailed;
-  // 2401
-  static const MessageType2 readFailed;
-  // 2402
-  static const MessageType2 seekFailed;
-};
-const MessageType2 StdioStorageMessages::openFailed(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2400
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot open %1 (%2)"
-#endif
-);
-const MessageType2 StdioStorageMessages::readFailed(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2401
-#ifndef SP_NO_MESSAGE_TEXT
-,"\"error reading %1 (%2)"
-#endif
-);
-const MessageType2 StdioStorageMessages::seekFailed(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2402
-#ifndef SP_NO_MESSAGE_TEXT
-,"error seeking %1 (%2)"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/StorageManager.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "StorageManager.h"
-#define DEFAULT_BLOCK_SIZE 1024
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-StorageObject::StorageObject()
-{
-}
-
-StorageObject::~StorageObject()
-{
-}
-
-void StorageObject::willNotRewind()
-{
-}
-
-size_t StorageObject::getBlockSize() const
-{
-  return DEFAULT_BLOCK_SIZE;
-}
-
-StorageManager::StorageManager()
-{
-}
-
-StorageManager::~StorageManager()
-{
-}
-
-Boolean StorageManager::inheritable() const
-{
-  return 1;
-}
-
-Boolean StorageManager::resolveRelative(const StringC &, StringC &,
-					Boolean) const
-{
-  return 1;
-}
-
-Boolean StorageManager::guessIsId(const StringC &, const CharsetInfo &) const
-{
-  return 0;
-}
-
-Boolean StorageManager::transformNeutral(StringC &, Boolean, Messenger &) const
-{
-  return 0;
-}
-
-const InputCodingSystem *StorageManager::requiredCodingSystem() const
-{
-  return 0;
-}
-
-Boolean StorageManager::requiresCr() const
-{
-  return 0;
-}
-
-const CharsetInfo *StorageManager::idCharset() const
-{
-  return 0;
-}
-
-const StringC *StorageManager::reString() const
-{
-  return 0;
-}
-
-IdStorageManager::IdStorageManager(const CharsetInfo *idCharset)
-: idCharset_(idCharset)
-{
-}
-
-const CharsetInfo *IdStorageManager::idCharset() const
-{
-  return idCharset_;
-}
-
-const StringC *IdStorageManager::reString() const
-{
-  return &reString_;
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/StorageObjectPosition.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef StorageObjectPosition_INCLUDED
-#define StorageObjectPosition_INCLUDED 1
-
-#include "Boolean.h"
-#include "types.h"
-#include "Owner.h"
-#include "CodingSystem.h"
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct StorageObjectPosition {
-  StorageObjectPosition();
-  // the number of RSs preceding line 1 of this storage object
-  // or -1 if this hasn't been computed yet.
-  size_t line1RS;
-  Owner<Decoder> decoder;
-  // Does the storage object start with an RS?
-  PackedBoolean startsWithRS;
-  // Were the RSs other than the first in the storage object inserted?
-  PackedBoolean insertedRSs;
-  Offset endOffset;
-  StringC id;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not StorageObjectPosition_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/StringVectorMessageArg.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "StringVectorMessageArg.h"
-#include "MessageBuilder.h"
-#include "ParserMessages.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-StringVectorMessageArg::StringVectorMessageArg(const Vector<StringC> &v)
-: v_(v)
-{
-}
-
-MessageArg *StringVectorMessageArg::copy() const
-{
-  return new StringVectorMessageArg(*this);
-}
-
-void StringVectorMessageArg::append(MessageBuilder &builder) const
-{
-  for (size_t i = 0; i < v_.size(); i++) {
-    if (i > 0)
-      builder.appendFragment(ParserMessages::listSep);
-    builder.appendChars(v_[i].data(), v_[i].size());
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/StringVectorMessageArg.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef StringVectorMessageArg_INCLUDED
-#define StringVectorMessageArg_INCLUDED 1
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "MessageArg.h"
-#include "StringC.h"
-#include "Vector.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class StringVectorMessageArg : public MessageArg {
-public:
-  StringVectorMessageArg(const Vector<StringC> &);
-  MessageArg *copy() const;
-  void append(MessageBuilder &) const;
-private:
-  Vector<StringC> v_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not StringVectorMessageArg_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Syntax.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,452 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Syntax.h"
-#include "Sd.h"
-#include "CharsetInfo.h"
-#include "ISetIter.h"
-#include "macros.h"
-#include "MarkupScan.h"
-#include "constant.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const int Syntax::referenceQuantity_[] = {
-  40,
-  960,
-  960,
-  16,
-  16,
-  16,
-  32,
-  96,
-  16,
-  240,
-  8,
-  2,
-  240,
-  960,
-  24
-};
-
-Syntax::Syntax(const Sd &sd)
-: generalSubst_(0),
-  entitySubst_(0),
-  categoryTable_(otherCategory),
-  shuncharControls_(0),
-  multicode_(0),
-  markupScanTable_(MarkupScan::normal)
-{
-  static const char lcletter[] = "abcdefghijklmnopqrstuvwxyz";
-  static const char ucletter[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-  int i;
-  for (i = 0; i < 26; i++) {
-    Char lc = sd.execToInternal(lcletter[i]);
-    Char uc = sd.execToInternal(ucletter[i]); 
-    set_[nameStart] += lc;
-    set_[nameStart] += uc;
-    set_[minimumData] += lc;
-    set_[minimumData] += uc;
-    set_[significant] += lc;
-    set_[significant] += uc;
-    if (i < 6) {
-      set_[hexDigit] += lc;
-      set_[hexDigit] += uc;
-    }
-    categoryTable_.setChar(lc, nameStartCategory);
-    categoryTable_.setChar(uc, nameStartCategory);
-    subst(lc, uc);
-  }
-  static const char digits[] = "0123456789";
-  for (i = 0; i < 10; i++) {
-    Char c = sd.execToInternal(digits[i]);
-    set_[digit] += c;
-    set_[hexDigit] += c;
-    set_[minimumData] += c;
-    set_[significant] += c;
-    categoryTable_.setChar(c, digitCategory);
-  }
-  static const char special[] = "'()+,-./:=?";
-  for (i = 0; special[i] != '\0'; i++) {
-    Char c = sd.execToInternal(special[i]);
-    set_[minimumData] += c;
-    set_[significant] += c;
-  }
-
-  if (sd.www()) {
-    static const char wwwSpecial[] = { 33, 35, 36, 37, 42, 59, 64, 95, 0 };
-    for (i = 0; wwwSpecial[i] != '\0'; i++) {
-      const CharsetInfo &charset = sd.internalCharset();
-      WideChar c;
-      ISet<WideChar> set;
-      if (charset.univToDesc(wwwSpecial[i], c, set) > 0 && c <= Char(-1)) {
-	set_[minimumData] += Char(c);
-	set_[significant] += c;
-      }
-    }
-  }
-
-  for (i = 0; i < nQuantity; i++)
-    quantity_[i] = referenceQuantity_[i];
-  for (i = 0; i < 3; i++)
-    standardFunctionValid_[i] = 0;
-}
-
-void Syntax::addNameCharacters(const ISet<Char> &set)
-{
-  ISetIter<Char> iter(set);
-  Char min, max;
-  while (iter.next(min, max)) {
-    set_[nmchar].addRange(min, max);
-    set_[significant].addRange(min, max);
-    categoryTable_.setRange(min, max, otherNameCategory);
-  }
-}
-
-void Syntax::addNameStartCharacters(const ISet<Char> &set)
-{
-  ISetIter<Char> iter(set);
-  Char min, max;
-  while (iter.next(min, max)) {
-    set_[nameStart].addRange(min, max);
-    set_[significant].addRange(min, max);
-    categoryTable_.setRange(min, max, nameStartCategory);
-  }
-}
-
-void Syntax::addSubst(Char lc, Char uc)
-{
-  subst(lc, uc);
-}
-
-void Syntax::setStandardFunction(StandardFunction f, Char c)
-{
-  standardFunction_[f] = c;
-  standardFunctionValid_[f] = 1;
-  set_[minimumData] += c;
-  set_[s] += c;
-  categoryTable_.setChar(c, sCategory);
-  set_[functionChar] += c;
-  set_[significant] += c;
-  switch (f) {
-  case fSPACE:
-    set_[blank] += c;
-    break;
-  case fRE:
-  case fRS:
-    break;
-  }
-}
-
-void Syntax::enterStandardFunctionNames()
-{
-  static Syntax::ReservedName name[3] = {
-    rRE, rRS, rSPACE
-  };
-  for (int i = 0; i < 3; i++)
-    if (standardFunctionValid_[i])
-      functionTable_.insert(reservedName(name[i]), standardFunction_[i]);
-}
-
-void Syntax::setDelimGeneral(int i, const StringC &str)
-{
-  delimGeneral_[i] = str;
-  for (size_t j = 0; j < str.size(); j++)
-    set_[significant] += str[j];
-}
-
-void Syntax::addDelimShortref(const StringC &str, const CharsetInfo &charset)
-{
-  if (str.size() == 1 && str[0] != charset.execToDesc('B') && !isB(str[0]))
-    delimShortrefSimple_.add(str[0]);
-  else
-    delimShortrefComplex_.push_back(str);
-  for (size_t i = 0; i < str.size(); i++)
-    set_[significant] += str[i];
-}
-
-void Syntax::addDelimShortrefs(const ISet<Char> &shortrefChars,
-			       const CharsetInfo &charset)
-{
-  ISetIter<Char> blankIter(set_[blank]);
-  Char min, max;
-  StringC specialChars;
-  while (blankIter.next(min, max)) {
-    do {
-      specialChars += min;
-    } while (min++ != max);
-  }
-  specialChars += charset.execToDesc('B');
-  const ISet<Char> *simpleCharsPtr = &shortrefChars;
-  ISet<Char> simpleChars;
-  for (size_t i = 0; i < specialChars.size(); i++)
-    if (shortrefChars.contains(specialChars[i])) {
-      if (simpleCharsPtr != &simpleChars) {
-	simpleChars = shortrefChars;
-	simpleCharsPtr = &simpleChars;
-      }
-      simpleChars.remove(specialChars[i]);
-    }
-  ISetIter<Char> iter(*simpleCharsPtr);
-  while (iter.next(min, max)) {
-    delimShortrefSimple_.addRange(min, max);
-    set_[significant].addRange(min, max);
-  }
-}
-
-void Syntax::addFunctionChar(const StringC &str, FunctionClass fun, Char c)
-{
-  switch (fun) {
-  case cFUNCHAR:
-    break;
-  case cSEPCHAR:
-    set_[s] += c;
-    categoryTable_.setChar(c, sCategory);
-    set_[blank] += c;
-    set_[sepchar] += c;
-    break;
-  case cMSOCHAR:
-    multicode_ = 1;
-    markupScanTable_.setChar(c, MarkupScan::out);
-    break;
-  case cMSICHAR:
-    // don't need to do anything special if we just have MSICHARs
-    markupScanTable_.setChar(c, MarkupScan::in);
-    break;
-  case cMSSCHAR:
-    multicode_ = 1;
-    markupScanTable_.setChar(c, MarkupScan::suppress);
-    break;
-  }
-  set_[functionChar] += c;
-  set_[significant] += c;
-  functionTable_.insert(str, c);
-}
-
-void Syntax::setName(int i, const StringC &str)
-{
-  names_[i] = str;
-  nameTable_.insert(str, i);
-}
-
-void Syntax::setNamecaseGeneral(Boolean b)
-{
-  namecaseGeneral_ = b;
-  generalSubst_ = b ? &upperSubst_ : &identitySubst_;
-}
-
-void Syntax::setNamecaseEntity(Boolean b)
-{
-  namecaseEntity_ = b;
-  entitySubst_ = b ? &upperSubst_ : &identitySubst_;
-}
-
-void Syntax::subst(Char from, Char to)
-{
-  upperSubst_.addSubst(from, to);
-}
-
-void Syntax::addShunchar(Char c)
-{
-  shunchar_.add(c);
-}
-
-Boolean Syntax::lookupReservedName(const StringC &str,
-				   ReservedName *result) const
-{
-  const int *tem = nameTable_.lookup(str);
-  if (tem) {
-    *result = ReservedName(*tem);
-    return 1;
-  }
-  else
-    return 0;
-}
-
-Boolean Syntax::lookupFunctionChar(const StringC &name, Char *result) const
-{
-  const Char *p = functionTable_.lookup(name);
-  if (p) {
-    *result = *p;
-    return 1;
-  }
-  else
-    return 0;
-}
-
-#ifdef __GNUG__
-typedef HashTableIter<StringC,Char> Dummy_HashTableIter_StringC_Char;
-#endif
-
-Boolean Syntax::charFunctionName(Char c, const StringC *&name) const
-{
-  HashTableIter<StringC,Char> iter(functionTable_);
-  const Char *cp;
-  while (iter.next(name, cp))
-    if (*cp == c)
-      return 1;
-  return 0;
-}
-
-Boolean Syntax::isValidShortref(const StringC &str) const
-{
-  if (str.size() == 1 && delimShortrefSimple_.contains(str[0]))
-    return 1;
-  for (size_t i = 0; i < delimShortrefComplex_.size(); i++)
-    if (str == delimShortrefComplex_[i])
-      return 1;
-  return 0;
-}
-
-void Syntax::implySgmlChar(const Sd &sd)
-			   
-{
-  const CharsetInfo &internalCharset = sd.internalCharset();
-  internalCharset.getDescSet(set_[sgmlChar]);
-  ISet<WideChar> invalid;
-  checkSgmlChar(sd, 0, 0, invalid);
-  ISetIter<WideChar> iter(invalid);
-  WideChar min, max;
-  while (iter.next(min, max)) {
-    do {
-      if (min <= charMax)
-	set_[sgmlChar].remove(Char(min));
-    } while (min++ != max);
-  }
-}
-
-void Syntax::checkSgmlChar(const Sd &sd,
-			   const ::SP_NAMESPACE_SCOPE Syntax *otherSyntax,
-			   Boolean invalidUseDocumentCharset,
-			   ISet<WideChar> &invalid) const
-{
-  ISetIter<Char> iter(shunchar_);
-  Char min, max;
-  while (iter.next(min, max)) {
-    if (min <= max) {
-      do {
-	Char c;
-	if (!sd.internalCharsetIsDocCharset()) {
-	  UnivChar univ;
-	  WideChar tem;
-	  ISet<WideChar> set;
-	  if (sd.docCharset().descToUniv(min, univ)
-	      && sd.internalCharset().univToDesc(univ, tem, set)
-	      && tem <= charMax)
-	    c = Char(tem);
-	  else {
-	    const PublicId *base;
-	    StringC lit;
-	    Number n;
-	    CharsetDeclRange::Type type;
-	    // If it's a declared but unknown character,
-	    // then it can't be significant,
-	    if (invalidUseDocumentCharset
-	        && sd.docCharsetDecl().getCharInfo(min,
-		                                   base,
-						   type,
-						   n,
-						   lit)
-		&& type != CharsetDeclRange::unused)
-	      invalid += min;
-	    continue;
-	  }
-	}
-	else
-	  c = min;
-	if (!set_[significant].contains(c)
-	    && (!otherSyntax || !otherSyntax->set_[significant].contains(c))
-	    && set_[sgmlChar].contains(c))
-	 invalid += invalidUseDocumentCharset ? min : c;
-      } while (min++ != max);
-    }
-  }
-  if (shuncharControls_) {
-    UnivChar i;
-    const CharsetInfo &charset = invalidUseDocumentCharset ? sd.docCharset() : sd.internalCharset();
-    for (i = 0; i < 32; i++)
-      checkUnivControlChar(i, charset, otherSyntax, invalid);
-    for (i = 127; i < 160; i++)
-      checkUnivControlChar(i, charset, otherSyntax, invalid);
-  }
-}
-
-void Syntax::checkUnivControlChar(UnivChar univChar,
-				  const CharsetInfo &internalCharset,
-				  const ::SP_NAMESPACE_SCOPE Syntax *otherSyntax,
-				  ISet<WideChar> &invalid) const
-{
-  WideChar c;
-  ISet<WideChar> set;
-  switch (internalCharset.univToDesc(univChar, c, set)) {
-  case 0:
-    break;
-  case 1:
-    set += c;
-    // fall through
-  default:
-    {
-      ISetIter<WideChar> iter(set);
-      WideChar min, max;
-      while (iter.next(min, max)) {
-	do {
-	  if (min > charMax)
-	    break;
-	  Char ch = Char(min);
-	  if (!set_[significant].contains(ch)
-	      && (!otherSyntax
-		  || !otherSyntax->set_[significant].contains(ch))
-	      && set_[sgmlChar].contains(ch))
-	    invalid += ch;
-	} while (min++ != max);
-      }
-    }
-  }
-}
-
-StringC Syntax::rniReservedName(ReservedName i) const
-{
-  StringC result = delimGeneral(dRNI);
-  result += reservedName(i);
-  return result;
-}
-
-const SubstTable<Char> &Syntax::upperSubstTable() const
-{
-  return upperSubst_;
-}
-
-const StringC &Syntax::peroDelim() const
-{
-  return delimGeneral(dPERO);
-}
-
-Boolean Syntax::isHexDigit(Xchar c) const
-{
-  switch (categoryTable_[c]) {
-  case digitCategory:
-    return 1;
-  case nameStartCategory:
-    break;
-  default:
-    return 0;
-  }
-  return set_[hexDigit].contains(Char(c));
-}
-
-void Syntax::addEntity(const StringC &name, Char c)
-{
-  entityNames_.push_back(name);
-  entityChars_ += c;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Text.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,408 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Text.h"
-#include "Entity.h"
-// for memcmp()
-#include <string.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Text::Text()
-{
-}
-
-void Text::addChar(Char c, const Location &loc)
-{
-  if (items_.size() == 0
-      || items_.back().type != TextItem::data
-      || loc.origin().pointer() != items_.back().loc.origin().pointer()
-      || loc.index() != (items_.back().loc.index()
-			 + (chars_.size() - items_.back().index))) {
-    items_.resize(items_.size() + 1);
-    items_.back().loc = loc;
-    items_.back().type = TextItem::data;
-    items_.back().index = chars_.size();
-  }
-  chars_ += c;
-}
-
-void Text::addChars(const Char *p, size_t length, const Location &loc)
-{
-  if (items_.size() == 0
-      || items_.back().type != TextItem::data
-      || loc.origin().pointer() != items_.back().loc.origin().pointer()
-      || loc.index() != (items_.back().loc.index()
-			 + (chars_.size() - items_.back().index))) {
-    items_.resize(items_.size() + 1);
-    items_.back().loc = loc;
-    items_.back().type = TextItem::data;
-    items_.back().index = chars_.size();
-  }
-  chars_.append(p, length);
-}
-
-void Text::addCdata(const InternalEntity *entity,
-		    const ConstPtr<Origin> &origin)
-{
-  addSimple(TextItem::cdata, Location(origin, 0));
-  chars_.append(entity->string().data(), entity->string().size());
-}
-
-void Text::addSdata(const InternalEntity *entity,
-		    const ConstPtr<Origin> &origin)
-{
-  addSimple(TextItem::sdata, Location(origin, 0));
-  chars_.append(entity->string().data(), entity->string().size());
-}
-
-void Text::addNonSgmlChar(Char c, const Location &loc)
-{
-  addSimple(TextItem::nonSgml, loc);
-  chars_ += c;
-}
-
-void Text::addCharsTokenize(const Char *str, size_t n, const Location &loc,
-			    Char space)
-{
-  Location loci(loc);
-  // FIXME speed this up
-  for (size_t i = 0; i < n; loci += 1, i++) {
-    if (str[i] == space && (size() == 0 || lastChar() == space))
-      ignoreChar(str[i], loci);
-    else
-      addChar(str[i], loci);
-  }
-}
-
-void Text::tokenize(Char space, Text &text) const
-{
-  TextIter iter(*this);
-  TextItem::Type type;
-  const Char *p;
-  size_t n;
-  const Location *loc;
-  while (iter.next(type, p, n, loc)) {
-    switch (type) {
-    case TextItem::data:
-      text.addCharsTokenize(p, n, *loc, space);
-      break;
-    case TextItem::sdata:
-    case TextItem::cdata:
-      {
-	text.addEntityStart(*loc);
-	text.addCharsTokenize(p, n, *loc, space);
-	Location tem(*loc);
-	tem += n;
-	text.addEntityEnd(tem);
-      }
-      break;
-    case TextItem::ignore:
-      text.ignoreChar(*p, *loc);
-      break;
-    default:
-      text.addSimple(type, *loc);
-      break;
-    }
-  }
-  if (text.size() > 0 && text.lastChar() == space)
-    text.ignoreLastChar();
-}
-
-void Text::addSimple(TextItem::Type type, const Location &loc)
-{
-  items_.resize(items_.size() + 1);
-  items_.back().loc = loc;
-  items_.back().type = type;
-  items_.back().index = chars_.size();
-}
-
-void Text::ignoreChar(Char c, const Location &loc)
-{
-  items_.resize(items_.size() + 1);
-  items_.back().loc = loc;
-  items_.back().type = TextItem::ignore;
-  items_.back().c = c;
-  items_.back().index = chars_.size();
-}
-
-void Text::ignoreLastChar()
-{
-  size_t lastIndex = chars_.size() - 1;
-  size_t i;
-  for (i = items_.size() - 1; items_[i].index > lastIndex; i--)
-    ;
-  // lastIndex >= items_[i].index
-  if (items_[i].index != lastIndex) {
-    items_.resize(items_.size() + 1);
-    i++;
-    for (size_t j = items_.size() - 1; j > i; j--)
-      items_[j] = items_[j - 1];
-    items_[i].index = lastIndex;
-    items_[i].loc = items_[i - 1].loc;
-    items_[i].loc += lastIndex - items_[i - 1].index;
-  }
-  
-  items_[i].c = chars_[chars_.size() - 1];
-  items_[i].type = TextItem::ignore;
-  for (size_t j = i + 1; j < items_.size(); j++)
-    items_[j].index = lastIndex;
-  chars_.resize(chars_.size() - 1);
-}
-
-// All characters other than spaces are substed.
-
-void Text::subst(const SubstTable<Char> &table, Char space)
-{
-  for (size_t i = 0; i < items_.size(); i++)
-    if (items_[i].type == TextItem::data) {
-      size_t lim = (i + 1 < items_.size()
-		    ? items_[i + 1].index
-		    : chars_.size());
-      size_t j;
-      for (j = items_[i].index; j < lim; j++) {
-	Char c = chars_[j];
-	if (c != space && c != table[c])
-	  break;
-      }
-      if (j < lim) {
-	size_t start = items_[i].index;
-	StringC origChars(chars_.data() + start, lim - start);
-	for (; j < lim; j++)
-	  if (chars_[j] != space)
-	    table.subst(chars_[j]);
-	items_[i].loc = Location(new MultiReplacementOrigin(items_[i].loc,
-							    origChars),
-				 0);
-      }
-    }
-}
-
-void Text::clear()
-{
-  chars_.resize(0);
-  items_.clear();
-}
-
-Boolean Text::startDelimLocation(Location &loc) const
-{
-  if (items_.size() == 0 || items_[0].type != TextItem::startDelim)
-    return 0;
-  loc = items_[0].loc;
-  return 1;
-}
-
-Boolean Text::endDelimLocation(Location &loc) const
-{
-  if (items_.size() == 0)
-    return 0;
-  switch (items_.back().type) {
-  case TextItem::endDelim:
-  case TextItem::endDelimA:
-    break;
-  default:
-    return 0;
-  }
-  loc = items_.back().loc;
-  return 1;
-}
-
-Boolean Text::delimType(Boolean &lita) const
-{
-  if (items_.size() == 0)
-    return 0;
-  switch (items_.back().type) {
-  case TextItem::endDelim:
-    lita = 0;
-    return 1;
-  case TextItem::endDelimA:
-    lita = 1;
-    return 1;
-  default:
-    break;
-  }
-  return 0;
-}
-
-TextItem::TextItem()
-{
-}
-
-void Text::swap(Text &to)
-{
-  items_.swap(to.items_);
-  chars_.swap(to.chars_);
-}
-
-TextIter::TextIter(const Text &text)
-: ptr_(text.items_.begin()), text_(&text)
-{
-}
-
-const Char *TextIter::chars(size_t &length) const
-{
-  if (ptr_->type == TextItem::ignore) {
-    length = 1;
-    return &ptr_->c;
-  }
-  else {
-    const StringC &chars = text_->chars_;
-    size_t charsIndex = ptr_->index;
-    if (ptr_ + 1 != text_->items_.begin() + text_->items_.size())
-      length = ptr_[1].index - charsIndex;
-    else
-      length = chars.size() - charsIndex;
-    return chars.data() + charsIndex;
-  }
-}
-
-Boolean TextIter::next(TextItem::Type &type, const Char *&str, size_t &length,
-		       const Location *&loc)
-{
-  const TextItem *end = text_->items_.begin() + text_->items_.size();
-  if (ptr_ == end)
-    return 0;
-  type = ptr_->type;
-  loc = &ptr_->loc;
-  if (type == TextItem::ignore) {
-    str = &ptr_->c;
-    length = 1;
-  }
-  else {
-    const StringC &chars = text_->chars_;
-    size_t charsIndex = ptr_->index;
-    str = chars.data() + charsIndex;
-    if (ptr_ + 1 != end)
-      length = ptr_[1].index - charsIndex;
-    else
-      length = chars.size() - charsIndex;
-  }
-  ptr_++;
-  return 1;
-}
-
-void Text::insertChars(const StringC &s, const Location &loc)
-{
-  chars_.insert(0, s);
-  items_.resize(items_.size() + 1);
-  for (size_t i = items_.size() - 1; i > 0; i--) {
-    items_[i] = items_[i - 1];
-    items_[i].index += s.size();
-  }
-  items_[0].loc = loc;
-  items_[0].type = TextItem::data;
-  items_[0].index = 0;
-}
-
-size_t Text::normalizedLength(size_t normsep) const
-{
-  size_t n = size();
-  n += normsep;
-  for (size_t i = 0; i < items_.size(); i++)
-    switch (items_[i].type) {
-    case TextItem::sdata:
-    case TextItem::cdata:
-      n += normsep;
-      break;
-    default:
-      break;
-    }
-  return n;
-}
-
-// This is used to determine for a FIXED CDATA attribute
-// whether a specified value if equal to the default value.
-
-Boolean Text::fixedEqual(const Text &text) const
-{
-  if (string() != text.string())
-    return 0;
-  size_t j = 0;
-  for (size_t i = 0; i < items_.size(); i++)
-    switch (items_[i].type) {
-    case TextItem::cdata:
-    case TextItem::sdata:
-      for (;;) {
-	if (j >= text.items_.size())
-	  return 0;
-	if (text.items_[j].type == TextItem::nonSgml)
-	  return 0;
-	if (text.items_[j].type == TextItem::cdata
-	    || text.items_[j].type == TextItem::sdata)
-	  break;
-	j++;
-      }
-      if (text.items_[j].index != items_[i].index
-	  || (text.items_[j].loc.origin()->asEntityOrigin()->entity()
-	      != items_[i].loc.origin()->asEntityOrigin()->entity()))
-	return 0;
-      break;
-    case TextItem::nonSgml:
-      for (;;) {
-	if (j >= text.items_.size())
-	  return 0;
-	if (text.items_[j].type == TextItem::cdata
-	    || text.items_[j].type == TextItem::sdata)
-	  return 0;
-	if (text.items_[j].type == TextItem::nonSgml)
-	  break;
-	j++;
-      }
-      if (text.items_[j].index != items_[i].index)
-        return 0;
-      break;
-    default:
-      break;
-    }
-  for (; j < text.items_.size(); j++)
-    switch (text.items_[j].type) {
-    case TextItem::cdata:
-    case TextItem::sdata:
-    case TextItem::nonSgml:
-      return 0;
-    default:
-      break;
-    }
-  return 1;
-}
-
-Boolean Text::charLocation(size_t ind, const ConstPtr<Origin> *&origin, Index &index) const
-{
-  // Find the last item whose index <= ind.
-  // Invariant:
-  // indexes < i implies index <= ind
-  // indexes >= lim implies index > ind
-  // The first item will always have index 0.
-  size_t i = 1;
-  size_t lim = items_.size();
-  while (i < lim) {
-    size_t mid = i + (lim - i)/2;
-    if (items_[mid].index > ind)
-      lim = mid;
-    else
-      i = mid + 1;
-  }
-#if 0
-  for (size_t i = 1; i < items_.size(); i++)
-    if (items_[i].index > ind)
-      break;
-#endif
-  i--;
-  // If items_.size() == 0, then i == lim.
-  if (i < lim) {
-    origin = &items_[i].loc.origin();
-    index = items_[i].loc.index() + (ind - items_[i].index);
-  }
-  return 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/TokenMessageArg.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "TokenMessageArg.h"
-#include "MessageBuilder.h"
-#include "token.h"
-#include "ParserMessages.h"
-#include "Mode.h"
-#include "ModeInfo.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-TokenMessageArg::TokenMessageArg(Token token, Mode mode,
-				 const ConstPtr<Syntax> &syntax,
-				 const ConstPtr<Sd> &sd)
-: token_(token), mode_(mode), syntax_(syntax), sd_(sd)
-{
-}
-
-MessageArg *TokenMessageArg::copy() const
-{
-  return new TokenMessageArg(*this);
-}
-
-void TokenMessageArg::append(MessageBuilder &builder) const
-{
-  // FIXME translate function characters in delimiters into
-  // &#NAME; form.
-  if (token_ >= tokenFirstShortref) {
-    builder.appendFragment(ParserMessages::shortrefDelim);
-    return;
-  }
-  if (token_ == tokenEe) {
-    builder.appendFragment(ParserMessages::entityEnd);
-    return;
-  }
-  ModeInfo iter(mode_, *sd_);
-  TokenInfo info;
-  const MessageFragment *fragment = 0;
-  while (iter.nextToken(&info))
-    if (info.token == token_) {
-      switch (info.type) {
-      case TokenInfo::delimType:
-      case TokenInfo::delimDelimType:
-      case TokenInfo::delimSetType:
-	{
-	  const StringC &delim = syntax_->delimGeneral(info.delim1);
-	  builder.appendFragment(ParserMessages::delimStart);
-	  builder.appendChars(delim.data(), delim.size());
-	  fragment = &ParserMessages::delimEnd;
-	}
-	break;
-      case TokenInfo::setType:
-	switch (info.set) {
-	case Syntax::digit:
-	  fragment = &ParserMessages::digit;
-	  break;
-	case Syntax::nameStart:
-	  fragment = &ParserMessages::nameStartCharacter;
-	  break;
-	case Syntax::sepchar:
-	  fragment = &ParserMessages::sepchar;
-	  break;
-	case Syntax::s:
-	  fragment = &ParserMessages::separator;
-	  break;
-	case Syntax::nmchar:
-	  fragment = &ParserMessages::nameCharacter;
-	  break;
-	case Syntax::sgmlChar:
-	  fragment = &ParserMessages::dataCharacter;
-	  break;
-	case Syntax::minimumData:
-	  fragment = &ParserMessages::minimumDataCharacter;
-	  break;
-	case Syntax::significant:
-	  fragment = &ParserMessages::significantCharacter;
-	  break;
-	default:
-	  CANNOT_HAPPEN();
-	}
-	break;
-      case TokenInfo::functionType:
-	switch (info.function) {
-	case Syntax::fRE:
-	  fragment = &ParserMessages::recordEnd;
-	  break;
-	case Syntax::fRS:
-	  fragment = &ParserMessages::recordStart;
-	  break;
-	case Syntax::fSPACE:
-	  fragment = &ParserMessages::space;
-	  break;
-	}
-	break;
-      }
-      break;
-    }
-  if (fragment)
-    builder.appendFragment(*fragment);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/TokenMessageArg.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef TokenMessageArg_INCLUDED
-#define TokenMessageArg_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "MessageArg.h"
-#include "types.h"
-#include "Mode.h"
-#include "Syntax.h"
-#include "Sd.h"
-#include "Ptr.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class TokenMessageArg : public MessageArg {
-public:
-  TokenMessageArg(Token token, Mode mode,
-		  const ConstPtr<Syntax> &syntax,
-		  const ConstPtr<Sd> &sd);
-  MessageArg *copy() const;
-  void append(MessageBuilder &) const;
-private:
-  Token token_;
-  Mode mode_;
-  ConstPtr<Syntax> syntax_;
-  ConstPtr<Sd> sd_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not TokenMessageArg_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/TranslateCodingSystem.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-
-#include "TranslateCodingSystem.h"
-#include "types.h"
-#include "Owner.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class TranslateDecoder : public Decoder {
-public:
-  TranslateDecoder(Decoder *, const ConstPtr<CharMapResource<Char> > &);
-  size_t decode(Char *, const char *, size_t, const char **);
-  Boolean convertOffset(unsigned long &offset) const;
-private:
-  Owner<Decoder> decoder_;
-  ConstPtr<CharMapResource<Char> > map_;
-};
-
-TranslateDecoder::TranslateDecoder(Decoder *decoder,
-				   const ConstPtr<CharMapResource<Char> > &map)
-: Decoder(decoder->minBytesPerChar()), decoder_(decoder), map_(map)
-{
-}
-
-
-Boolean TranslateDecoder::convertOffset(unsigned long &offset) const
-{
-  return decoder_->convertOffset(offset);
-}
-
-size_t TranslateDecoder::decode(Char *to, const char *s,
-				size_t slen, const char **rest)
-{
-  size_t n = decoder_->decode(to, s, slen, rest);
-  for (size_t i = 0; i < n; i++)
-    to[i] = (*map_)[to[i]];
-  return n;
-}
-
-// FIXME set unencodeable handler for underlying encoder
-
-class TranslateEncoder : public RecoveringEncoder {
-public:
-  TranslateEncoder(Encoder *, const ConstPtr<CharMapResource<Char> > &map,
-		   Char illegalChar);
-  void output(const Char *, size_t, OutputByteStream *);
-  void output(Char *, size_t, OutputByteStream *);
-  void startFile(OutputByteStream *);
-private:
-  Owner<Encoder> encoder_;
-  ConstPtr<CharMapResource<Char> > map_;
-  Char illegalChar_;
-  enum { bufSize = 256 };
-  Char buf_[bufSize];
-};
-
-TranslateEncoder::TranslateEncoder(Encoder *encoder,
-				   const ConstPtr<CharMapResource<Char> > &map,
-				   Char illegalChar)
-: encoder_(encoder), map_(map), illegalChar_(illegalChar)
-{
-}
-
-void TranslateEncoder::startFile(OutputByteStream *sbuf)
-{
-  encoder_->startFile(sbuf);
-}
-
-void TranslateEncoder::output(const Char *s, size_t n, OutputByteStream *sbuf)
-{
-  size_t j = 0;
-  for (; n > 0; s++, n--) {
-    Char c = (*map_)[*s];
-    if (c == illegalChar_) {
-      if (j > 0) {
-	encoder_->output(buf_, j, sbuf);
-	j = 0;
-      }
-      handleUnencodable(*s, sbuf);
-    }
-    else {
-      if (j >= bufSize) {
-	encoder_->output(buf_, j, sbuf);
-	j = 0;
-      }
-      buf_[j++] = c;
-    }
-  }
-  if (j > 0)
-    encoder_->output(buf_, j, sbuf);
-}
-
-void TranslateEncoder::output(Char *s, size_t n, OutputByteStream *sbuf)
-{
-  size_t i = 0;
-  for (;;) {
-    if (i == n) {
-      if (n > 0)
-	encoder_->output(s, n, sbuf);
-      break;
-    }
-    Char c = (*map_)[s[i]];
-    if (c == illegalChar_) {
-      if (i > 0)
-	encoder_->output(s, i, sbuf);
-      handleUnencodable(s[i], sbuf);
-      i++;
-      s += i;
-      n -= i;
-      i = 0;
-    }
-    else
-      s[i++] = c;
-  }
-}
-
-TranslateCodingSystem::TranslateCodingSystem(const CodingSystem *sub,
-					     const Desc *desc,
-					     const CharsetInfo *charset,
-					     Char illegalChar,
-					     Char replacementChar)
-: sub_(sub),
-  desc_(desc),
-  charset_(charset),
-  illegalChar_(illegalChar),
-  replacementChar_(replacementChar)
-{
-}
- 
-Decoder *TranslateCodingSystem::makeDecoder() const
-{
-  if (decodeMap_.isNull()) {
-    CharMapResource<Char> *map = new CharMapResource<Char>(replacementChar_);
-    *(ConstPtr<CharMapResource<Char> > *)&decodeMap_ = map;
-    for (const Desc *d = desc_; d->number != CharsetRegistry::UNREGISTERED; d++) {
-      Owner<CharsetRegistry::Iter> iter(CharsetRegistry::makeIter(d->number));
-      if (iter) {
-	WideChar min;
-	WideChar max;
-	UnivChar univ;
-	while (iter->next(min, max, univ)) {
-	  do {
-	    ISet<WideChar> set;
-	    WideChar sysChar;
-	    WideChar count;
-	    int n = charset_->univToDesc(univ, sysChar, set, count);
-	    if (count > (max - min) + 1)
-	      count = (max - min) + 1;
-	    if (n) {
-	      for (WideChar i = 0; i < count; i++)
-		map->setChar(min + d->add + i, sysChar + i);
-	    }
-	    min += count - 1;
-	    univ += count;
-	  } while (min++ != max);
-	}
-      }
-    }
-  }
-  return new TranslateDecoder(sub_->makeDecoder(), decodeMap_);
-}
-
-Encoder *TranslateCodingSystem::makeEncoder() const
-{
-  if (encodeMap_.isNull()) {
-    CharMapResource<Char> *map = new CharMapResource<Char>(illegalChar_);
-    *(ConstPtr<CharMapResource<Char> > *)&encodeMap_ = map;
-    for (const Desc *d = desc_; d->number != CharsetRegistry::UNREGISTERED; d++) {
-      Owner<CharsetRegistry::Iter> iter(CharsetRegistry::makeIter(d->number));
-      if (iter) {
-	WideChar min;
-	WideChar max;
-	UnivChar univ;
-	while (iter->next(min, max, univ)) {
-	  do {
-	    ISet<WideChar> set;
-	    WideChar sysChar;
-	    WideChar count;
-	    int n = charset_->univToDesc(univ, sysChar, set, count);
-	    if (count > (max - min) + 1)
-	      count = (max - min) + 1;
-	    if (n) {
-	      for (WideChar i = 0; i < count; i++)
-		map->setChar(sysChar + i, min + d->add + i);
-	    }
-	    min += count - 1;
-	    univ += count;
-	  } while (min++ != max);
-	}
-      }
-    }
-  }
-  return new TranslateEncoder(sub_->makeEncoder(), encodeMap_, illegalChar_);
-}
-
-unsigned TranslateCodingSystem::fixedBytesPerChar() const
-{
-  return sub_->fixedBytesPerChar();
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Trie.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1994 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef _TRIE_H
-#define	_TRIE_H
-
-#ifndef Trie_INCLUDED
-#define	Trie_INCLUDED 1
-
-#include <limits.h>
-#include "types.h"
-#include "Boolean.h"
-#include "Vector.h"
-#include "CopyOwner.h"
-#include "Priority.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class BlankTrie;
-
-class Trie {
-public:
-	Trie() : next_(0), nCodes_(0) { }
-	Trie(const Trie &);
-	~Trie();
-	Trie &operator = (const Trie &);
-	const Trie *next(int i) const { return &next_[i]; }
-	Boolean hasNext() const { return next_ != 0; }
-	Token token() const { return token_; }
-	int tokenLength() const { return tokenLength_; }
-	const BlankTrie *blank() const;
-	Boolean includeBlanks() const {
-		return (Priority::isBlank(priority_));
-	}
-	friend class TrieBuilder;
-private:
-	Trie *next_;
-	int nCodes_;
-	unsigned short token_;
-	unsigned char tokenLength_;
-	Priority::Type priority_;
-	CopyOwner < BlankTrie > blank_;
-};
-
-class BlankTrie : public Trie {
-public:
-	BlankTrie() { }
-	Boolean codeIsBlank(EquivCode c) const { return codeIsBlank_[c]; }
-	// maximum number of blanks to scan (minimum is 0)
-	size_t maxBlanksToScan() const { return maxBlanksToScan_; }
-	// length to add to tokenLengths in this trie (for those > 0).
-	int additionalLength() const { return additionalLength_; }
-	BlankTrie *copy() const { return new BlankTrie(*this); }
-private:
-	unsigned char additionalLength_;
-	size_t maxBlanksToScan_;
-	Vector < PackedBoolean > codeIsBlank_;
-	friend class TrieBuilder;
-};
-
-inline
-const BlankTrie *Trie::blank() const
-{
-	return (blank_.pointer());
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Trie_INCLUDED */
-
-#endif /* _TRIE_H */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/TrieBuilder.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,253 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "types.h"
-#include "macros.h"
-#include "StringOf.h"
-#include "Trie.h"
-#include "TrieBuilder.h"
-#include "Priority.h"
-#include <stdlib.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Trie::~Trie()
-{
-  if (next_)
-    delete [] next_;
-}
-
-Trie::Trie(const Trie &t)
-: nCodes_(t.nCodes_),
-  token_(t.token_),
-  tokenLength_(t.tokenLength_),
-  priority_(t.priority_),
-  blank_(t.blank_)
-{
-  if (t.next_) {
-    next_ = new Trie[nCodes_];
-    for (int i = 0; i < nCodes_; i++)
-      next_[i] = t.next_[i];
-  }
-  else
-    next_ = 0;
-}
-
-Trie &Trie::operator=(const Trie &t)
-{
-  if (next_)
-    delete [] next_;
-  nCodes_ = t.nCodes_;
-  token_ = t.token_;
-  tokenLength_ = t.tokenLength_;
-  priority_ = t.priority_;
-  blank_ = t.blank_;
-  if (t.next_) {
-    next_ = new Trie[nCodes_];
-    for (int i = 0; i < nCodes_; i++)
-      next_[i] = t.next_[i];
-  }
-  else
-    next_ = 0;
-  return *this;
-}
-
-TrieBuilder::TrieBuilder(int nCodes)
-: nCodes_(nCodes), root_(new Trie)
-{
-  root_->token_ = 0;
-  root_->tokenLength_ = 0;
-  root_->priority_ = Priority::data;
-  root_->nCodes_ = nCodes;
-}
-
-void TrieBuilder::recognize(const String<EquivCode> &chars,
-			    Token t,
-			    Priority::Type priority,
-			    TokenVector &ambiguities)
-{
-  setToken(extendTrie(root_.pointer(), chars), chars.size(), t, priority,
-	   ambiguities);
-}
-
-void TrieBuilder::recognize(const String<EquivCode> &chars,
-			    const String<EquivCode> &set,
-			    Token t,
-			    Priority::Type priority,
-			    TokenVector &ambiguities)
-{
-  Trie *trie = extendTrie(root_.pointer(), chars);
-
-  for (size_t i = 0; i < set.size(); i++)
-    setToken(forceNext(trie, set[i]), chars.size() + 1, t, priority,
-	     ambiguities);
-}
-
-void TrieBuilder::recognizeB(const String<EquivCode> &chars,
-			     int bSequenceLength,
-			     size_t maxBlankSequence,
-			     const String<EquivCode> &blankCodes,
-			     const String<EquivCode> &chars2,
-			     Token token,
-			     TokenVector &ambiguities)
-{
-  doB(extendTrie(root_.pointer(), chars),
-      chars.size(),
-      bSequenceLength,
-      maxBlankSequence,
-      blankCodes,
-      chars2,
-      token,
-      Priority::blank(bSequenceLength),
-      ambiguities);
-}
-
-void TrieBuilder::recognizeEE(EquivCode code, Token t)
-{
-  Trie *trie = forceNext(root_.pointer(), code);
-  trie->tokenLength_ = 0;	// it has length 0 in the buffer
-  trie->token_ = t;
-  trie->priority_ = Priority::data;
-}
-
-void TrieBuilder::doB(Trie *trie,
-		      int tokenLength,
-		      int minBLength,
-		      size_t maxLength,
-		      const String<EquivCode> &blankCodes,
-		      const String<EquivCode> &chars2,
-		      Token token,
-		      Priority::Type pri,
-		      TokenVector &ambiguities)
-{
-  if (minBLength == 0 && trie->next_ == 0) {
-    if (!trie->blank_) {
-      BlankTrie *b = new BlankTrie;
-      trie->blank_ = b;
-      b->maxBlanksToScan_ = maxLength;
-      b->additionalLength_ = tokenLength;
-      b->codeIsBlank_.assign(nCodes_, 0);
-      for (size_t i = 0; i < blankCodes.size(); i++)
-	b->codeIsBlank_[blankCodes[i]] = 1;
-      b->tokenLength_ = 0;
-      b->token_ = 0;
-      b->priority_ = Priority::data;
-      b->nCodes_ = nCodes_;
-    }
-    else {
-      // A B sequence is not allowed to be adjacent to a character
-      // that can occur in a blank sequence, so maxLength will be
-      // the same at a node, no matter how we got there.
-      ASSERT(trie->blank_->maxBlanksToScan_ == maxLength);
-      ASSERT(trie->blank_->additionalLength_ == tokenLength);
-    }
-    if (chars2.size() == 0)
-      setToken(trie, tokenLength, token, pri, ambiguities);
-    else
-      setToken(extendTrie(trie->blank_.pointer(), chars2),
-	       chars2.size(),
-	       token,
-	       pri,
-	       ambiguities);
-  }
-  else {
-    if (minBLength == 0)
-      setToken(extendTrie(trie, chars2), tokenLength + chars2.size(),
-	       token, pri, ambiguities);
-    for (size_t i = 0; i < blankCodes.size(); i++)
-      doB(forceNext(trie, blankCodes[i]),
-	  tokenLength + 1,
-	  minBLength == 0 ? 0 : minBLength - 1,
-	  maxLength - 1,
-	  blankCodes,
-	  chars2,
-	  token,
-	  pri,
-	  ambiguities);
-  }
-}
-
-Trie *TrieBuilder::extendTrie(Trie *trie, const String<EquivCode> &s)
-{
-  for (size_t i = 0; i < s.size(); i++)
-    trie = forceNext(trie, s[i]);
-  return trie;
-}
-
-void TrieBuilder::setToken(Trie *trie,
-			   int tokenLength,
-			   Token token,
-			   Priority::Type pri,
-			   TokenVector &ambiguities)
-{
-  if (tokenLength > trie->tokenLength_
-      || (tokenLength == trie->tokenLength_
-	  && pri > trie->priority_)) {
-    trie->tokenLength_ = tokenLength;
-    trie->token_ = token;
-    trie->priority_ = pri;
-  }
-  else if (trie->tokenLength_ == tokenLength
-	   && trie->priority_ == pri
-	   && trie->token_ != token
-	   && trie->token_ != 0) {
-    ambiguities.push_back(Token(trie->token_));
-    ambiguities.push_back(token);
-  }
-  if (trie->hasNext()) {
-    for (int i = 0; i < nCodes_; i++)
-      setToken(&trie->next_[i], tokenLength, token, pri, ambiguities);
-  }
-}
-
-void TrieBuilder::copyInto(Trie *into, const Trie *from, int additionalLength)
-{
-  if (from->token_ != 0) {
-    TokenVector ambiguities;
-    setToken(into, from->tokenLength_ + additionalLength, from->token_,
-	     from->priority_, ambiguities);
-    ASSERT(ambiguities.size() == 0);
-  }
-  if (from->hasNext())
-    for (int i = 0; i < nCodes_; i++)
-      copyInto(forceNext(into, i), &from->next_[i], additionalLength);
-}
-
-Trie *TrieBuilder::forceNext(Trie *trie, EquivCode c)
-{
-  if (!trie->hasNext()) {
-    trie->next_ = new Trie[nCodes_];
-    if (trie->blank_) {
-      trie->blank_->additionalLength_ += 1;
-      trie->blank_->maxBlanksToScan_ -= 1;
-    }
-    Owner<BlankTrie> blankOwner(trie->blank_.extract());
-    const BlankTrie *b = blankOwner.pointer();
-    for (int i = 0; i < nCodes_; i++) {
-      Trie *p = &trie->next_[i];
-      if (b && b->codeIsBlank(i))
-	trie->next_[i].blank_ = (blankOwner
-				 ? blankOwner.extract()
-				 : new BlankTrie(*b));
-      p->token_ = trie->token_;
-      p->tokenLength_ = trie->tokenLength_;
-      p->priority_ = trie->priority_;
-      p->nCodes_ = nCodes_;
-    }
-    if (b)
-      // -1 because 1 was added above
-      copyInto(trie, b, b->additionalLength_ - 1);
-  }
-  return &trie->next_[c];
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/TrieBuilder.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef TrieBuilder_INCLUDED
-#define TrieBuilder_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "types.h"
-#include "StringOf.h"
-#include "Owner.h"
-#include "Trie.h"
-#include "Vector.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class TrieBuilder {
-public:
-  typedef Vector<Token> TokenVector;
-  TrieBuilder(int nCodes);
-  void recognize(const String<EquivCode> &chars,
-		 Token t,
-		 Priority::Type pri,
-		 TokenVector &ambiguities);
-  void recognize(const String<EquivCode> &chars,
-		 const String<EquivCode> &set,
-		 Token t,
-		 Priority::Type pri,
-		 TokenVector &ambiguities);
-  // recognize a delimiter with a blank sequence
-  void recognizeB(const String<EquivCode> &chars,
-		  int bSequenceLength, // >= 1
-		  size_t maxBlankSequenceLength,
-		  const String<EquivCode> &blankCodes,
-		  const String<EquivCode> &chars2,
-		  Token t,
-		  TokenVector &ambiguities);
-  void recognizeEE(EquivCode code, Token t);
-  Trie *extractTrie() { return root_.extract(); }
-private:
-  TrieBuilder(const TrieBuilder &); // undefined
-  void operator=(const TrieBuilder &); // undefined
-  void doB(Trie *trie,
-	   int tokenLength,
-	   int minBLength,
-	   size_t maxLength,
-	   const String<EquivCode> &blankCodes,
-	   const String<EquivCode> &chars2,
-	   Token token,
-	   Priority::Type pri,
-	   TokenVector &ambiguities);
-  Trie *extendTrie(Trie *, const String<EquivCode> &);
-  void setToken(Trie *trie, int tokenLength, Token token, Priority::Type pri,
-		TokenVector &ambiguities);
-
-  Trie *forceNext(Trie *trie, EquivCode);
-  void copyInto(Trie *, const Trie *, int);
-
-  int nCodes_;
-  Owner<Trie> root_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not TrieBuilder_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/TypeId.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "TypeId.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-int TypeId::isA(TypeId ti) const
-{
-  if (*this == ti)
-    return 1;
-  for (const void *const *p = bases_; *p; p++)
-    if (TypeId((const void *const *)*p).isA(ti))
-      return 1;
-  return 0;
-}
-
-int TypeId::canCast(TypeId to, TypeId from) const
-{
-  return isA(to) && to.isA(from);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/URLStorage.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,685 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-// FIXME This implementation won't work on an EBCDIC machine.
-
-#include "splib.h"
-#ifdef WINSOCK
-#include <winsock.h>
-#define readsocket(s, p, n) ::recv(s, p, n, 0)
-#define writesocket(s, p, n) ::send(s, p, n, 0)
-#define errnosocket (WSAGetLastError())
-#define SocketMessageArg(n) WinsockMessageArg(n)
-#define SOCKET_EINTR (WSAEINTR)
-#define SP_HAVE_SOCKET
-#else
-#ifdef SP_HAVE_SOCKET
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#ifdef SP_INCLUDE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef SP_INCLUDE_OSFCN_H
-#include <osfcn.h>
-#endif
-
-#ifdef SP_DECLARE_H_ERRNO
-extern int h_errno;
-#endif
-
-typedef int SOCKET;
-#define SOCKET_ERROR (-1)
-#define INVALID_SOCKET (-1)
-#define SOCKET_EINTR (EINTR)
-#define closesocket(s) close(s)
-#define writesocket(fd, p, n) ::write(fd, p, n)
-#define readsocket(s, p, n) ::read(s, p, n)
-#define errnosocket (errno)
-#define SocketMessageArg(n) ErrnoMessageArg(n)
-#include "ErrnoMessageArg.h"
-
-#endif /* SP_HAVE_SOCKET */
-
-#endif /* not WINSOCK */
-
-#include "URLStorage.h"
-#include "URLStorageMessages.h"
-#include "RewindStorageObject.h"
-#include "UnivCharsetDesc.h"
-#include "MessageArg.h"
-#include "MessageBuilder.h"
-#include "macros.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <stddef.h>
-#include <ctype.h>
-#include <stdio.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-static UnivCharsetDesc::Range range = { 0, 128, 0 };
-static CharsetInfo iso646Charset(UnivCharsetDesc(&range, 1));
-
-#ifdef SP_HAVE_SOCKET
-
-class HttpSocketStorageObject : public RewindStorageObject {
-public:
-  HttpSocketStorageObject(SOCKET fd, Boolean mayRewind, const StringC &hostStr);
-  ~HttpSocketStorageObject();
-  Boolean open(const String<char> &path, Messenger &);
-  Boolean read(char *buf, size_t bufSize, Messenger &mgr, size_t &nread);
-  Boolean seekToStart(Messenger &);
-  static SOCKET openHttp(const String<char> &host,
-			 unsigned short port,
-			 const StringC &hostStr,
-			 Messenger &mgr);
-private:
-  HttpSocketStorageObject(const HttpSocketStorageObject &); // undefined
-  void operator=(const HttpSocketStorageObject &); // undefined
-  Boolean readHeader(Messenger &);
-  Boolean readLine(Messenger &mgr, String<char> &line, String<char> &leftOver);
-  static Boolean parseStatus(const char *&ptr, int &val);
-  StringC hostStr_;
-  String<char> path_;
-  Boolean eof_;
-  SOCKET fd_;
-};
-
-#ifdef WINSOCK
-
-class WinsockMessageArg : public MessageArg {
-public:
-  WinsockMessageArg(int n) : n_(n) { }
-  MessageArg *copy() const { return new WinsockMessageArg(*this); }
-  void append(MessageBuilder &) const;
-private:
-  int n_;
-};
-
-void WinsockMessageArg::append(MessageBuilder &builder) const
-{
-  // I can't figure out how to get a string associated
-  // with this error number.  FormatMessage() doesn't seem
-  // to work.
-  builder.appendFragment(URLStorageMessages::winsockErrorNumber);
-  builder.appendNumber(n_);
-}
-
-class WinsockIniter {
-public:
-  WinsockIniter();
-  ~WinsockIniter();
-  Boolean init(Messenger &mgr);
-private:
-  Boolean inited_;
-  Boolean initSuccess_;
-};
-
-static WinsockIniter winsockIniter;
-
-WinsockIniter::WinsockIniter()
-: inited_(0)
-{
-}
-
-WinsockIniter::~WinsockIniter()
-{
-  if (inited_ && initSuccess_)
-    (void)WSACleanup();
-}
-
-Boolean WinsockIniter::init(Messenger &mgr)
-{
-  if (!inited_) {
-    inited_ = 1;
-    initSuccess_ = 0;
-    WORD version = MAKEWORD(1, 1);
-    WSADATA wsaData;
-    int err = WSAStartup(version, &wsaData);
-    if (err)
-      mgr.message(URLStorageMessages::winsockInitialize,
-		  WinsockMessageArg(err));
-    else if (LOBYTE(wsaData.wVersion) != 1
-	     || HIBYTE(wsaData.wVersion) != 1) {
-      mgr.message(URLStorageMessages::winsockVersion);
-      WSACleanup();
-    }
-    else
-      initSuccess_ = 1;
-  }
-  return initSuccess_;
-}
-
-#endif /* WINSOCK */
-
-#endif /* SP_HAVE_SOCKET */
-
-URLStorageManager::URLStorageManager(const char *type)
-: type_(type), IdStorageManager(&iso646Charset)
-{
-}
-
-const char *URLStorageManager::type() const
-{
-  return type_;
-}
-
-Boolean URLStorageManager::guessIsId(const StringC &id,
-				     const CharsetInfo &charset) const
-{
-  if (id.size() < 8)
-    return 0;
-  size_t i = 0;
-  for (const char *s = "http://"; *s; s++, i++)
-    if (id[i] != charset.execToDesc(*s)
-	&& (!islower(*s) || id[i] != charset.execToDesc(toupper(*s))))
-      return 0;
-  return 1;
-}
-
-StorageObject *URLStorageManager::makeStorageObject(const StringC &specId,
-						    const StringC &baseId,
-						    Boolean,
-						    Boolean mayRewind,
-						    Messenger &mgr,
-						    StringC &id)
-{
-#ifdef SP_HAVE_SOCKET
-  id = specId;
-  resolveRelative(baseId, id, 0);
-  if (id.size() < 5
-      || (id[0] != 'h' && id[0] != 'H')
-      || (id[1] != 't' && id[1] != 'T')
-      || (id[2] != 't' && id[2] != 'T')
-      || (id[3] != 'p' && id[3] != 'P')
-      || id[4] != ':') {
-    mgr.message(URLStorageMessages::onlyHTTP);
-    return 0;
-  }
-  if (id.size() < 7 || id[5] != '/' || id[6] != '/') {
-    mgr.message(URLStorageMessages::badRelative,
-		StringMessageArg(id));
-    return 0;
-  }
-  size_t i = 7;
-  String<char> host;
-  while (i < id.size()) {
-    if (id[i] == '/')
-      break;
-    if (id[i] == ':')
-      break;
-    host += char(id[i]);
-    i++;
-  }
-  if (host.size() == 0) {
-    mgr.message(URLStorageMessages::emptyHost,
-		StringMessageArg(id));
-    return 0;
-  }
-  unsigned short port;
-  if (i < id.size() && id[i] == ':') {
-    i++;
-    String<char> digits;
-    while (i < id.size() && id[i] != '/') {
-      digits += char(id[i]);
-      i++;
-    }
-    if (digits.size() == 0) {
-      mgr.message(URLStorageMessages::emptyPort,
-		  StringMessageArg(id));
-      return 0;
-    }
-    digits += '\0';
-    char *endptr;
-    long n = strtol(digits.data(), &endptr, 10);
-    if (endptr != digits.data() + digits.size() - 1
-	|| n < 0
-	|| n > 65535L) {
-      mgr.message(URLStorageMessages::invalidPort,
-		  StringMessageArg(id));
-      return 0;
-    }
-    port = (unsigned short)n;
-  }
-  else
-    port = 80;
-  String<char> path;
-  if (i < id.size()) {
-    while (i < id.size() && id[i] != '#') {
-      path += char(id[i]);
-      i++;
-    }
-  }
-  if (path.size() == 0)
-    path += '/';
-
-  StringC hostStr;
-  for (i = 0; i < host.size(); i++)
-    hostStr += host[i];
-  host += '\0';
-  SOCKET fd = HttpSocketStorageObject::openHttp(host, port, hostStr, mgr);
-  if (fd == INVALID_SOCKET)
-    return 0;
-  HttpSocketStorageObject *p
-    = new HttpSocketStorageObject(fd, mayRewind, hostStr);
-  if (!p->open(path, mgr)) {
-    delete p;
-    return 0;
-  }
-  return p;
-#else /* not SP_HAVE_SOCKET */
-  ParentLocationMessenger(mgr).message(URLStorageMessages::notSupported);
-  return 0;
-#endif /* not SP_HAVE_SOCKET */
-}
-
-Boolean URLStorageManager::resolveRelative(const StringC &baseId,
-					   StringC &id,
-					   Boolean) const
-{
-  static const char schemeChars[] = 
-    "abcdefghijklmnopqrstuvwxyz"
-    "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-    "01234567879"
-    "+-.";
-  size_t i;
-  // If it has a scheme, it is absolute.
-  for (i = 0; i < id.size(); i++) {
-    if (id[i] == ':') {
-      if (i == 0)
-	break;
-      else
-	return 1;
-    }
-    else if (!strchr(schemeChars, id[i]))
-      break;
-  }
-  for (i = 0; i < id.size(); i++) {
-    if (id[i] != '/')
-      break;
-  }
-  size_t slashCount = i;
-  if (slashCount > 0) {
-    Boolean foundSameSlash = 0;
-    size_t sameSlashPos;
-    for (size_t j = 0; j < baseId.size(); j++) {
-      size_t thisSlashCount = 0;
-      for (size_t k = j; k < baseId.size() && baseId[k] == '/'; k++)
-	thisSlashCount++;
-      if (thisSlashCount == slashCount && !foundSameSlash) {
-	foundSameSlash = 1;
-	sameSlashPos = j;
-      }
-      else if (thisSlashCount > slashCount)
-	foundSameSlash = 0;
-    }
-    if (foundSameSlash) {
-      StringC tem(baseId.data(), sameSlashPos);
-      tem += id;
-      tem.swap(id);
-    }
-  }
-  else {
-    size_t j;
-    for (j = baseId.size(); j > 0; j--)
-      if (baseId[j - 1] == '/')
-	break;
-    if (j > 0) {
-      StringC tem(baseId.data(), j);
-      tem += id;
-      tem.swap(id);
-    }
-  }
-  // FIXME remove xxx/../, and /.
-  return 1;
-}
-
-Boolean URLStorageManager::transformNeutral(StringC &str, Boolean fold,
-					    Messenger &) const
-{
-  if (fold)
-    for (size_t i = 0; i < str.size(); i++) {
-      Char c = str[i];
-      if (c <= (unsigned char)-1)
-	str[i] = tolower(str[i]);
-    }
-  return 1;
-}
-
-#ifdef SP_HAVE_SOCKET
-
-SOCKET HttpSocketStorageObject::openHttp(const String<char> &host,
-					unsigned short port,
-					const StringC &hostStr,
-					Messenger &mgr)
-{
-#ifdef WINSOCK
-  if (!winsockIniter.init(mgr))
-    return INVALID_SOCKET;
-#endif
-  struct sockaddr_in sock;
-  sock.sin_family = AF_INET;
-  sock.sin_port = htons(port);
-  if (isdigit((unsigned char)host[0])) {
-    unsigned long n = inet_addr(host.data());
-    if (n == (unsigned long)-1) {
-      ParentLocationMessenger(mgr).message(URLStorageMessages::invalidHostNumber,
-					   StringMessageArg(hostStr));
-      return INVALID_SOCKET;
-    }
-    sock.sin_addr.s_addr = n;
-  }
-  else {
-    struct hostent *hp = gethostbyname(host.data());
-    if (!hp) {
-      const MessageType1 *message;
-      switch (h_errno) {
-      case HOST_NOT_FOUND:
-	message = &URLStorageMessages::hostNotFound;
-	break;
-      case TRY_AGAIN:
-	message = &URLStorageMessages::hostTryAgain;
-	break;
-      case NO_RECOVERY:
-	message = &URLStorageMessages::hostNoRecovery;
-	break;
-      case NO_DATA:
-#ifdef NO_ADDRESS
-#if NO_ADDRESS != NO_DATA
-      case NO_ADDRESS:
-#endif
-#endif
-	message = &URLStorageMessages::hostNoData;
-	break;
-      default:
-#ifdef WINSOCK
-	ParentLocationMessenger(mgr).message(URLStorageMessages::hostOtherError,
-					     StringMessageArg(hostStr),
-					     WinsockMessageArg(h_errno));
-	return INVALID_SOCKET;
-#else
-	message = &URLStorageMessages::hostUnknownError;
-	break;
-#endif
-      }
-      ParentLocationMessenger(mgr).message(*message,
-					   StringMessageArg(hostStr));
-      return INVALID_SOCKET;
-    }
-    memcpy(&sock.sin_addr, hp->h_addr, hp->h_length);
-  }
-  SOCKET fd = socket(PF_INET, SOCK_STREAM, 0);
-  if (fd == INVALID_SOCKET) {
-    ParentLocationMessenger(mgr).message(URLStorageMessages::cannotCreateSocket,
-					 SocketMessageArg(errnosocket));
-    return INVALID_SOCKET;
-  }
-  if (connect(fd, (struct sockaddr *)&sock, sizeof(sock)) == SOCKET_ERROR) {
-    ParentLocationMessenger(mgr).message(URLStorageMessages::cannotConnect,
-					 StringMessageArg(hostStr),
-					 SocketMessageArg(errnosocket));
-    (void)closesocket(fd);
-    return INVALID_SOCKET;
-  }
-  return fd;
-}
-
-HttpSocketStorageObject::HttpSocketStorageObject(SOCKET fd,
-					       Boolean mayRewind,
-					       const StringC &hostStr)
-
-: RewindStorageObject(mayRewind, 0), hostStr_(hostStr), fd_(fd), eof_(0)
-{
-}
-
-HttpSocketStorageObject::~HttpSocketStorageObject()
-{
-  if (fd_ != INVALID_SOCKET)
-    (void)closesocket(fd_);
-}
-
-Boolean HttpSocketStorageObject::open(const String<char> &path, Messenger &mgr)
-{
-  path_ = path;
-  String<char> request;
-  request.append("GET ", 4);
-  request += path_;
-  request += ' ';
-  request.append("HTTP/1.0\r\n", 10);
-  request.append("Accept: */*\r\n", 13);
-  request.append("\r\n", 2);
-  // FIXME check length of write
-  if (writesocket(fd_, request.data(), request.size()) == SOCKET_ERROR) {
-    ParentLocationMessenger(mgr).message(URLStorageMessages::writeError,
-					 StringMessageArg(hostStr_),
-					 SocketMessageArg(errnosocket));
-    (void)closesocket(fd_);
-    fd_ = INVALID_SOCKET;
-    return 0;
-  }
-  if (!readHeader(mgr)) {
-    (void)closesocket(fd_);
-    fd_ = INVALID_SOCKET;
-    return 0;
-  }
-  return 1;
-}
-
-Boolean HttpSocketStorageObject::readHeader(Messenger &mgr)
-{
-  String<char> buf;
-  String<char> leftOver;
-  if (!readLine(mgr, buf, leftOver))
-    return 0;
-  buf += '\0';
-  const char *ptr = &buf[0];
-  int val;
-  if (!parseStatus(ptr, val)) {
-    if (buf.size() > 0)
-      unread(buf.data(), buf.size() - 1);
-    return 1;
-  }
-  if (val < 200 || val >= 300) {
-    StringC reason;
-    while (*ptr && *ptr != '\n' && *ptr != '\r') {
-      reason += Char(*ptr);
-      ptr++;
-    }
-    StringC pathStr;
-    for (size_t i = 0; i < path_.size(); i++)
-      pathStr += path_[i];
-    ParentLocationMessenger(mgr).message(URLStorageMessages::getFailed,
-					 StringMessageArg(hostStr_),
-					 StringMessageArg(pathStr),
-					 StringMessageArg(reason));
-    return 0;
-  }
-					 
-  for (;;) {
-    if (!readLine(mgr, buf, leftOver))
-      return 0;
-    if (buf.size() == 0 || buf[0] == '\r' || buf[0] == '\n')
-      break;
-  }
-  if (leftOver.size())
-    unread(leftOver.data(), leftOver.size());
-  return 1;
-}
-
-// Status line must start with: "HTTP/" 1*DIGIT "." 1*DIGIT SP 3DIGIT SP
-
-Boolean HttpSocketStorageObject::parseStatus(const char *&ptr, int &val)
-{
-  static const char ver[] = "HTTP/";
-  for (const char *v = ver; *v; v++, ptr++)
-    if (*v != *ptr)
-      return 0;
-  if (!isdigit((unsigned char)*ptr))
-    return 0;
-  do {
-    ++ptr;
-  } while (isdigit((unsigned char)*ptr));
-  if (*ptr != '.')
-    return 0;
-  ptr++;
-  if (!isdigit((unsigned char)*ptr))
-    return 0;
-  do {
-    ++ptr;
-  } while (isdigit((unsigned char)*ptr));
-  if (*ptr != ' ')
-    return 0;
-  ptr++;
-  val = 0;
-  for (int i = 0; i < 3; i++, ptr++) {
-    if (!isdigit((unsigned char)*ptr))
-      return 0;
-    val = val*10 + *ptr - '0';
-  }
-  if (*ptr != ' ')
-    return 0;
-  ptr++;
-  return 1;
-}
-
-// True will be returned for an empty line.
-
-Boolean HttpSocketStorageObject::readLine(Messenger &mgr,
-					  String<char> &line,
-					  String<char> &leftOver)
-{
-  line.resize(0);
-  Boolean hadCr = 0;
-  Boolean gotLine = 0;
-  size_t li;
-  for (li = 0; li < leftOver.size(); li++) {
-    if (leftOver[li] == '\r') {
-      if (hadCr) {
-	gotLine = 1;
-	break;
-      }
-      line += '\r';
-      hadCr = 1;
-    }
-    else if (leftOver[li] == '\n') {
-      line += '\n';
-      li++;
-      gotLine = 1;
-      break;
-    }
-    else if (hadCr) {
-      gotLine = 1;
-      break;
-    }
-    else
-      line += leftOver[li];
-  }
-  if (gotLine) {
-    for (size_t i = li; i < leftOver.size(); i++)
-      leftOver[i - li] = leftOver[i];
-    leftOver.resize(leftOver.size() - li);
-    return 1;
-  }
-  leftOver.resize(0);
-  if (eof_)
-    return 1;
-  for (;;) {
-    char c;
-    long n;
-    do {
-      n = readsocket(fd_, &c, 1);
-    } while (n < 0 && errnosocket == SOCKET_EINTR);
-    if (n == 0) {
-      (void)closesocket(fd_);
-      eof_ = 1;
-      return 1;
-    }
-    if (n < 0) {
-      ParentLocationMessenger(mgr).message(URLStorageMessages::readError,
-					   StringMessageArg(hostStr_),
-					   SocketMessageArg(errnosocket));
-      (void)closesocket(fd_);
-      fd_ = INVALID_SOCKET;
-      return 0;
-    }
-    switch (c) {
-    case '\r':
-      if (hadCr) {
-	leftOver += c;
-	return 1;
-      }
-      hadCr = 1;
-      line += c;
-      break;
-    case '\n':
-      line += c;
-      return 1;
-    default:
-      if (hadCr) {
-	leftOver += c;
-	return 1;
-      }
-      line += c;
-      break;
-    }
-  }
-  return 0;			// not reached
-}
-
-Boolean HttpSocketStorageObject::read(char *buf, size_t bufSize, Messenger &mgr,
-				     size_t &nread)
-{
-  if (readSaved(buf, bufSize, nread))
-    return 1;
-  if (fd_ == INVALID_SOCKET || eof_)
-    return 0;
-  long n;
-  do {
-    n = readsocket(fd_, buf, bufSize);
-  } while (n < 0 && errnosocket == SOCKET_EINTR);
-  if (n > 0) {
-    nread = size_t(n);
-    saveBytes(buf, nread);
-    return 1;
-  }
-  if (n < 0) {
-    ParentLocationMessenger(mgr).message(URLStorageMessages::readError,
-					 StringMessageArg(hostStr_),
-					 SocketMessageArg(errnosocket));
-    fd_ = INVALID_SOCKET;
-  }
-  else {
-    eof_ = 1;
-    if (closesocket(fd_) == SOCKET_ERROR)
-      ParentLocationMessenger(mgr).message(URLStorageMessages::closeError,
-					   StringMessageArg(hostStr_),
-					   SocketMessageArg(errnosocket));
-    fd_ = INVALID_SOCKET;
-  }
-  return 0;
-}
-
-Boolean HttpSocketStorageObject::seekToStart(Messenger &)
-{
-  CANNOT_HAPPEN();
-  return 0;
-}
-
-#endif /* SP_HAVE_SOCKET */
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/URLStorageMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,319 +0,0 @@
-// This file was automatically generated from lib\URLStorageMessages.msg by msggen.pl.
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct URLStorageMessages {
-  // 2300
-  static const MessageType1 emptyHost;
-  // 2301
-  static const MessageType1 badRelative;
-  // 2302
-  static const MessageType1 emptyPort;
-  // 2303
-  static const MessageType1 invalidPort;
-  // 2304
-  static const MessageType1 hostNotFound;
-  // 2305
-  static const MessageType1 hostTryAgain;
-  // 2306
-  static const MessageType1 hostNoRecovery;
-  // 2307
-  static const MessageType1 hostNoData;
-  // 2308
-  static const MessageType2 hostOtherError;
-  // 2309
-  static const MessageType1 hostUnknownError;
-  // 2310
-  static const MessageType1 cannotCreateSocket;
-  // 2311
-  static const MessageType2 cannotConnect;
-  // 2312
-  static const MessageType2 writeError;
-  // 2313
-  static const MessageType2 readError;
-  // 2314
-  static const MessageType2 closeError;
-  // 2315
-  static const MessageType1 invalidHostNumber;
-  // 2316
-  static const MessageType3 getFailed;
-  // 2317
-  static const MessageType0 notSupported;
-  // 2318
-  static const MessageType0 onlyHTTP;
-  // 2319
-  static const MessageType1 winsockInitialize;
-  // 2320
-  static const MessageType0 winsockVersion;
-  // 2321
-  static const MessageFragment winsockErrorNumber;
-};
-const MessageType1 URLStorageMessages::emptyHost(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2300
-#ifndef SP_NO_MESSAGE_TEXT
-,"empty host in HTTP URL %1"
-#endif
-);
-const MessageType1 URLStorageMessages::badRelative(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2301
-#ifndef SP_NO_MESSAGE_TEXT
-,"uncompletable relative HTTP URL %1"
-#endif
-);
-const MessageType1 URLStorageMessages::emptyPort(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2302
-#ifndef SP_NO_MESSAGE_TEXT
-,"empty port number in HTTP URL %1"
-#endif
-);
-const MessageType1 URLStorageMessages::invalidPort(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2303
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid port number in HTTP URL %1"
-#endif
-);
-const MessageType1 URLStorageMessages::hostNotFound(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2304
-#ifndef SP_NO_MESSAGE_TEXT
-,"host %1 not found"
-#endif
-);
-const MessageType1 URLStorageMessages::hostTryAgain(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2305
-#ifndef SP_NO_MESSAGE_TEXT
-,"could not resolve host %1 (try again later)"
-#endif
-);
-const MessageType1 URLStorageMessages::hostNoRecovery(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2306
-#ifndef SP_NO_MESSAGE_TEXT
-,"could not resolve host %1 (unrecoverable error)"
-#endif
-);
-const MessageType1 URLStorageMessages::hostNoData(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2307
-#ifndef SP_NO_MESSAGE_TEXT
-,"no address record for host name %1"
-#endif
-);
-const MessageType2 URLStorageMessages::hostOtherError(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2308
-#ifndef SP_NO_MESSAGE_TEXT
-,"could not resolve host %1 (%2)"
-#endif
-);
-const MessageType1 URLStorageMessages::hostUnknownError(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2309
-#ifndef SP_NO_MESSAGE_TEXT
-,"could not resolve host %1 (unknown error)"
-#endif
-);
-const MessageType1 URLStorageMessages::cannotCreateSocket(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2310
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot create socket (%1)"
-#endif
-);
-const MessageType2 URLStorageMessages::cannotConnect(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2311
-#ifndef SP_NO_MESSAGE_TEXT
-,"error connecting to %1 (%2)"
-#endif
-);
-const MessageType2 URLStorageMessages::writeError(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2312
-#ifndef SP_NO_MESSAGE_TEXT
-,"error sending request to %1 (%2)"
-#endif
-);
-const MessageType2 URLStorageMessages::readError(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2313
-#ifndef SP_NO_MESSAGE_TEXT
-,"error receiving from host %1 (%2)"
-#endif
-);
-const MessageType2 URLStorageMessages::closeError(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2314
-#ifndef SP_NO_MESSAGE_TEXT
-,"error closing connection to host %1 (%2)"
-#endif
-);
-const MessageType1 URLStorageMessages::invalidHostNumber(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2315
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid host number %1"
-#endif
-);
-const MessageType3 URLStorageMessages::getFailed(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2316
-#ifndef SP_NO_MESSAGE_TEXT
-,"could not get %2 from %1 (reason given was %3)"
-#endif
-);
-const MessageType0 URLStorageMessages::notSupported(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2317
-#ifndef SP_NO_MESSAGE_TEXT
-,"URL not supported by this version"
-#endif
-);
-const MessageType0 URLStorageMessages::onlyHTTP(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2318
-#ifndef SP_NO_MESSAGE_TEXT
-,"only HTTP scheme supported"
-#endif
-);
-const MessageType1 URLStorageMessages::winsockInitialize(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2319
-#ifndef SP_NO_MESSAGE_TEXT
-,"could not initialize Windows Sockets (%1)"
-#endif
-);
-const MessageType0 URLStorageMessages::winsockVersion(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2320
-#ifndef SP_NO_MESSAGE_TEXT
-,"incompatible Windows Sockets version"
-#endif
-);
-const MessageFragment URLStorageMessages::winsockErrorNumber(
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2321
-#ifndef SP_NO_MESSAGE_TEXT
-,"error number "
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/UTF8CodingSystem.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,275 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1994 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-
-#ifdef SP_MULTI_BYTE
-
-#include "UTF8CodingSystem.h"
-#include "constant.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-enum {
-	// cmaskN is mask for first byte to test for N byte sequence
-	cmask1 = 0x80,
-	cmask2 = 0xe0,
-	cmask3 = 0xf0,
-	cmask4 = 0xf8,
-	cmask5 = 0xfc,
-	cmask6 = 0xfe,
-	// cvalN is value of masked first byte of N byte sequence
-	cval1 = 0x00,
-	cval2 = 0xc0,
-	cval3 = 0xe0,
-	cval4 = 0xf0,
-	cval5 = 0xf8,
-	cval6 = 0xfc,
-	// vmaskN is mask to get value from first byte in N byte sequence
-	vmask2 = 0x1f,
-	vmask3 = 0xf,
-	vmask4 = 0x7,
-	vmask5 = 0x3,
-	vmask6 = 0x1,
-	// minN is minimum legal resulting value for N byte sequence
-	min2 = 0x80,
-	min3 = 0x800,
-	min4 = 0x10000,
-	min5 = 0x200000,
-	min6 = 0x4000000,
-	max6 = 0x7fffffff
-};
-
-class UTF8Decoder : public Decoder {
-public:
-	UTF8Decoder();
-	size_t decode(Char *, const char *, size_t, const char **);
-private:
-	// value for encoding error
-	enum { invalid = 0xfffd };
-	Boolean recovering_;
-};
-
-class UTF8Encoder : public Encoder {
-public:
-	UTF8Encoder();
-	void output(const Char *, size_t, OutputByteStream *);
-	void output(Char *tmp_char, size_t tmp_size_t,
-		OutputByteStream *tmp_obs) {
-		output((const Char *)tmp_char, (size_t)tmp_size_t,
-			(OutputByteStream *)tmp_obs);
-	}
-};
-
-Decoder *UTF8CodingSystem::makeDecoder() const
-{
-	return (new UTF8Decoder);
-}
-
-Encoder *UTF8CodingSystem::makeEncoder() const
-{
-	return (new UTF8Encoder);
-}
-
-
-UTF8Decoder::UTF8Decoder()
-: recovering_(0)
-{
-}
-
-size_t UTF8Decoder::decode(Char *to, const char *s,
-	size_t slen, const char **result)
-{
-	Char *start = to;
-	const unsigned char *us = (const unsigned char *)s;
-	if (recovering_) {
-		recovering_ = 0;
-		goto recover;
-	}
-	while (slen > 0) {
-		unsigned c0;
-		c0 = us[0];
-		if ((c0 & cmask1) == cval1) {
-			*to++ = c0;
-			us++;
-			slen--;
-		} else if ((c0 & cmask2) == cval2) {
-			if (slen < 2)
-				goto done;
-			unsigned c1 = us[1] ^ 0x80;
-			if (c1 & 0xc0)
-				goto error;
-			unsigned c = ((c0 & vmask2) << 6) | c1;
-			if (c < min2)
-				c = invalid;
-			*to++ = c;
-			slen -= 2;
-			us += 2;
-		} else if ((c0 & cmask3) == cval3) {
-			if (slen < 3)
-				goto done;
-			unsigned c1 = us[1] ^ 0x80;
-			unsigned c2 = us[2] ^ 0x80;
-			if ((c1 | c2) & 0xc0)
-				goto error;
-			unsigned c = ((((c0 & vmask3) << 6) | c1) << 6) | c2;
-			if (c < min3)
-				c = invalid;
-			*to++ = c;
-			slen -= 3;
-			us += 3;
-		} else if ((c0 & cmask4) == cval4) {
-			if (slen < 4)
-				goto done;
-			unsigned c1 = us[1] ^ 0x80;
-			unsigned c2 = us[2] ^ 0x80;
-			unsigned c3 = us[3] ^ 0x80;
-			if ((c1 | c2 | c3) & 0xc0)
-				goto error;
-			if (charMax < min5 - 1)
-				*to++ = invalid;
-			else {
-				unsigned long c = ((((c0 & vmask4) << 6) |
-					c1) << 6) | c2;
-				c = (c << 6) | c3;
-				if (c < min4)
-					c = invalid;
-				*to++ = c;
-			}
-			slen -= 4;
-			us += 4;
-		} else if ((c0 & cmask5) == cval5) {
-			if (slen < 5)
-				goto done;
-			unsigned c1 = us[1] ^ 0x80;
-			unsigned c2 = us[2] ^ 0x80;
-			unsigned c3 = us[3] ^ 0x80;
-			unsigned c4 = us[4] ^ 0x80;
-			if ((c1 | c2 | c3 | c4) & 0xc0)
-				goto error;
-			if (charMax < min6 - 1)
-				*to++ = invalid;
-			else {
-				unsigned long c = ((((c0 & vmask5) << 6) |
-					c1) << 6) | c2;
-				c = (((c << 6) | c3) << 6) | c4;
-				if (c < min5)
-					c = invalid;
-				*to++ = c;
-			}
-			slen -= 5;
-			us += 5;
-		} else if ((c0 & cmask6) == cval6) {
-			if (slen < 6)
-				goto done;
-			unsigned c1 = us[1] ^ 0x80;
-			unsigned c2 = us[2] ^ 0x80;
-			unsigned c3 = us[3] ^ 0x80;
-			unsigned c4 = us[4] ^ 0x80;
-			unsigned c5 = us[5] ^ 0x80;
-			if ((c1 | c2 | c3 | c4 | c5) & 0xc0)
-				goto error;
-			if (charMax < max6)
-				*to++ = invalid;
-			else {
-				unsigned long c = ((((c0 & vmask6) << 6) |
-					c1) << 6) | c2;
-				c = (((((c << 6) | c3) << 6) | c4) << 6) | c5;
-				if (c < min6)
-					c = invalid;
-				*to++ = c;
-			}
-			slen -= 6;
-			us += 6;
-		} else {
-			error:
-				us++;
-				slen--;
-				*to++ = invalid;
-			recover:
-				for (;;) {
-					if (slen == 0) {
-						recovering_ = 1;
-						goto done;
-					}
-					if ((*us & 0xc0) != 0x80)
-						break;
-					us++;
-					slen--;
-				}
-		}
-	}
-	done:
-		*result = (char *)us;
-		return (to - start);
-}
-
-UTF8Encoder::UTF8Encoder()
-{
-}
-
-void UTF8Encoder::output(const Char *s, size_t n, OutputByteStream *sb)
-{
-	for (; n > 0; s++, n--) {
-		unsigned int c = *s;
-		if (c < min2)
-			sb->sputc((unsigned char)c);
-		else
-			if (c < min3) {
-				sb->sputc((c >> 6) | cval2);
-				sb->sputc((c & 0x3f) | 0x80);
-			}
-		else
-			if (c < min4) {
-				sb->sputc((c >> 12) | cval3);
-				sb->sputc(((c >> 6) & 0x3f) | 0x80);
-				sb->sputc((c & 0x3f) | 0x80);
-			}
-		else
-			if (c < min5) {
-				sb->sputc((c >> 18) | cval4);
-				sb->sputc(((c >> 12) & 0x3f) | 0x80);
-				sb->sputc(((c >> 6) & 0x3f) | 0x80);
-				sb->sputc((c & 0x3f) | 0x80);
-			}
-		else
-			if (c < min6) {
-				sb->sputc((c >> 24) | cval5);
-				sb->sputc(((c >> 18) & 0x3f) | 0x80);
-				sb->sputc(((c >> 12) & 0x3f) | 0x80);
-				sb->sputc(((c >> 6) & 0x3f) | 0x80);
-				sb->sputc((c & 0x3f) | 0x80);
-		}
-		else
-			if (c <= max6) {
-				sb->sputc((c >> 30) | cval6);
-				sb->sputc(((c >> 24) & 0x3f) | 0x80);
-				sb->sputc(((c >> 18) & 0x3f) | 0x80);
-				sb->sputc(((c >> 12) & 0x3f) | 0x80);
-				sb->sputc(((c >> 6) & 0x3f) | 0x80);
-				sb->sputc((c & 0x3f) | 0x80);
-			}
-	}
-}
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#else /* not SP_MULTI_BYTE */
-
-#ifndef __GNUG__
-static char non_empty_translation_unit;	// sigh
-#endif
-
-#endif /* not SP_MULTI_BYTE */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Undo.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "Undo.h"
-#include "ParserState.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Undo::Undo()
-{
-}
-
-Undo::~Undo()
-{
-}
-
-UndoTransition::UndoTransition(const MatchState &state)
-: state_(state)
-{
-}
-
-void UndoTransition::undo(ParserState *parser)
-{
-  parser->currentElement().setMatchState(state_);
-}
-
-UndoStartTag::UndoStartTag()
-{
-}
-
-void UndoStartTag::undo(ParserState *parser)
-{
-  parser->popElement();
-}
-
-UndoEndTag::UndoEndTag(OpenElement *e)
-: element_(e)
-{
-}
-
-void UndoEndTag::undo(ParserState *parser)
-{
-  parser->pushElement(element_.extract());
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Undo.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef Undo_INCLUDED
-#define Undo_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Link.h"
-#include "ContentToken.h"
-#include "OpenElement.h"
-#include "Allocator.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class ParserState;
-class Event;
-
-class Undo : public Link {
-public:
-  void *operator new(size_t sz, Allocator &alloc) { return alloc.alloc(sz); }
-  void *operator new(size_t sz) { return Allocator::allocSimple(sz); }
-  void operator delete(void *p) { Allocator::free(p); }
-  Undo();
-  virtual ~Undo();
-  virtual void undo(ParserState *) = 0;
-private:
-  Undo(const Undo &);		// undefined
-  void operator=(const Undo &);	// undefined
-};
-
-class UndoTransition : public Undo {
-public:
-  UndoTransition(const MatchState &);
-  void undo(ParserState *);
-private:
-  UndoTransition(const UndoTransition &); // undefined
-  void operator=(const UndoTransition &); // undefined
-  MatchState state_;
-};
-
-class UndoStartTag : public Undo {
-public:
-  UndoStartTag();
-  void undo(ParserState *);
-private:
-  UndoStartTag(const UndoStartTag &); // undefined
-  void operator=(const UndoStartTag &);	// undefined
-};
-
-class UndoEndTag : public Undo {
-public:
-  UndoEndTag(OpenElement *);
-  void undo(ParserState *);
-private:
-  UndoEndTag(const UndoEndTag &); // undefined
-  void operator=(const UndoEndTag &); // undefined
-  Owner<OpenElement> element_;
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not Undo_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/UnicodeCodingSystem.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-
-#ifdef SP_MULTI_BYTE
-
-#include "UnicodeCodingSystem.h"
-#include "macros.h"
-#include "Owner.h"
-
-#include <stddef.h>
-#include <string.h>
-#ifdef DECLARE_MEMMOVE
-extern "C" {
-  void *memmove(void *, const void *, size_t);
-}
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const unsigned short byteOrderMark = 0xfeff;
-const unsigned short swappedByteOrderMark = 0xfffe;
-
-class UnicodeDecoder : public Decoder {
-public:
-  UnicodeDecoder(const InputCodingSystem *sub);
-  size_t decode(Char *to, const char *from, size_t fromLen,
-		const char **rest);
-  Boolean convertOffset(unsigned long &offset) const;
-private:
-  PackedBoolean hadFirstChar_;
-  PackedBoolean hadByteOrderMark_;
-  PackedBoolean swapBytes_;
-  Owner<Decoder> subDecoder_;
-  const InputCodingSystem *subCodingSystem_;
-};
-
-class UnicodeEncoder : public Encoder {
-public:
-  UnicodeEncoder();
-  ~UnicodeEncoder();
-  void output(Char *, size_t, OutputByteStream *);
-  void output(const Char *, size_t, OutputByteStream *);
-  void startFile(OutputByteStream *);
-private:
-  void allocBuf(size_t);
-  unsigned short *buf_;
-  size_t bufSize_;
-};
-
-UnicodeCodingSystem::UnicodeCodingSystem(const InputCodingSystem *sub)
-: sub_(sub)
-{
-}
-
-Decoder *UnicodeCodingSystem::makeDecoder() const
-{
-  return new UnicodeDecoder(sub_);
-}
-
-Encoder *UnicodeCodingSystem::makeEncoder() const
-{
-  return new UnicodeEncoder;
-}
-
-unsigned UnicodeCodingSystem::fixedBytesPerChar() const
-{
-  return 2;
-}
-
-UnicodeDecoder::UnicodeDecoder(const InputCodingSystem *subCodingSystem)
-: Decoder(subCodingSystem ? 1 : 2), subCodingSystem_(subCodingSystem),
-  hadByteOrderMark_(0), hadFirstChar_(0), swapBytes_(0)
-{
-}
-
-
-size_t UnicodeDecoder::decode(Char *to, const char *from, size_t fromLen,
-			      const char **rest)
-{
-  union U {
-    unsigned short word;
-    char bytes[2];
-  };
-    
-  if (subDecoder_)
-    return subDecoder_->decode(to, from, fromLen, rest);
-  if (!hadFirstChar_) {
-    if (fromLen < 2) {
-      *rest = from;
-      return 0;
-    }
-    hadFirstChar_ = 1;
-    minBytesPerChar_ = 2;
-    U u;
-    u.bytes[0] = from[0];
-    u.bytes[1] = from[1];
-    if (u.word == byteOrderMark) {
-      hadByteOrderMark_ = 1;
-      from += 2;
-      fromLen -= 2;
-    }
-    else if (u.word == swappedByteOrderMark) {
-      hadByteOrderMark_ = 1;
-      from += 2;
-      fromLen -= 2;
-      swapBytes_ = 1;
-    }
-    else if (subCodingSystem_) {
-      subDecoder_ = subCodingSystem_->makeDecoder();
-      minBytesPerChar_ = subDecoder_->minBytesPerChar();
-      return subDecoder_->decode(to, from, fromLen, rest);
-    }
-  }
-  fromLen &= ~1;
-  *rest = from + fromLen;
-  if (sizeof(Char) == 2) {
-    if (!swapBytes_) {
-      if (from != (char *)to)
-	memmove(to, from, fromLen);
-      return fromLen/2;
-    }
-  }
-  if (swapBytes_) {
-    for (size_t n = fromLen; n > 0; n -= 2) {
-      U u;
-      u.bytes[1] = *from++;
-      u.bytes[0] = *from++;
-      *to++ = u.word;
-    }
-  }
-  else  {
-    for (size_t n = fromLen; n > 0; n -= 2) {
-      U u;
-      u.bytes[0] = *from++;
-      u.bytes[1] = *from++;
-      *to++ = u.word;
-    }
-  }
-  return fromLen/2;
-}
-
-Boolean UnicodeDecoder::convertOffset(unsigned long &n) const
-{
-  if (subDecoder_)
-    return subDecoder_->convertOffset(n);
-  if (hadByteOrderMark_)
-    n += 1;
-  n *= 2;
-  return true;
-}
-
-UnicodeEncoder::UnicodeEncoder()
-: buf_(0), bufSize_(0)
-{
-}
-
-UnicodeEncoder::~UnicodeEncoder()
-{
-  delete [] buf_;
-}
-
-void UnicodeEncoder::allocBuf(size_t n)
-{
-  if (bufSize_ < n) {
-    delete [] buf_;
-    buf_ = new unsigned short[bufSize_ = n];
-  }
-}
-
-void UnicodeEncoder::startFile(OutputByteStream *sb)
-{
-  const unsigned short n = byteOrderMark;
-  sb->sputn((char *)&n, 2);
-}
-
-void UnicodeEncoder::output(Char *s, size_t n, OutputByteStream *sb)
-{
-  if (sizeof(Char) == 2) {
-    sb->sputn((char *)s, n*2);
-    return;
-  }
-  ASSERT(sizeof(Char) >= 2);
-  unsigned short *p = (unsigned short *)s;
-  for (size_t i = 0; i < n; i++)
-    p[i] = s[i] & 0xffff;
-  sb->sputn((char *)s, n*2);
-}
-
-void UnicodeEncoder::output(const Char *s, size_t n, OutputByteStream *sb)
-{
-  if (sizeof(Char) == 2) {
-    sb->sputn((char *)s, n*2);
-    return;
-  }
-  allocBuf(n);
-  for (size_t i = 0; i < n; i++)
-    buf_[i] = s[i] & 0xffff;
-  sb->sputn((char *)buf_, n*2);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#else /* not SP_MULTI_BYTE */
-
-#ifndef __GNUG__
-static char non_empty_translation_unit;	// sigh
-#endif
-
-#endif /* not SP_MULTI_BYTE */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/UnivCharsetDesc.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-// Copyright (c) 1994, 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-#include "UnivCharsetDesc.h"
-#include "macros.h"
-#include "constant.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-UnivCharsetDesc::UnivCharsetDesc()
-: charMap_(unsigned(1) << 31)
-{
-}
-
-UnivCharsetDesc::UnivCharsetDesc(const Range *p, size_t n)
-: charMap_(unsigned(1) << 31)
-{
-  set(p, n);
-}
-
-void UnivCharsetDesc::set(const Range *p, size_t n)
-{
-  for (size_t i = 0; i < n; i++) {
-    const Range &r = p[i];
-    Char max;
-    if (r.count > charMax || r.descMin > charMax - r.count)
-      max = charMax;
-    else
-      max = r.descMin + (r.count - 1);
-    if (max - r.descMin > univCharMax
-	|| r.univMin > univCharMax - (max - r.descMin))
-      max = r.descMin + (univCharMax - r.univMin);
-    addRange(r.descMin, max, r.univMin);
-  }
-}
-
-void UnivCharsetDesc::addRange(WideChar descMin,
-			       WideChar descMax,
-			       UnivChar univMin)
-{
-  if (descMin <= charMax) {
-    Char max = descMax > charMax ? charMax : descMax;
-    charMap_.setRange(descMin, max, wrapChar(univMin, descMin));
-  }
-  if (descMax > charMax) {
-    if (descMin > charMax)
-      rangeMap_.addRange(descMin, descMax, univMin);
-    else
-      rangeMap_.addRange(charMax, descMax, univMin + (charMax - descMin));
-  }
-}
-
-void UnivCharsetDesc::addBaseRange(const UnivCharsetDesc &baseSet,
-				   WideChar descMin,
-				   WideChar descMax,
-				   WideChar baseMin,
-				   ISet<WideChar> &baseMissing)
-{
-  UnivCharsetDescIter iter(baseSet);
-  iter.skipTo(baseMin);
-  WideChar baseMax = baseMin + (descMax - descMin);
-  WideChar iDescMin, iDescMax;
-  UnivChar iBaseMin;
-  WideChar missingBaseMin = baseMin;
-  Boolean usedAll = 0;
-  while (iter.next(iDescMin, iDescMax, iBaseMin) && iDescMin <= baseMax) {
-    //  baseMin   baseMax
-    //          iDescMin iDescMax
-    if (iDescMax >= baseMin) {
-      WideChar min = baseMin > iDescMin ? baseMin : iDescMin;
-      if (min > missingBaseMin)
-	baseMissing.addRange(missingBaseMin, min - 1);
-      WideChar max = baseMax < iDescMax ? baseMax : iDescMax;
-      missingBaseMin = max + 1;
-      if (missingBaseMin == 0)
-	usedAll = 1;
-      ASSERT(min <= max);
-      addRange(descMin + (min - baseMin),
-	       descMin + (max - baseMin),
-	       iBaseMin + (min - iDescMin));
-    }
-  }
-  if (!usedAll && baseMax >= missingBaseMin)
-    baseMissing.addRange(missingBaseMin, baseMax);
-}
-
-unsigned UnivCharsetDesc::univToDesc(UnivChar to, WideChar &from,
-				     ISet<WideChar> &fromSet,
-				     WideChar &count) const
-{
-  unsigned ret = rangeMap_.inverseMap(to, from, fromSet, count);
-  Char min = 0;
-  do {
-    Char max;
-    Unsigned32 tem = charMap_.getRange(min, max);
-    if (!noDesc(tem)) {
-      UnivChar toMin = extractChar(tem, min);
-      if (toMin <= to && to <= toMin + (max - min)) {
-	Char n = min + (to - toMin);
-	WideChar thisCount = max - n + 1;
-	if (ret > 1) {
-	  fromSet.add(n);
-	  if (thisCount < count)
-	    count = thisCount;
-	  if (n < from)
-	    from = n;
-	}
-	else if (ret == 1) {
-	  fromSet.add(from);
-	  fromSet.add(n);
-	  ret = 2;
-	  if (thisCount < count)
-	    count = thisCount;
-	  if (n < from)
-	    from = n;
-	}
-	else {
-	  count = thisCount;
-	  from = n;
-	  ret = 1;
-	}
-      }
-      else if (ret == 0 && toMin > to && toMin - to < count)
-	count = toMin - to;
-    }
-    min = max;
-  } while (min++ != Char(-1));
-  return ret;
-}
-
-UnivCharsetDescIter::UnivCharsetDescIter(const UnivCharsetDesc &desc)
-: charMap_(&desc.charMap_), doneCharMap_(0), nextChar_(0),
-  rangeMapIter_(desc.rangeMap_)
-{
-}
-
-Boolean UnivCharsetDescIter::next(WideChar &descMin,
-				  WideChar &descMax,
-				  UnivChar &univMin)
-{
-  while (!doneCharMap_) {
-    Char ch = nextChar_;
-    Unsigned32 tem = charMap_->getRange(nextChar_, nextChar_);
-    descMax = nextChar_;
-    if (!UnivCharsetDesc::noDesc(tem)) {
-      descMin = ch;
-      descMax = nextChar_;
-      univMin = UnivCharsetDesc::extractChar(tem, ch);
-      if (nextChar_ == Char(-1))
-        doneCharMap_ = 1;
-      else
-	nextChar_++;
-      return 1;
-    }
-    if (nextChar_ == Char(-1))
-      doneCharMap_ = 1;
-    else
-      nextChar_++;
-  }
-  return rangeMapIter_.next(descMin, descMax, univMin);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/Win32CodingSystem.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "splib.h"
-
-#ifdef SP_MULTI_BYTE
-
-#include <windows.h>
-#include <io.h>
-#include "Win32CodingSystem.h"
-#include "Boolean.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SingleByteWin32Decoder : public Decoder {
-public:
-  SingleByteWin32Decoder(unsigned int codePage, Char defaultChar);
-  size_t decode(Char *to, const char *from, size_t fromLen,
-		const char **rest);
-  Boolean convertOffset(unsigned long &offset) const;
-private:
-  Char map_[256];
-};
-
-class MultiByteWin32Decoder : public Decoder {
-public:
-  MultiByteWin32Decoder(unsigned int codePage, Char defaultChar,
-			unsigned char *leadByte);
-  size_t decode(Char *to, const char *from, size_t fromLen,
-		const char **rest);
-private:
-  unsigned int codePage_;
-  Char defaultChar_;
-  PackedBoolean isLeadByte_[256];
-};
-
-class Win32Encoder : public Encoder {
-public:
-  Win32Encoder(unsigned int codePage);
-  ~Win32Encoder();
-  void output(const Char *, size_t, OutputByteStream *);
-private:
-  char *buf_;
-  size_t bufLen_;
-  unsigned int codePage_;
-};
-
-Win32CodingSystem::Win32CodingSystem(unsigned int codePage, Char defaultChar)
-: codePage_(codePage), defaultChar_(defaultChar)
-{
-}
-
-Win32CodingSystem::Win32CodingSystem(SpecialCodePage codePage,
-				     Char defaultChar)
-: defaultChar_(defaultChar)
-{
-  if (codePage == codePageAnsi)
-    codePage_ = GetACP();
-  else
-    codePage_ = GetOEMCP();
-}
-
-Boolean Win32CodingSystem::isValid() const
-{
-  return IsValidCodePage(codePage_);
-}
-
-Encoder *Win32CodingSystem::makeEncoder() const
-{
-  return new Win32Encoder(codePage_);
-}
-
-Decoder *Win32CodingSystem::makeDecoder() const
-{
-  CPINFO info;
-  if (GetCPInfo(codePage_, &info) && info.MaxCharSize > 1)
-    return new MultiByteWin32Decoder(codePage_, defaultChar_, info.LeadByte);
-  else
-    return new SingleByteWin32Decoder(codePage_, defaultChar_);
-}
-
-SingleByteWin32Decoder::SingleByteWin32Decoder(unsigned int codePage,
-					       Char defaultChar)
-{
-  for (int i = 0; i < 256; i++) {
-    char c = i;
-    if (MultiByteToWideChar(codePage, MB_PRECOMPOSED|MB_ERR_INVALID_CHARS,
-			    &c, 1, map_ + i, 1) == 0)
-      map_[i] = defaultChar;
-  }
-}
-
-size_t SingleByteWin32Decoder::decode(Char *to, const char *from,
-				      size_t fromLen, const char **rest)
-{
-  for (size_t n = fromLen; n > 0; n--)
-    *to++ = map_[(unsigned char)*from++]; // zero extend
-  *rest = from;
-  return fromLen;
-}
-
-Boolean SingleByteWin32Decoder::convertOffset(unsigned long &) const
-{
-  return 1;
-}
-
-MultiByteWin32Decoder::MultiByteWin32Decoder(unsigned int codePage,
-					     Char defaultChar,
-					     unsigned char *leadByte)
-: defaultChar_(defaultChar), codePage_(codePage)
-{
-  for (int i = 0; i < 256; i++)
-    isLeadByte_[i] = 0;
-  for (int i = 0; i < MAX_LEADBYTES; i += 2) {
-    if (leadByte[i] == 0 && leadByte[i + 1] == 0)
-      break;
-    int lim = leadByte[i + 1];
-    for (int j = leadByte[i]; j < lim; j++)
-      isLeadByte_[j] = 1;
-  }
-}
-
-size_t MultiByteWin32Decoder::decode(Char *to, const char *from,
-				     size_t fromLen, const char **rest)
-{
-  size_t i;
-  for (i = fromLen; i > 0; i--)
-    if (!isLeadByte_[(unsigned char)from[i - 1]])
-      break;
-  if ((fromLen - i) & 1)
-    fromLen--;
-
-  int count = MultiByteToWideChar(codePage_,
-				  MB_PRECOMPOSED|MB_ERR_INVALID_CHARS,
-				  from, fromLen, to, fromLen);
-  if (count) {
-    *rest = from + fromLen;
-    return count;
-  }
-  Char *start = to;
-  // Try it character by character.
-  while (fromLen > 0) {
-    int nBytes = 1 + isLeadByte_[(unsigned char)*from];
-    ASSERT(nBytes <= fromLen);
-    if (MultiByteToWideChar(codePage_, MB_PRECOMPOSED|MB_ERR_INVALID_CHARS,
-			    from, nBytes, to, 1) != 1)
-      *to = defaultChar_;
-    from += nBytes;
-    fromLen -= nBytes;
-    to++;
-  }
-  *rest = from;
-  return to - start;
-}
-
-Win32Encoder::Win32Encoder(unsigned int codePage)
-: codePage_(codePage), buf_(0), bufLen_(0)
-{
-}
-
-Win32Encoder::~Win32Encoder()
-{
-  delete [] buf_;
-}
-
-void Win32Encoder::output(const Char *s, size_t n, OutputByteStream *sb)
-{
-  if (n == 0)
-    return;
-  if (n*2 > bufLen_) {
-    delete [] buf_;
-    bufLen_ = n*2;
-    buf_ = new char[bufLen_];
-  }
-  int nBytes = WideCharToMultiByte(codePage_,
-				   0,
-				   s,
-				   n,
-				   buf_,
-				   bufLen_,
-				   0,
-				   0);
-  if (nBytes)
-    sb->sputn(buf_, nBytes);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#else /* not SP_MULTI_BYTE */
-
-#ifndef __GNUG__
-static char non_empty_translation_unit;	// sigh
-#endif
-
-#endif /* not SP_MULTI_BYTE */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/WinApp.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-// Copyright (c) 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-
-#ifdef SP_WIDE_SYSTEM
-
-#include "WinApp.h"
-#include "CodingSystemKit.h"
-#include "Ptr.h"
-#include "ExtendEntityManager.h"
-#include "SOEntityCatalog.h"
-#include "SgmlParser.h"
-#include "PosixStorage.h"
-#include "LiteralStorage.h"
-#ifdef SP_WININET
-#include "WinInetStorage.h"
-#else
-#include "URLStorage.h"
-#endif
-#define STRICT
-#include <windows.h>
-#include "macros.h"
-
-#ifndef SP_DEFAULT_ENCODING
-#define SP_DEFAULT_ENCODING "WINDOWS"
-#endif
-
-#ifndef SP_REGISTRY_KEY
-#define SP_REGISTRY_KEY "Software\\James Clark\\SP"
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-static
-StringC asStringC(const char *s)
-{
-  StringC tem;
-  if (s) {
-    while (*s)
-      tem += (unsigned char)*s++;
-  }
-  return tem;
-}
-
-WinApp::WinApp()
-{
-  getRegistry("Catalogs", defaultCatalogs_);
-  getRegistry("Directories", defaultDirectories_);
-  getRegistry("Encoding", defaultEncoding_);
-  if (defaultEncoding_.size() == 0 || !getCodingSystem(defaultEncoding_)) {
-    defaultEncoding_ = asStringC(SP_DEFAULT_ENCODING);
-  }
-}
-
-const InputCodingSystem *
-WinApp::getCodingSystem(const StringC &name)
-{
-  if (name.size() == 0)
-    return 0;
-  if (codingSystemKit_.isNull())
-    codingSystemKit_ = CodingSystemKit::make(0);
-  const char *tem;
-  return codingSystemKit_->makeInputCodingSystem(name,
-						 codingSystemKit_->systemCharset(),
-						 0,
-						 tem);
-}
-
-static
-void split(const StringC &str, Char sep, Vector<StringC> &result)
-{
-  Boolean started = 0;
-  for (size_t i = 0; i < str.size(); i++) {
-    if (str[i] == sep)
-      started = 0;
-    else {
-      if (!started) {
-	result.resize(result.size() + 1);
-	started = 1;
-      }
-      result.back() += str[i];
-    }
-  }
-}
-
-void WinApp::initParser(const StringC &sysid, SgmlParser &parser)
-{
-  Ptr<EntityManager> em;
-  initParser(sysid, parser, em);
-}
-
-void WinApp::initParser(const StringC &sysid, SgmlParser &parser,
-			Ptr<EntityManager> &em)
-{
-  const InputCodingSystem *codingSystem = getCodingSystem(encoding_);
-  if (!codingSystem)
-    codingSystem = getCodingSystem(defaultEncoding_);
-  ConstPtr<InputCodingSystemKit> icsk;
-  icsk.swap(codingSystemKit_);
-  const CharsetInfo *systemCharset = &icsk->systemCharset();
-
-  PosixStorageManager *sm
-    = new PosixStorageManager("OSFILE",
-			      systemCharset,
-			      5);
-  {
-    Vector<StringC> dirs;
-    split(extraDirectories_, ';', dirs);
-    split(defaultDirectories_, ';', dirs);
-    for (size_t i = 0; i < dirs.size(); i++)
-      sm->addSearchDir(dirs[i]);
-  }
-  ExtendEntityManager *xem
-   = ExtendEntityManager::make(sm,
-			       codingSystem,
-			       icsk,
-			       0);
-  em = xem;
-  xem
-  ->registerStorageManager(new PosixFdStorageManager("OSFD",
-						     systemCharset));
-#ifdef SP_WININET
-  xem->registerStorageManager(new WinInetStorageManager("URL"));
-#else
-  xem->registerStorageManager(new URLStorageManager("URL"));
-#endif
-  xem->registerStorageManager(new LiteralStorageManager("LITERAL"));
-  Vector<StringC> catalogSysids;
-  split(extraCatalogs_, ';', catalogSysids);
-  size_t nExtra = catalogSysids.size();
-  split(defaultCatalogs_, ';', catalogSysids);
-  xem->setCatalogManager(SOCatalogManager::make(catalogSysids,
-					        nExtra,
-					        systemCharset,
-					        systemCharset,
-						1));
-  SgmlParser::Params params;
-  params.sysid = sysid;
-  params.entityManager = em.pointer();
-  params.options = &options;
-  parser.init(params);
-}
-
-void WinApp::setDefaultCatalogs(StringC &tem)
-{
-  if (tem != defaultCatalogs_) {
-    tem.swap(defaultCatalogs_);
-    setRegistry("Catalogs", defaultCatalogs_);
-  }
-}
-
-void WinApp::setDefaultDirectories(StringC &tem)
-{
-  if (tem != defaultDirectories_) {
-    tem.swap(defaultDirectories_);
-    setRegistry("Directories", defaultDirectories_);
-  }
-}
-
-Boolean WinApp::setEncoding(StringC &str)
-{
-  if (!getCodingSystem(str))
-    return 0;
-  str.swap(encoding_);
-  return 1;
-}
-
-Boolean WinApp::setDefaultEncoding(StringC &str)
-{
-  if (!getCodingSystem(str))
-    return 0;
-  str.swap(defaultEncoding_);
-  setRegistry("Encoding", defaultEncoding_);
-  return 1;
-}
-
-void WinApp::setRegistry(const char *name, const StringC &value)
-{
-  HKEY hk;
-  if (RegCreateKeyA(HKEY_CURRENT_USER, SP_REGISTRY_KEY, &hk) != ERROR_SUCCESS)
-    return;
-  String<char> buf;
-  int len = WideCharToMultiByte(CP_ACP, 0, value.data(), value.size(), 0, 0, 0, 0);
-  buf.resize(len + 1);
-  WideCharToMultiByte(CP_ACP, 0, value.data(), value.size(), buf.begin(), len, 0, 0);
-  buf[len] = '\0';
-  RegSetValue(hk, name, REG_SZ, buf.data(), len);
-  RegCloseKey(hk);
-}
-
-Boolean WinApp::getRegistry(const char *name, StringC &value)
-{
-  HKEY hk;
-  if (RegOpenKeyA(HKEY_CURRENT_USER, SP_REGISTRY_KEY, &hk) != ERROR_SUCCESS)
-    return 0;
-  String<char> buf;
-  long size;
-  Boolean retval = 0;
-  if (RegQueryValueA(hk, name, 0, &size) == ERROR_SUCCESS) {
-    buf.resize(size);
-    if (RegQueryValueA(hk, name, &buf[0], &size) == ERROR_SUCCESS) {
-      int nChars = MultiByteToWideChar(CP_ACP, 0, buf.data(), size - 1, 0, 0);
-      if (nChars || GetLastError() == ERROR_SUCCESS) {
-	value.resize(nChars);
-	if (MultiByteToWideChar(CP_ACP, 0, buf.data(), size - 1, &value[0], nChars) == nChars)
-	  retval = 1;
-	else
-	  value.resize(0);
-      }
-    }
-  }
-  RegCloseKey(hk);
-  return retval;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* SP_WIDE_SYSTEM */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/WinInetStorage.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,235 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-
-#ifdef SP_WININET
-
-#include "WinInetStorage.h"
-#include "WinInetStorageMessages.h"
-#include "RewindStorageObject.h"
-#include "UnivCharsetDesc.h"
-#include "MessageArg.h"
-#include "MessageBuilder.h"
-#include "macros.h"
-
-#define STRICT
-#include <windows.h>
-#include <wininet.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-static UnivCharsetDesc::Range range = { 0, 128, 0 };
-static CharsetInfo iso646Charset(UnivCharsetDesc(&range, 1));
-
-String<char> toAscii(const StringC &buf)
-{
-  String<char> s;
-  for (size_t i = 0; i < buf.size(); i++)
-    s += buf[i];
-  s += '\0';
-  return s;
-}
-class Win32MessageArg : public MessageArg {
-public:
-  Win32MessageArg(DWORD n) : n_(n) { }
-  MessageArg *copy() const { return new Win32MessageArg(*this); }
-  void append(MessageBuilder &) const;
-private:
-  DWORD n_;
-};
-
-void Win32MessageArg::append(MessageBuilder &builder) const
-{
-  void *msg;
-  if (!FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM
-		      |FORMAT_MESSAGE_ALLOCATE_BUFFER,
-		      0,
-		      n_,
-		      MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-		      (LPSTR)&msg,
-		      0,
-		      0)) {
-    // FIXME interpret common internet messages here
-    builder.appendNumber(n_);
-    return;
-  }
-  String<Char> s;
-  for (char *tem = (char *)msg; *tem; tem++)
-    s += *tem;
-  LocalFree(msg);
-  builder.appendChars(s.data(), s.size());
-}
-
-class WinInetStorageObject : public RewindStorageObject {
-public:
-  WinInetStorageObject(HINTERNET fd, Boolean mayRewind, const StringC &url);
-  ~WinInetStorageObject();
-  Boolean read(char *buf, size_t bufSize, Messenger &mgr, size_t &nread);
-  Boolean seekToStart(Messenger &);
-private:
-  WinInetStorageObject(const WinInetStorageObject &); // undefined
-  void operator=(const WinInetStorageObject &); // undefined
-  Boolean eof_;
-  HINTERNET fd_;
-  StringC url_;
-};
-
-WinInetStorageManager::WinInetStorageManager(const char *type)
-: type_(type), IdStorageManager(&iso646Charset), session_(0)
-{
-}
-
-WinInetStorageManager::~WinInetStorageManager()
-{
-  if (session_) {
-    InternetCloseHandle(session_);
-    session_ = 0;
-  }
-}
-
-const char *WinInetStorageManager::type() const
-{
-  return type_;
-}
-
-Boolean WinInetStorageManager::initSession()
-{
-  if (!session_) {
-    session_ = InternetOpenA("SP",
-                             INTERNET_OPEN_TYPE_PRECONFIG,
-			     0,
-			     0,
-			     0);
-  }
-  return 1;
-}
-
-Boolean WinInetStorageManager::guessIsId(const StringC &id,
-				     const CharsetInfo &charset) const
-{
-  if (id.size() < 8)
-    return 0;
-  size_t i = 0;
-  // guess other schemes supported by download protocols
-  for (const char *s = "http://"; *s; s++, i++)
-    if (id[i] != charset.execToDesc(*s)
-	&& (!islower(*s) || id[i] != charset.execToDesc(toupper(*s))))
-      return 0;
-  return 1;
-}
-
-StorageObject *WinInetStorageManager::makeStorageObject(const StringC &specId,
-							const StringC &baseId,
-							Boolean,
-							Boolean mayRewind,
-						        Messenger &mgr,
-						        StringC &id)
-{
-  if (!initSession())
-    return 0;
-  id = specId;
-  resolveRelative(baseId, id, 0);
-  String<char> tem(toAscii(id));
-  HINTERNET fd = InternetOpenUrlA(session_, tem.data(), 0, 0, 0, 0); 
-  if (!fd) {
-    DWORD err = GetLastError();
-    mgr.message(WinInetStorageMessages::cannotOpen,
-                StringMessageArg(id),
-		Win32MessageArg(err));
-    return 0;
-  }
-  // FIXME report an error
-  return new WinInetStorageObject(fd, mayRewind, id);
-}
-
-Boolean WinInetStorageManager::resolveRelative(const StringC &baseId,
-					       StringC &id,
-					       Boolean) const
-{
-  DWORD bufSize = baseId.size() + id.size() + 1;
-  char *buf = new char[bufSize];
-  String<char> baseIdA (toAscii(baseId));
-  String<char> idA(toAscii(id));
-  if (InternetCombineUrlA(baseIdA.data(),
-			  idA.data(),
-			  buf,
-			  &bufSize,
-			  0)) {
-    id.resize(0);
-    for (size_t i = 0; i < bufSize; i++)
-      id += buf[i];
-    delete [] buf;
-    return 1;
-  }
-  delete [] buf;
-  return 0;
-}
-
-Boolean WinInetStorageManager::transformNeutral(StringC &str, Boolean fold,
-						Messenger &) const
-{
-  if (fold)
-    for (size_t i = 0; i < str.size(); i++) {
-      Char c = str[i];
-      if (c <= (unsigned char)-1)
-	str[i] = tolower(str[i]);
-    }
-  return 1;
-}
-
-
-WinInetStorageObject::WinInetStorageObject(HINTERNET fd,
-					   Boolean mayRewind,
-					   const StringC &url)
-: RewindStorageObject(mayRewind, 0), fd_(fd), url_(url), eof_(0)
-{
-}
-
-WinInetStorageObject::~WinInetStorageObject()
-{
-  if (fd_ != 0) {
-    (void)InternetCloseHandle(fd_);
-    fd_ = 0;
-  }
-}
-
-Boolean WinInetStorageObject::read(char *buf, size_t bufSize, Messenger &mgr,
-				   size_t &nread)
-{
-  if (readSaved(buf, bufSize, nread))
-    return 1;
-  if (fd_ == 0 || eof_)
-    return 0;
-  DWORD n;
-  if (!InternetReadFile(fd_, buf, bufSize, &n)) {
-    DWORD err = GetLastError();
-    mgr.message(WinInetStorageMessages::readFailed,
-                StringMessageArg(url_),
-		Win32MessageArg(err));
-    return 0;
-  }
-  if (n) {
-    nread = n;
-    return 1;
-  }
-  eof_ = 1;
-  InternetCloseHandle(fd_);
-  fd_ = 0;
-  return 0;
-}
-
-Boolean WinInetStorageObject::seekToStart(Messenger &)
-{
-  CANNOT_HAPPEN();
-  return 0;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* SP_WININET */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/WinInetStorageMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-// This file was automatically generated from lib\WinInetStorageMessages.msg by msggen.pl.
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct WinInetStorageMessages {
-  // 2500
-  static const MessageType2 cannotOpen;
-  // 2501
-  static const MessageType2 readFailed;
-};
-const MessageType2 WinInetStorageMessages::cannotOpen(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2500
-#ifndef SP_NO_MESSAGE_TEXT
-,"cannot open URL %1 (%2)"
-#endif
-);
-const MessageType2 WinInetStorageMessages::readFailed(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-2501
-#ifndef SP_NO_MESSAGE_TEXT
-,"error reading URL %1 (%2)"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/XMLCodingSystem.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,406 +0,0 @@
-// Copyright (c) 1994, 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "splib.h"
-
-#ifdef SP_MULTI_BYTE
-
-#include "XMLCodingSystem.h"
-#include "UTF8CodingSystem.h"
-#include "CodingSystemKit.h"
-#include "Boolean.h"
-#include "Owner.h"
-#include "macros.h"
-#include <stddef.h>
-#include <string.h>
-
-#ifdef SP_DECLARE_MEMMOVE
-extern "C" {
-  void *memmove(void *, const void *, size_t);
-}
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const Char ISO646_TAB = 0x9;
-const Char ISO646_LF = 0xA;
-const Char ISO646_CR = 0xD;
-const Char ISO646_SPACE = 0x20;
-const Char ISO646_QUOT = 0x22;
-const Char ISO646_APOS = 0x27;
-const Char ISO646_LT = 0x3C;
-const Char ISO646_EQUAL = 0x3D;
-const Char ISO646_GT = 0x3E;
-const Char ISO646_QUEST = 0x3F;
-const Char ISO646_LETTER_a = 0x61;
-const Char ISO646_LETTER_c = 0x63;
-const Char ISO646_LETTER_d = 0x64;
-const Char ISO646_LETTER_e = 0x65;
-const Char ISO646_LETTER_g = 0x67;
-const Char ISO646_LETTER_i = 0x69;
-const Char ISO646_LETTER_l = 0x6C;
-const Char ISO646_LETTER_m = 0x6D;
-const Char ISO646_LETTER_n = 0x6E;
-const Char ISO646_LETTER_o = 0x6F;
-const Char ISO646_LETTER_x = 0x78;
-
-class XMLDecoder : public Decoder {
-public:
-  XMLDecoder(const InputCodingSystemKit *);
-  size_t decode(Char *to, const char *from, size_t fromLen,
-		const char **rest);
-  Boolean convertOffset(unsigned long &offset) const;
-private:
-
-  class UCS2 : public Decoder {
-  public:
-    UCS2(Boolean swapBytes);
-    size_t decode(Char *to, const char *from, size_t fromLen,
-		  const char **rest);
-    Boolean convertOffset(unsigned long &offset) const;
-  private:
-    Boolean swapBytes_;
-  };
-  // Don't keep parsing a PI longer than this.
-  // We want to avoid reading some enormous file into memory just because
-  // some quote was left off.
-  enum { piMaxSize = 1024*32 };
-
-  void initDecoderDefault();
-  void initDecoderPI();
-  Boolean extractEncoding(StringC &name);
-  static Boolean isWS(Char);
-
-  enum DetectPhase {
-    phaseInit,
-    phasePI,
-    phaseFinish
-  };
-  DetectPhase phase_;
-  Boolean byteOrderMark_;
-  Boolean lsbFirst_;
-  int guessBytesPerChar_;
-  Owner<Decoder> subDecoder_;
-  // Contains all the characters passed to caller that were
-  // not produced by subDecoder_.
-  StringC pi_;
-  Char piLiteral_;
-  const InputCodingSystemKit *kit_;
-};
-
-XMLCodingSystem::XMLCodingSystem(const InputCodingSystemKit *kit)
-: kit_(kit)
-{
-}
-
-Decoder *XMLCodingSystem::makeDecoder() const
-{
-  return new XMLDecoder(kit_);
-}
-
-Encoder *XMLCodingSystem::makeEncoder() const
-{
-  UTF8CodingSystem utf8;
-  return utf8.makeEncoder();
-}
-
-XMLDecoder::XMLDecoder(const InputCodingSystemKit *kit)
-: Decoder(1),
-  kit_(kit),
-  phase_(phaseInit),
-  byteOrderMark_(0),
-  lsbFirst_(0),
-  guessBytesPerChar_(1),
-  piLiteral_(0)
-{
-}
-
-size_t XMLDecoder::decode(Char *to, const char *from, size_t fromLen,
-			  const char **rest)
-{
-  if (phase_ == phaseFinish)
-    return subDecoder_->decode(to, from, fromLen, rest);
-  if (phase_ == phaseInit) {
-    if (fromLen == 0) {
-      *rest = from;
-      return 0;
-    }
-    switch ((unsigned char)*from) {
-    case 0x00:
-    case 0x3C:
-    case 0xFF:
-    case 0xFE:
-      if (fromLen < 2) {
-	*rest = from;
-	return 0;
-      }
-      switch (((unsigned char)from[0] << 8) | (unsigned char)from[1]) {
-      case 0xFEFF:
-	phase_ = phasePI;
-	byteOrderMark_ = 1;
-	guessBytesPerChar_ = 2;
-	from += 2;
-	fromLen -= 2;
-	break;
-      case 0xFFFE:
-	lsbFirst_ = 1;
-	phase_ = phasePI;
-	byteOrderMark_ = 1;
-	guessBytesPerChar_ = 2;
-	from += 2;
-	fromLen -= 2;
-	break;
-      case 0x3C3F:
-	phase_ = phasePI;
-	break;
-      case 0x3C00:
-	lsbFirst_ = 1;
-	phase_ = phasePI;
-	guessBytesPerChar_ = 2;
-	break;
-      case 0x003C:
-	phase_ = phasePI;
-	guessBytesPerChar_ = 2;
-	break;
-      default:
-	break;
-      }
-      if (phase_ == phasePI)
-	break;
-      // fall through
-    default:
-      phase_ = phaseFinish;
-      guessBytesPerChar_ = 1;
-      initDecoderDefault();
-      return subDecoder_->decode(to, from, fromLen, rest);
-    }
-  }
-  ASSERT(phase_ == phasePI);
-  Char *p = to;
-  for (; fromLen > guessBytesPerChar_;
-       fromLen -= guessBytesPerChar_, from += guessBytesPerChar_) {
-    if (!piLiteral_ && pi_.size() > 0 && pi_[pi_.size() - 1] == ISO646_GT) {
-      initDecoderPI();
-      phase_ = phaseFinish;
-      return (p - to) + subDecoder_->decode(p, from, fromLen, rest);
-    }
-    Char c = (unsigned char)from[0];
-    if (guessBytesPerChar_ > 1) {
-      if (lsbFirst_)
-	c |= (unsigned char)from[1] << 8;
-      else {
-	c <<= 8;
-	c |= (unsigned char)from[1];
-      }
-    }
-    static const Char startBytes[] = {
-      ISO646_LT, ISO646_QUEST, ISO646_LETTER_x, ISO646_LETTER_m, ISO646_LETTER_l
-    };
-    // Stop accumulating the PI if we get characters that are illegal in the PI.
-    if (c == 0
-        || c >= 0x7F
-	|| (pi_.size() > 0 && c == ISO646_LT)
-	|| pi_.size() > piMaxSize
-	|| (pi_.size() < 5 && c != startBytes[pi_.size()])
-	|| (pi_.size() == 5 && !isWS(c))) {
-      initDecoderDefault();
-      phase_ = phaseFinish;
-      break;
-    }
-    *p++ = c;
-    pi_ += c;
-    if (piLiteral_) {
-      if (c == piLiteral_)
-	piLiteral_ = 0;
-    }
-    else if (c == ISO646_QUOT || c == ISO646_APOS)
-      piLiteral_ = c;
-  }
-  size_t n = p - to;
-  if (phase_ == phaseFinish && fromLen > 0)
-    n += subDecoder_->decode(p, from, fromLen, rest);
-  return n;
-}
-
-Boolean XMLDecoder::convertOffset(unsigned long &n) const
-{
-  if (n <= pi_.size())
-    n *= guessBytesPerChar_;
-  else {
-    if (!subDecoder_)
-      return 0;
-    unsigned long tem = n - pi_.size();
-    if (!subDecoder_->convertOffset(tem))
-      return 0;
-    n = tem + pi_.size() * guessBytesPerChar_;
-  }
-  if (byteOrderMark_)
-    n += 2;
-  return 1;
-}
-
-void XMLDecoder::initDecoderDefault()
-{
-  if (guessBytesPerChar_ == 1) {
-    UTF8CodingSystem utf8;
-    subDecoder_ = utf8.makeDecoder();
-  }
-  else {
-    unsigned short n = 0x1;
-    minBytesPerChar_ = 2;
-    subDecoder_ = new UCS2((*(char *)&n == 0x1) != lsbFirst_);
-  }
-}
-
-void XMLDecoder::initDecoderPI()
-{
-  StringC name;
-  if (!extractEncoding(name))
-    initDecoderDefault();
-  const char *dummy;
-  static const UnivCharsetDesc::Range range = { 0, 128, 0 };
-  CharsetInfo piCharset(UnivCharsetDesc(&range, 1));
-  const InputCodingSystem *ics
-    = kit_->makeInputCodingSystem(name,
-				  piCharset,
-				  0,
-				  dummy);
-  if (ics) {
-    subDecoder_ = ics->makeDecoder();
-    minBytesPerChar_ = subDecoder_->minBytesPerChar();
-  }
-  if (!subDecoder_)
-    initDecoderDefault();
-}
-
-Boolean XMLDecoder::isWS(Char c)
-{
-  switch (c) {
-  case ISO646_CR:
-  case ISO646_LF:
-  case ISO646_SPACE:
-  case ISO646_TAB:
-    return 1;
-  }
-  return 0;
-}
-
-Boolean XMLDecoder::extractEncoding(StringC &name)
-{
-  Char lit = 0;
-  for (size_t i = 5; i < pi_.size(); i++) {
-    if (!lit) {
-      if (pi_[i] == ISO646_APOS || pi_[i] == ISO646_QUOT)
-	lit = pi_[i];
-      else if (pi_[i] == ISO646_EQUAL) {
-	size_t j = i;
-	for (; j > 0; j--) {
-	  if (!isWS(pi_[j - 1]))
-	    break;
-	}
-	size_t nameEnd = j;
-	for (; j > 0; j--) {
-	  if (isWS(pi_[j - 1]) || pi_[j - 1] == ISO646_QUOT || pi_[j - 1] == ISO646_APOS)
-	    break;
-	}
-	static const Char encodingName[] = {
-	  ISO646_LETTER_e, ISO646_LETTER_n, ISO646_LETTER_c, ISO646_LETTER_o,
-	  ISO646_LETTER_d, ISO646_LETTER_i, ISO646_LETTER_n, ISO646_LETTER_g,
-	  0
-	};
-	const Char *s = encodingName;
-	for (; *s && j < nameEnd; j++, s++)
-	  if (pi_[j] != *s)
-	    break;
-	if (j == nameEnd && *s == 0) {
-	  size_t j = i + 1;
-	  for (; j < pi_.size(); j++) {
-	    if (!isWS(pi_[j]))
-	      break;
-	  }
-	  if (pi_[j] == ISO646_QUOT || pi_[j] == ISO646_APOS) {
-	    Char lit = pi_[j];
-	    size_t nameStart = j + 1;
-	    for (++j; j < pi_.size(); j++) {
-	      if (pi_[j] == lit) {
-		if (j > nameStart) {
-		  name.assign(&pi_[nameStart], j - nameStart);
-		  return 1;
-		}
-		break;
-	      }
-	    }
-	  }
-	  return 0;
-	}
-      }
-    }
-    else if (pi_[i] == lit)
-      lit = 0;
-  }
-  return 0;
-}
-
-XMLDecoder::UCS2::UCS2(Boolean swapBytes)
-: swapBytes_(swapBytes)
-{
-}
-
-size_t XMLDecoder::UCS2::decode(Char *to, const char *from, size_t fromLen,
-				const char **rest)
-{
-  union U {
-    unsigned short word;
-    char bytes[2];
-  };
-  fromLen &= ~1;
-  *rest = from + fromLen;
-  if (sizeof(Char) == 2) {
-    if (!swapBytes_) {
-      if (from != (char *)to)
-	memmove(to, from, fromLen);
-      return fromLen/2;
-    }
-  }
-  if (swapBytes_) {
-    for (size_t n = fromLen; n > 0; n -= 2) {
-      U u;
-      u.bytes[1] = *from++;
-      u.bytes[0] = *from++;
-      *to++ = u.word;
-    }
-  }
-  else  {
-    for (size_t n = fromLen; n > 0; n -= 2) {
-      U u;
-      u.bytes[0] = *from++;
-      u.bytes[1] = *from++;
-      *to++ = u.word;
-    }
-  }
-  return fromLen/2;
-}
-
-Boolean XMLDecoder::UCS2::convertOffset(unsigned long &n) const
-{
-  n *= 2;
-  return 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#else /* not SP_MULTI_BYTE */
-
-#ifndef __GNUG__
-static char non_empty_translation_unit;	// sigh
-#endif
-
-#endif /* not SP_MULTI_BYTE */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/app_inst.m4	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-
-#include "splib.h"
-
-#ifdef SP_MANUAL_INST
-
-#define SP_DEFINE_TEMPLATES
-#include "Vector.h"
-#include "Owner.h"
-#include "Options.h"
-#undef SP_DEFINE_TEMPLATES
-
-#include <stddef.h>
-#include "CodingSystem.h"
-#include "CmdLineApp.h"
-#include "Event.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-__instantiate(Vector<const CmdLineApp::AppChar *>)
-__instantiate(Owner<Encoder>)
-__instantiate(Options<CmdLineApp::AppChar>)
-__instantiate(Owner<EventHandler>)
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* SP_MANUAL_INST */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/arc_inst.m4	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-
-#include "splib.h"
-
-#ifdef SP_MANUAL_INST
-
-#define SP_DEFINE_TEMPLATES
-#include "Vector.h"
-#include "NCVector.h"
-#include "Owner.h"
-#undef SP_DEFINE_TEMPLATES
-
-#include "ArcProcessor.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-__instantiate(NCVector<ArcProcessor>)
-__instantiate(Owner<ArcProcessor::MetaMapCache>)
-__instantiate(NCVector<Owner<ArcProcessor::MetaMapCache> >)
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* SP_MANUAL_INST */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/assert.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include <stdlib.h>
-#include "macros.h"
-
-#ifdef __GNUG__
-void exit(int) __attribute__((noreturn));
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-void assertionFailed(const char *, const char *, int)
-{
-  abort();
-  exit(1);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/big5.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1895 +0,0 @@
-/* Mapping from Big 5 to Unicode. */
-/* This is the same as MS code page 950, with 0xA2CC, 0xA2CE,
-0xF9DD-0xF9FE removed (because they are duplicates). */
-63, 0xa140,
-0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2027, 0xff1b, 0xff1a,
-0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52,
-0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31,
-0x2014, 0xfe33, 0x2574, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35,
-0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39,
-0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d,
-0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41,
-0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a,
-94, 0xa1a1,
-0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d,
-0x301d, 0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b,
-0x00a7, 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606,
-0x2605, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3,
-0x2105, 0x00af, 0xffe3, 0xff3f, 0x02cd, 0xfe49, 0xfe4a, 0xfe4d,
-0xfe4e, 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d,
-0x00d7, 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266,
-0x2267, 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64,
-0xfe65, 0xfe66, 0xff5e, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f,
-0x22bf, 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640,
-0x2642, 0x2295, 0x2299, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196,
-0x2197, 0x2199, 0x2198, 0x2225, 0x2223, 0xff0f,
-63, 0xa240,
-0xff3c, 0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1,
-0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5,
-0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4,
-0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7,
-0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586,
-0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a,
-0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500,
-0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d,
-43, 0xa2a1,
-0x256e, 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2,
-0x25e3, 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11,
-0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19,
-0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
-0x2168, 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026,
-0x3027, 0x3028, 0x3029,
-1, 0xa2cd,
-0x5344,
-48, 0xa2cf,
-0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
-0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
-0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
-0xff39, 0xff3a, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46,
-0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e,
-0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56,
-63, 0xa340,
-0xff57, 0xff58, 0xff59, 0xff5a, 0x0391, 0x0392, 0x0393, 0x0394,
-0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c,
-0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5,
-0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x03b4,
-0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc,
-0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5,
-0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x3105, 0x3106, 0x3107, 0x3108,
-0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f,
-31, 0xa3a1,
-0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117,
-0x3118, 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f,
-0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127,
-0x3128, 0x3129, 0x02d9, 0x02c9, 0x02ca, 0x02c7, 0x02cb,
-63, 0xa440,
-0x4e00, 0x4e59, 0x4e01, 0x4e03, 0x4e43, 0x4e5d, 0x4e86, 0x4e8c,
-0x4eba, 0x513f, 0x5165, 0x516b, 0x51e0, 0x5200, 0x5201, 0x529b,
-0x5315, 0x5341, 0x535c, 0x53c8, 0x4e09, 0x4e0b, 0x4e08, 0x4e0a,
-0x4e2b, 0x4e38, 0x51e1, 0x4e45, 0x4e48, 0x4e5f, 0x4e5e, 0x4e8e,
-0x4ea1, 0x5140, 0x5203, 0x52fa, 0x5343, 0x53c9, 0x53e3, 0x571f,
-0x58eb, 0x5915, 0x5927, 0x5973, 0x5b50, 0x5b51, 0x5b53, 0x5bf8,
-0x5c0f, 0x5c22, 0x5c38, 0x5c71, 0x5ddd, 0x5de5, 0x5df1, 0x5df2,
-0x5df3, 0x5dfe, 0x5e72, 0x5efe, 0x5f0b, 0x5f13, 0x624d,
-94, 0xa4a1,
-0x4e11, 0x4e10, 0x4e0d, 0x4e2d, 0x4e30, 0x4e39, 0x4e4b, 0x5c39,
-0x4e88, 0x4e91, 0x4e95, 0x4e92, 0x4e94, 0x4ea2, 0x4ec1, 0x4ec0,
-0x4ec3, 0x4ec6, 0x4ec7, 0x4ecd, 0x4eca, 0x4ecb, 0x4ec4, 0x5143,
-0x5141, 0x5167, 0x516d, 0x516e, 0x516c, 0x5197, 0x51f6, 0x5206,
-0x5207, 0x5208, 0x52fb, 0x52fe, 0x52ff, 0x5316, 0x5339, 0x5348,
-0x5347, 0x5345, 0x535e, 0x5384, 0x53cb, 0x53ca, 0x53cd, 0x58ec,
-0x5929, 0x592b, 0x592a, 0x592d, 0x5b54, 0x5c11, 0x5c24, 0x5c3a,
-0x5c6f, 0x5df4, 0x5e7b, 0x5eff, 0x5f14, 0x5f15, 0x5fc3, 0x6208,
-0x6236, 0x624b, 0x624e, 0x652f, 0x6587, 0x6597, 0x65a4, 0x65b9,
-0x65e5, 0x66f0, 0x6708, 0x6728, 0x6b20, 0x6b62, 0x6b79, 0x6bcb,
-0x6bd4, 0x6bdb, 0x6c0f, 0x6c34, 0x706b, 0x722a, 0x7236, 0x723b,
-0x7247, 0x7259, 0x725b, 0x72ac, 0x738b, 0x4e19,
-63, 0xa540,
-0x4e16, 0x4e15, 0x4e14, 0x4e18, 0x4e3b, 0x4e4d, 0x4e4f, 0x4e4e,
-0x4ee5, 0x4ed8, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, 0x4ee3, 0x4ee4,
-0x4ed9, 0x4ede, 0x5145, 0x5144, 0x5189, 0x518a, 0x51ac, 0x51f9,
-0x51fa, 0x51f8, 0x520a, 0x52a0, 0x529f, 0x5305, 0x5306, 0x5317,
-0x531d, 0x4edf, 0x534a, 0x5349, 0x5361, 0x5360, 0x536f, 0x536e,
-0x53bb, 0x53ef, 0x53e4, 0x53f3, 0x53ec, 0x53ee, 0x53e9, 0x53e8,
-0x53fc, 0x53f8, 0x53f5, 0x53eb, 0x53e6, 0x53ea, 0x53f2, 0x53f1,
-0x53f0, 0x53e5, 0x53ed, 0x53fb, 0x56db, 0x56da, 0x5916,
-94, 0xa5a1,
-0x592e, 0x5931, 0x5974, 0x5976, 0x5b55, 0x5b83, 0x5c3c, 0x5de8,
-0x5de7, 0x5de6, 0x5e02, 0x5e03, 0x5e73, 0x5e7c, 0x5f01, 0x5f18,
-0x5f17, 0x5fc5, 0x620a, 0x6253, 0x6254, 0x6252, 0x6251, 0x65a5,
-0x65e6, 0x672e, 0x672c, 0x672a, 0x672b, 0x672d, 0x6b63, 0x6bcd,
-0x6c11, 0x6c10, 0x6c38, 0x6c41, 0x6c40, 0x6c3e, 0x72af, 0x7384,
-0x7389, 0x74dc, 0x74e6, 0x7518, 0x751f, 0x7528, 0x7529, 0x7530,
-0x7531, 0x7532, 0x7533, 0x758b, 0x767d, 0x76ae, 0x76bf, 0x76ee,
-0x77db, 0x77e2, 0x77f3, 0x793a, 0x79be, 0x7a74, 0x7acb, 0x4e1e,
-0x4e1f, 0x4e52, 0x4e53, 0x4e69, 0x4e99, 0x4ea4, 0x4ea6, 0x4ea5,
-0x4eff, 0x4f09, 0x4f19, 0x4f0a, 0x4f15, 0x4f0d, 0x4f10, 0x4f11,
-0x4f0f, 0x4ef2, 0x4ef6, 0x4efb, 0x4ef0, 0x4ef3, 0x4efd, 0x4f01,
-0x4f0b, 0x5149, 0x5147, 0x5146, 0x5148, 0x5168,
-63, 0xa640,
-0x5171, 0x518d, 0x51b0, 0x5217, 0x5211, 0x5212, 0x520e, 0x5216,
-0x52a3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540f,
-0x540c, 0x540a, 0x5410, 0x5401, 0x540b, 0x5404, 0x5411, 0x540d,
-0x5408, 0x5403, 0x540e, 0x5406, 0x5412, 0x56e0, 0x56de, 0x56dd,
-0x5733, 0x5730, 0x5728, 0x572d, 0x572c, 0x572f, 0x5729, 0x5919,
-0x591a, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597d, 0x5979,
-0x5982, 0x5981, 0x5b57, 0x5b58, 0x5b87, 0x5b88, 0x5b85, 0x5b89,
-0x5bfa, 0x5c16, 0x5c79, 0x5dde, 0x5e06, 0x5e76, 0x5e74,
-94, 0xa6a1,
-0x5f0f, 0x5f1b, 0x5fd9, 0x5fd6, 0x620e, 0x620c, 0x620d, 0x6210,
-0x6263, 0x625b, 0x6258, 0x6536, 0x65e9, 0x65e8, 0x65ec, 0x65ed,
-0x66f2, 0x66f3, 0x6709, 0x673d, 0x6734, 0x6731, 0x6735, 0x6b21,
-0x6b64, 0x6b7b, 0x6c16, 0x6c5d, 0x6c57, 0x6c59, 0x6c5f, 0x6c60,
-0x6c50, 0x6c55, 0x6c61, 0x6c5b, 0x6c4d, 0x6c4e, 0x7070, 0x725f,
-0x725d, 0x767e, 0x7af9, 0x7c73, 0x7cf8, 0x7f36, 0x7f8a, 0x7fbd,
-0x8001, 0x8003, 0x800c, 0x8012, 0x8033, 0x807f, 0x8089, 0x808b,
-0x808c, 0x81e3, 0x81ea, 0x81f3, 0x81fc, 0x820c, 0x821b, 0x821f,
-0x826e, 0x8272, 0x827e, 0x866b, 0x8840, 0x884c, 0x8863, 0x897f,
-0x9621, 0x4e32, 0x4ea8, 0x4f4d, 0x4f4f, 0x4f47, 0x4f57, 0x4f5e,
-0x4f34, 0x4f5b, 0x4f55, 0x4f30, 0x4f50, 0x4f51, 0x4f3d, 0x4f3a,
-0x4f38, 0x4f43, 0x4f54, 0x4f3c, 0x4f46, 0x4f63,
-63, 0xa740,
-0x4f5c, 0x4f60, 0x4f2f, 0x4f4e, 0x4f36, 0x4f59, 0x4f5d, 0x4f48,
-0x4f5a, 0x514c, 0x514b, 0x514d, 0x5175, 0x51b6, 0x51b7, 0x5225,
-0x5224, 0x5229, 0x522a, 0x5228, 0x52ab, 0x52a9, 0x52aa, 0x52ac,
-0x5323, 0x5373, 0x5375, 0x541d, 0x542d, 0x541e, 0x543e, 0x5426,
-0x544e, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442, 0x541b,
-0x5429, 0x544a, 0x5439, 0x543b, 0x5438, 0x542e, 0x5435, 0x5436,
-0x5420, 0x543c, 0x5440, 0x5431, 0x542b, 0x541f, 0x542c, 0x56ea,
-0x56f0, 0x56e4, 0x56eb, 0x574a, 0x5751, 0x5740, 0x574d,
-94, 0xa7a1,
-0x5747, 0x574e, 0x573e, 0x5750, 0x574f, 0x573b, 0x58ef, 0x593e,
-0x599d, 0x5992, 0x59a8, 0x599e, 0x59a3, 0x5999, 0x5996, 0x598d,
-0x59a4, 0x5993, 0x598a, 0x59a5, 0x5b5d, 0x5b5c, 0x5b5a, 0x5b5b,
-0x5b8c, 0x5b8b, 0x5b8f, 0x5c2c, 0x5c40, 0x5c41, 0x5c3f, 0x5c3e,
-0x5c90, 0x5c91, 0x5c94, 0x5c8c, 0x5deb, 0x5e0c, 0x5e8f, 0x5e87,
-0x5e8a, 0x5ef7, 0x5f04, 0x5f1f, 0x5f64, 0x5f62, 0x5f77, 0x5f79,
-0x5fd8, 0x5fcc, 0x5fd7, 0x5fcd, 0x5ff1, 0x5feb, 0x5ff8, 0x5fea,
-0x6212, 0x6211, 0x6284, 0x6297, 0x6296, 0x6280, 0x6276, 0x6289,
-0x626d, 0x628a, 0x627c, 0x627e, 0x6279, 0x6273, 0x6292, 0x626f,
-0x6298, 0x626e, 0x6295, 0x6293, 0x6291, 0x6286, 0x6539, 0x653b,
-0x6538, 0x65f1, 0x66f4, 0x675f, 0x674e, 0x674f, 0x6750, 0x6751,
-0x675c, 0x6756, 0x675e, 0x6749, 0x6746, 0x6760,
-63, 0xa840,
-0x6753, 0x6757, 0x6b65, 0x6bcf, 0x6c42, 0x6c5e, 0x6c99, 0x6c81,
-0x6c88, 0x6c89, 0x6c85, 0x6c9b, 0x6c6a, 0x6c7a, 0x6c90, 0x6c70,
-0x6c8c, 0x6c68, 0x6c96, 0x6c92, 0x6c7d, 0x6c83, 0x6c72, 0x6c7e,
-0x6c74, 0x6c86, 0x6c76, 0x6c8d, 0x6c94, 0x6c98, 0x6c82, 0x7076,
-0x707c, 0x707d, 0x7078, 0x7262, 0x7261, 0x7260, 0x72c4, 0x72c2,
-0x7396, 0x752c, 0x752b, 0x7537, 0x7538, 0x7682, 0x76ef, 0x77e3,
-0x79c1, 0x79c0, 0x79bf, 0x7a76, 0x7cfb, 0x7f55, 0x8096, 0x8093,
-0x809d, 0x8098, 0x809b, 0x809a, 0x80b2, 0x826f, 0x8292,
-94, 0xa8a1,
-0x828b, 0x828d, 0x898b, 0x89d2, 0x8a00, 0x8c37, 0x8c46, 0x8c55,
-0x8c9d, 0x8d64, 0x8d70, 0x8db3, 0x8eab, 0x8eca, 0x8f9b, 0x8fb0,
-0x8fc2, 0x8fc6, 0x8fc5, 0x8fc4, 0x5de1, 0x9091, 0x90a2, 0x90aa,
-0x90a6, 0x90a3, 0x9149, 0x91c6, 0x91cc, 0x9632, 0x962e, 0x9631,
-0x962a, 0x962c, 0x4e26, 0x4e56, 0x4e73, 0x4e8b, 0x4e9b, 0x4e9e,
-0x4eab, 0x4eac, 0x4f6f, 0x4f9d, 0x4f8d, 0x4f73, 0x4f7f, 0x4f6c,
-0x4f9b, 0x4f8b, 0x4f86, 0x4f83, 0x4f70, 0x4f75, 0x4f88, 0x4f69,
-0x4f7b, 0x4f96, 0x4f7e, 0x4f8f, 0x4f91, 0x4f7a, 0x5154, 0x5152,
-0x5155, 0x5169, 0x5177, 0x5176, 0x5178, 0x51bd, 0x51fd, 0x523b,
-0x5238, 0x5237, 0x523a, 0x5230, 0x522e, 0x5236, 0x5241, 0x52be,
-0x52bb, 0x5352, 0x5354, 0x5353, 0x5351, 0x5366, 0x5377, 0x5378,
-0x5379, 0x53d6, 0x53d4, 0x53d7, 0x5473, 0x5475,
-63, 0xa940,
-0x5496, 0x5478, 0x5495, 0x5480, 0x547b, 0x5477, 0x5484, 0x5492,
-0x5486, 0x547c, 0x5490, 0x5471, 0x5476, 0x548c, 0x549a, 0x5462,
-0x5468, 0x548b, 0x547d, 0x548e, 0x56fa, 0x5783, 0x5777, 0x576a,
-0x5769, 0x5761, 0x5766, 0x5764, 0x577c, 0x591c, 0x5949, 0x5947,
-0x5948, 0x5944, 0x5954, 0x59be, 0x59bb, 0x59d4, 0x59b9, 0x59ae,
-0x59d1, 0x59c6, 0x59d0, 0x59cd, 0x59cb, 0x59d3, 0x59ca, 0x59af,
-0x59b3, 0x59d2, 0x59c5, 0x5b5f, 0x5b64, 0x5b63, 0x5b97, 0x5b9a,
-0x5b98, 0x5b9c, 0x5b99, 0x5b9b, 0x5c1a, 0x5c48, 0x5c45,
-94, 0xa9a1,
-0x5c46, 0x5cb7, 0x5ca1, 0x5cb8, 0x5ca9, 0x5cab, 0x5cb1, 0x5cb3,
-0x5e18, 0x5e1a, 0x5e16, 0x5e15, 0x5e1b, 0x5e11, 0x5e78, 0x5e9a,
-0x5e97, 0x5e9c, 0x5e95, 0x5e96, 0x5ef6, 0x5f26, 0x5f27, 0x5f29,
-0x5f80, 0x5f81, 0x5f7f, 0x5f7c, 0x5fdd, 0x5fe0, 0x5ffd, 0x5ff5,
-0x5fff, 0x600f, 0x6014, 0x602f, 0x6035, 0x6016, 0x602a, 0x6015,
-0x6021, 0x6027, 0x6029, 0x602b, 0x601b, 0x6216, 0x6215, 0x623f,
-0x623e, 0x6240, 0x627f, 0x62c9, 0x62cc, 0x62c4, 0x62bf, 0x62c2,
-0x62b9, 0x62d2, 0x62db, 0x62ab, 0x62d3, 0x62d4, 0x62cb, 0x62c8,
-0x62a8, 0x62bd, 0x62bc, 0x62d0, 0x62d9, 0x62c7, 0x62cd, 0x62b5,
-0x62da, 0x62b1, 0x62d8, 0x62d6, 0x62d7, 0x62c6, 0x62ac, 0x62ce,
-0x653e, 0x65a7, 0x65bc, 0x65fa, 0x6614, 0x6613, 0x660c, 0x6606,
-0x6602, 0x660e, 0x6600, 0x660f, 0x6615, 0x660a,
-63, 0xaa40,
-0x6607, 0x670d, 0x670b, 0x676d, 0x678b, 0x6795, 0x6771, 0x679c,
-0x6773, 0x6777, 0x6787, 0x679d, 0x6797, 0x676f, 0x6770, 0x677f,
-0x6789, 0x677e, 0x6790, 0x6775, 0x679a, 0x6793, 0x677c, 0x676a,
-0x6772, 0x6b23, 0x6b66, 0x6b67, 0x6b7f, 0x6c13, 0x6c1b, 0x6ce3,
-0x6ce8, 0x6cf3, 0x6cb1, 0x6ccc, 0x6ce5, 0x6cb3, 0x6cbd, 0x6cbe,
-0x6cbc, 0x6ce2, 0x6cab, 0x6cd5, 0x6cd3, 0x6cb8, 0x6cc4, 0x6cb9,
-0x6cc1, 0x6cae, 0x6cd7, 0x6cc5, 0x6cf1, 0x6cbf, 0x6cbb, 0x6ce1,
-0x6cdb, 0x6cca, 0x6cac, 0x6cef, 0x6cdc, 0x6cd6, 0x6ce0,
-94, 0xaaa1,
-0x7095, 0x708e, 0x7092, 0x708a, 0x7099, 0x722c, 0x722d, 0x7238,
-0x7248, 0x7267, 0x7269, 0x72c0, 0x72ce, 0x72d9, 0x72d7, 0x72d0,
-0x73a9, 0x73a8, 0x739f, 0x73ab, 0x73a5, 0x753d, 0x759d, 0x7599,
-0x759a, 0x7684, 0x76c2, 0x76f2, 0x76f4, 0x77e5, 0x77fd, 0x793e,
-0x7940, 0x7941, 0x79c9, 0x79c8, 0x7a7a, 0x7a79, 0x7afa, 0x7cfe,
-0x7f54, 0x7f8c, 0x7f8b, 0x8005, 0x80ba, 0x80a5, 0x80a2, 0x80b1,
-0x80a1, 0x80ab, 0x80a9, 0x80b4, 0x80aa, 0x80af, 0x81e5, 0x81fe,
-0x820d, 0x82b3, 0x829d, 0x8299, 0x82ad, 0x82bd, 0x829f, 0x82b9,
-0x82b1, 0x82ac, 0x82a5, 0x82af, 0x82b8, 0x82a3, 0x82b0, 0x82be,
-0x82b7, 0x864e, 0x8671, 0x521d, 0x8868, 0x8ecb, 0x8fce, 0x8fd4,
-0x8fd1, 0x90b5, 0x90b8, 0x90b1, 0x90b6, 0x91c7, 0x91d1, 0x9577,
-0x9580, 0x961c, 0x9640, 0x963f, 0x963b, 0x9644,
-63, 0xab40,
-0x9642, 0x96b9, 0x96e8, 0x9752, 0x975e, 0x4e9f, 0x4ead, 0x4eae,
-0x4fe1, 0x4fb5, 0x4faf, 0x4fbf, 0x4fe0, 0x4fd1, 0x4fcf, 0x4fdd,
-0x4fc3, 0x4fb6, 0x4fd8, 0x4fdf, 0x4fca, 0x4fd7, 0x4fae, 0x4fd0,
-0x4fc4, 0x4fc2, 0x4fda, 0x4fce, 0x4fde, 0x4fb7, 0x5157, 0x5192,
-0x5191, 0x51a0, 0x524e, 0x5243, 0x524a, 0x524d, 0x524c, 0x524b,
-0x5247, 0x52c7, 0x52c9, 0x52c3, 0x52c1, 0x530d, 0x5357, 0x537b,
-0x539a, 0x53db, 0x54ac, 0x54c0, 0x54a8, 0x54ce, 0x54c9, 0x54b8,
-0x54a6, 0x54b3, 0x54c7, 0x54c2, 0x54bd, 0x54aa, 0x54c1,
-94, 0xaba1,
-0x54c4, 0x54c8, 0x54af, 0x54ab, 0x54b1, 0x54bb, 0x54a9, 0x54a7,
-0x54bf, 0x56ff, 0x5782, 0x578b, 0x57a0, 0x57a3, 0x57a2, 0x57ce,
-0x57ae, 0x5793, 0x5955, 0x5951, 0x594f, 0x594e, 0x5950, 0x59dc,
-0x59d8, 0x59ff, 0x59e3, 0x59e8, 0x5a03, 0x59e5, 0x59ea, 0x59da,
-0x59e6, 0x5a01, 0x59fb, 0x5b69, 0x5ba3, 0x5ba6, 0x5ba4, 0x5ba2,
-0x5ba5, 0x5c01, 0x5c4e, 0x5c4f, 0x5c4d, 0x5c4b, 0x5cd9, 0x5cd2,
-0x5df7, 0x5e1d, 0x5e25, 0x5e1f, 0x5e7d, 0x5ea0, 0x5ea6, 0x5efa,
-0x5f08, 0x5f2d, 0x5f65, 0x5f88, 0x5f85, 0x5f8a, 0x5f8b, 0x5f87,
-0x5f8c, 0x5f89, 0x6012, 0x601d, 0x6020, 0x6025, 0x600e, 0x6028,
-0x604d, 0x6070, 0x6068, 0x6062, 0x6046, 0x6043, 0x606c, 0x606b,
-0x606a, 0x6064, 0x6241, 0x62dc, 0x6316, 0x6309, 0x62fc, 0x62ed,
-0x6301, 0x62ee, 0x62fd, 0x6307, 0x62f1, 0x62f7,
-63, 0xac40,
-0x62ef, 0x62ec, 0x62fe, 0x62f4, 0x6311, 0x6302, 0x653f, 0x6545,
-0x65ab, 0x65bd, 0x65e2, 0x6625, 0x662d, 0x6620, 0x6627, 0x662f,
-0x661f, 0x6628, 0x6631, 0x6624, 0x66f7, 0x67ff, 0x67d3, 0x67f1,
-0x67d4, 0x67d0, 0x67ec, 0x67b6, 0x67af, 0x67f5, 0x67e9, 0x67ef,
-0x67c4, 0x67d1, 0x67b4, 0x67da, 0x67e5, 0x67b8, 0x67cf, 0x67de,
-0x67f3, 0x67b0, 0x67d9, 0x67e2, 0x67dd, 0x67d2, 0x6b6a, 0x6b83,
-0x6b86, 0x6bb5, 0x6bd2, 0x6bd7, 0x6c1f, 0x6cc9, 0x6d0b, 0x6d32,
-0x6d2a, 0x6d41, 0x6d25, 0x6d0c, 0x6d31, 0x6d1e, 0x6d17,
-94, 0xaca1,
-0x6d3b, 0x6d3d, 0x6d3e, 0x6d36, 0x6d1b, 0x6cf5, 0x6d39, 0x6d27,
-0x6d38, 0x6d29, 0x6d2e, 0x6d35, 0x6d0e, 0x6d2b, 0x70ab, 0x70ba,
-0x70b3, 0x70ac, 0x70af, 0x70ad, 0x70b8, 0x70ae, 0x70a4, 0x7230,
-0x7272, 0x726f, 0x7274, 0x72e9, 0x72e0, 0x72e1, 0x73b7, 0x73ca,
-0x73bb, 0x73b2, 0x73cd, 0x73c0, 0x73b3, 0x751a, 0x752d, 0x754f,
-0x754c, 0x754e, 0x754b, 0x75ab, 0x75a4, 0x75a5, 0x75a2, 0x75a3,
-0x7678, 0x7686, 0x7687, 0x7688, 0x76c8, 0x76c6, 0x76c3, 0x76c5,
-0x7701, 0x76f9, 0x76f8, 0x7709, 0x770b, 0x76fe, 0x76fc, 0x7707,
-0x77dc, 0x7802, 0x7814, 0x780c, 0x780d, 0x7946, 0x7949, 0x7948,
-0x7947, 0x79b9, 0x79ba, 0x79d1, 0x79d2, 0x79cb, 0x7a7f, 0x7a81,
-0x7aff, 0x7afd, 0x7c7d, 0x7d02, 0x7d05, 0x7d00, 0x7d09, 0x7d07,
-0x7d04, 0x7d06, 0x7f38, 0x7f8e, 0x7fbf, 0x8004,
-63, 0xad40,
-0x8010, 0x800d, 0x8011, 0x8036, 0x80d6, 0x80e5, 0x80da, 0x80c3,
-0x80c4, 0x80cc, 0x80e1, 0x80db, 0x80ce, 0x80de, 0x80e4, 0x80dd,
-0x81f4, 0x8222, 0x82e7, 0x8303, 0x8305, 0x82e3, 0x82db, 0x82e6,
-0x8304, 0x82e5, 0x8302, 0x8309, 0x82d2, 0x82d7, 0x82f1, 0x8301,
-0x82dc, 0x82d4, 0x82d1, 0x82de, 0x82d3, 0x82df, 0x82ef, 0x8306,
-0x8650, 0x8679, 0x867b, 0x867a, 0x884d, 0x886b, 0x8981, 0x89d4,
-0x8a08, 0x8a02, 0x8a03, 0x8c9e, 0x8ca0, 0x8d74, 0x8d73, 0x8db4,
-0x8ecd, 0x8ecc, 0x8ff0, 0x8fe6, 0x8fe2, 0x8fea, 0x8fe5,
-94, 0xada1,
-0x8fed, 0x8feb, 0x8fe4, 0x8fe8, 0x90ca, 0x90ce, 0x90c1, 0x90c3,
-0x914b, 0x914a, 0x91cd, 0x9582, 0x9650, 0x964b, 0x964c, 0x964d,
-0x9762, 0x9769, 0x97cb, 0x97ed, 0x97f3, 0x9801, 0x98a8, 0x98db,
-0x98df, 0x9996, 0x9999, 0x4e58, 0x4eb3, 0x500c, 0x500d, 0x5023,
-0x4fef, 0x5026, 0x5025, 0x4ff8, 0x5029, 0x5016, 0x5006, 0x503c,
-0x501f, 0x501a, 0x5012, 0x5011, 0x4ffa, 0x5000, 0x5014, 0x5028,
-0x4ff1, 0x5021, 0x500b, 0x5019, 0x5018, 0x4ff3, 0x4fee, 0x502d,
-0x502a, 0x4ffe, 0x502b, 0x5009, 0x517c, 0x51a4, 0x51a5, 0x51a2,
-0x51cd, 0x51cc, 0x51c6, 0x51cb, 0x5256, 0x525c, 0x5254, 0x525b,
-0x525d, 0x532a, 0x537f, 0x539f, 0x539d, 0x53df, 0x54e8, 0x5510,
-0x5501, 0x5537, 0x54fc, 0x54e5, 0x54f2, 0x5506, 0x54fa, 0x5514,
-0x54e9, 0x54ed, 0x54e1, 0x5509, 0x54ee, 0x54ea,
-63, 0xae40,
-0x54e6, 0x5527, 0x5507, 0x54fd, 0x550f, 0x5703, 0x5704, 0x57c2,
-0x57d4, 0x57cb, 0x57c3, 0x5809, 0x590f, 0x5957, 0x5958, 0x595a,
-0x5a11, 0x5a18, 0x5a1c, 0x5a1f, 0x5a1b, 0x5a13, 0x59ec, 0x5a20,
-0x5a23, 0x5a29, 0x5a25, 0x5a0c, 0x5a09, 0x5b6b, 0x5c58, 0x5bb0,
-0x5bb3, 0x5bb6, 0x5bb4, 0x5bae, 0x5bb5, 0x5bb9, 0x5bb8, 0x5c04,
-0x5c51, 0x5c55, 0x5c50, 0x5ced, 0x5cfd, 0x5cfb, 0x5cea, 0x5ce8,
-0x5cf0, 0x5cf6, 0x5d01, 0x5cf4, 0x5dee, 0x5e2d, 0x5e2b, 0x5eab,
-0x5ead, 0x5ea7, 0x5f31, 0x5f92, 0x5f91, 0x5f90, 0x6059,
-94, 0xaea1,
-0x6063, 0x6065, 0x6050, 0x6055, 0x606d, 0x6069, 0x606f, 0x6084,
-0x609f, 0x609a, 0x608d, 0x6094, 0x608c, 0x6085, 0x6096, 0x6247,
-0x62f3, 0x6308, 0x62ff, 0x634e, 0x633e, 0x632f, 0x6355, 0x6342,
-0x6346, 0x634f, 0x6349, 0x633a, 0x6350, 0x633d, 0x632a, 0x632b,
-0x6328, 0x634d, 0x634c, 0x6548, 0x6549, 0x6599, 0x65c1, 0x65c5,
-0x6642, 0x6649, 0x664f, 0x6643, 0x6652, 0x664c, 0x6645, 0x6641,
-0x66f8, 0x6714, 0x6715, 0x6717, 0x6821, 0x6838, 0x6848, 0x6846,
-0x6853, 0x6839, 0x6842, 0x6854, 0x6829, 0x68b3, 0x6817, 0x684c,
-0x6851, 0x683d, 0x67f4, 0x6850, 0x6840, 0x683c, 0x6843, 0x682a,
-0x6845, 0x6813, 0x6818, 0x6841, 0x6b8a, 0x6b89, 0x6bb7, 0x6c23,
-0x6c27, 0x6c28, 0x6c26, 0x6c24, 0x6cf0, 0x6d6a, 0x6d95, 0x6d88,
-0x6d87, 0x6d66, 0x6d78, 0x6d77, 0x6d59, 0x6d93,
-63, 0xaf40,
-0x6d6c, 0x6d89, 0x6d6e, 0x6d5a, 0x6d74, 0x6d69, 0x6d8c, 0x6d8a,
-0x6d79, 0x6d85, 0x6d65, 0x6d94, 0x70ca, 0x70d8, 0x70e4, 0x70d9,
-0x70c8, 0x70cf, 0x7239, 0x7279, 0x72fc, 0x72f9, 0x72fd, 0x72f8,
-0x72f7, 0x7386, 0x73ed, 0x7409, 0x73ee, 0x73e0, 0x73ea, 0x73de,
-0x7554, 0x755d, 0x755c, 0x755a, 0x7559, 0x75be, 0x75c5, 0x75c7,
-0x75b2, 0x75b3, 0x75bd, 0x75bc, 0x75b9, 0x75c2, 0x75b8, 0x768b,
-0x76b0, 0x76ca, 0x76cd, 0x76ce, 0x7729, 0x771f, 0x7720, 0x7728,
-0x77e9, 0x7830, 0x7827, 0x7838, 0x781d, 0x7834, 0x7837,
-94, 0xafa1,
-0x7825, 0x782d, 0x7820, 0x781f, 0x7832, 0x7955, 0x7950, 0x7960,
-0x795f, 0x7956, 0x795e, 0x795d, 0x7957, 0x795a, 0x79e4, 0x79e3,
-0x79e7, 0x79df, 0x79e6, 0x79e9, 0x79d8, 0x7a84, 0x7a88, 0x7ad9,
-0x7b06, 0x7b11, 0x7c89, 0x7d21, 0x7d17, 0x7d0b, 0x7d0a, 0x7d20,
-0x7d22, 0x7d14, 0x7d10, 0x7d15, 0x7d1a, 0x7d1c, 0x7d0d, 0x7d19,
-0x7d1b, 0x7f3a, 0x7f5f, 0x7f94, 0x7fc5, 0x7fc1, 0x8006, 0x8018,
-0x8015, 0x8019, 0x8017, 0x803d, 0x803f, 0x80f1, 0x8102, 0x80f0,
-0x8105, 0x80ed, 0x80f4, 0x8106, 0x80f8, 0x80f3, 0x8108, 0x80fd,
-0x810a, 0x80fc, 0x80ef, 0x81ed, 0x81ec, 0x8200, 0x8210, 0x822a,
-0x822b, 0x8228, 0x822c, 0x82bb, 0x832b, 0x8352, 0x8354, 0x834a,
-0x8338, 0x8350, 0x8349, 0x8335, 0x8334, 0x834f, 0x8332, 0x8339,
-0x8336, 0x8317, 0x8340, 0x8331, 0x8328, 0x8343,
-63, 0xb040,
-0x8654, 0x868a, 0x86aa, 0x8693, 0x86a4, 0x86a9, 0x868c, 0x86a3,
-0x869c, 0x8870, 0x8877, 0x8881, 0x8882, 0x887d, 0x8879, 0x8a18,
-0x8a10, 0x8a0e, 0x8a0c, 0x8a15, 0x8a0a, 0x8a17, 0x8a13, 0x8a16,
-0x8a0f, 0x8a11, 0x8c48, 0x8c7a, 0x8c79, 0x8ca1, 0x8ca2, 0x8d77,
-0x8eac, 0x8ed2, 0x8ed4, 0x8ecf, 0x8fb1, 0x9001, 0x9006, 0x8ff7,
-0x9000, 0x8ffa, 0x8ff4, 0x9003, 0x8ffd, 0x9005, 0x8ff8, 0x9095,
-0x90e1, 0x90dd, 0x90e2, 0x9152, 0x914d, 0x914c, 0x91d8, 0x91dd,
-0x91d7, 0x91dc, 0x91d9, 0x9583, 0x9662, 0x9663, 0x9661,
-94, 0xb0a1,
-0x965b, 0x965d, 0x9664, 0x9658, 0x965e, 0x96bb, 0x98e2, 0x99ac,
-0x9aa8, 0x9ad8, 0x9b25, 0x9b32, 0x9b3c, 0x4e7e, 0x507a, 0x507d,
-0x505c, 0x5047, 0x5043, 0x504c, 0x505a, 0x5049, 0x5065, 0x5076,
-0x504e, 0x5055, 0x5075, 0x5074, 0x5077, 0x504f, 0x500f, 0x506f,
-0x506d, 0x515c, 0x5195, 0x51f0, 0x526a, 0x526f, 0x52d2, 0x52d9,
-0x52d8, 0x52d5, 0x5310, 0x530f, 0x5319, 0x533f, 0x5340, 0x533e,
-0x53c3, 0x66fc, 0x5546, 0x556a, 0x5566, 0x5544, 0x555e, 0x5561,
-0x5543, 0x554a, 0x5531, 0x5556, 0x554f, 0x5555, 0x552f, 0x5564,
-0x5538, 0x552e, 0x555c, 0x552c, 0x5563, 0x5533, 0x5541, 0x5557,
-0x5708, 0x570b, 0x5709, 0x57df, 0x5805, 0x580a, 0x5806, 0x57e0,
-0x57e4, 0x57fa, 0x5802, 0x5835, 0x57f7, 0x57f9, 0x5920, 0x5962,
-0x5a36, 0x5a41, 0x5a49, 0x5a66, 0x5a6a, 0x5a40,
-63, 0xb140,
-0x5a3c, 0x5a62, 0x5a5a, 0x5a46, 0x5a4a, 0x5b70, 0x5bc7, 0x5bc5,
-0x5bc4, 0x5bc2, 0x5bbf, 0x5bc6, 0x5c09, 0x5c08, 0x5c07, 0x5c60,
-0x5c5c, 0x5c5d, 0x5d07, 0x5d06, 0x5d0e, 0x5d1b, 0x5d16, 0x5d22,
-0x5d11, 0x5d29, 0x5d14, 0x5d19, 0x5d24, 0x5d27, 0x5d17, 0x5de2,
-0x5e38, 0x5e36, 0x5e33, 0x5e37, 0x5eb7, 0x5eb8, 0x5eb6, 0x5eb5,
-0x5ebe, 0x5f35, 0x5f37, 0x5f57, 0x5f6c, 0x5f69, 0x5f6b, 0x5f97,
-0x5f99, 0x5f9e, 0x5f98, 0x5fa1, 0x5fa0, 0x5f9c, 0x607f, 0x60a3,
-0x6089, 0x60a0, 0x60a8, 0x60cb, 0x60b4, 0x60e6, 0x60bd,
-94, 0xb1a1,
-0x60c5, 0x60bb, 0x60b5, 0x60dc, 0x60bc, 0x60d8, 0x60d5, 0x60c6,
-0x60df, 0x60b8, 0x60da, 0x60c7, 0x621a, 0x621b, 0x6248, 0x63a0,
-0x63a7, 0x6372, 0x6396, 0x63a2, 0x63a5, 0x6377, 0x6367, 0x6398,
-0x63aa, 0x6371, 0x63a9, 0x6389, 0x6383, 0x639b, 0x636b, 0x63a8,
-0x6384, 0x6388, 0x6399, 0x63a1, 0x63ac, 0x6392, 0x638f, 0x6380,
-0x637b, 0x6369, 0x6368, 0x637a, 0x655d, 0x6556, 0x6551, 0x6559,
-0x6557, 0x555f, 0x654f, 0x6558, 0x6555, 0x6554, 0x659c, 0x659b,
-0x65ac, 0x65cf, 0x65cb, 0x65cc, 0x65ce, 0x665d, 0x665a, 0x6664,
-0x6668, 0x6666, 0x665e, 0x66f9, 0x52d7, 0x671b, 0x6881, 0x68af,
-0x68a2, 0x6893, 0x68b5, 0x687f, 0x6876, 0x68b1, 0x68a7, 0x6897,
-0x68b0, 0x6883, 0x68c4, 0x68ad, 0x6886, 0x6885, 0x6894, 0x689d,
-0x68a8, 0x689f, 0x68a1, 0x6882, 0x6b32, 0x6bba,
-63, 0xb240,
-0x6beb, 0x6bec, 0x6c2b, 0x6d8e, 0x6dbc, 0x6df3, 0x6dd9, 0x6db2,
-0x6de1, 0x6dcc, 0x6de4, 0x6dfb, 0x6dfa, 0x6e05, 0x6dc7, 0x6dcb,
-0x6daf, 0x6dd1, 0x6dae, 0x6dde, 0x6df9, 0x6db8, 0x6df7, 0x6df5,
-0x6dc5, 0x6dd2, 0x6e1a, 0x6db5, 0x6dda, 0x6deb, 0x6dd8, 0x6dea,
-0x6df1, 0x6dee, 0x6de8, 0x6dc6, 0x6dc4, 0x6daa, 0x6dec, 0x6dbf,
-0x6de6, 0x70f9, 0x7109, 0x710a, 0x70fd, 0x70ef, 0x723d, 0x727d,
-0x7281, 0x731c, 0x731b, 0x7316, 0x7313, 0x7319, 0x7387, 0x7405,
-0x740a, 0x7403, 0x7406, 0x73fe, 0x740d, 0x74e0, 0x74f6,
-94, 0xb2a1,
-0x74f7, 0x751c, 0x7522, 0x7565, 0x7566, 0x7562, 0x7570, 0x758f,
-0x75d4, 0x75d5, 0x75b5, 0x75ca, 0x75cd, 0x768e, 0x76d4, 0x76d2,
-0x76db, 0x7737, 0x773e, 0x773c, 0x7736, 0x7738, 0x773a, 0x786b,
-0x7843, 0x784e, 0x7965, 0x7968, 0x796d, 0x79fb, 0x7a92, 0x7a95,
-0x7b20, 0x7b28, 0x7b1b, 0x7b2c, 0x7b26, 0x7b19, 0x7b1e, 0x7b2e,
-0x7c92, 0x7c97, 0x7c95, 0x7d46, 0x7d43, 0x7d71, 0x7d2e, 0x7d39,
-0x7d3c, 0x7d40, 0x7d30, 0x7d33, 0x7d44, 0x7d2f, 0x7d42, 0x7d32,
-0x7d31, 0x7f3d, 0x7f9e, 0x7f9a, 0x7fcc, 0x7fce, 0x7fd2, 0x801c,
-0x804a, 0x8046, 0x812f, 0x8116, 0x8123, 0x812b, 0x8129, 0x8130,
-0x8124, 0x8202, 0x8235, 0x8237, 0x8236, 0x8239, 0x838e, 0x839e,
-0x8398, 0x8378, 0x83a2, 0x8396, 0x83bd, 0x83ab, 0x8392, 0x838a,
-0x8393, 0x8389, 0x83a0, 0x8377, 0x837b, 0x837c,
-63, 0xb340,
-0x8386, 0x83a7, 0x8655, 0x5f6a, 0x86c7, 0x86c0, 0x86b6, 0x86c4,
-0x86b5, 0x86c6, 0x86cb, 0x86b1, 0x86af, 0x86c9, 0x8853, 0x889e,
-0x8888, 0x88ab, 0x8892, 0x8896, 0x888d, 0x888b, 0x8993, 0x898f,
-0x8a2a, 0x8a1d, 0x8a23, 0x8a25, 0x8a31, 0x8a2d, 0x8a1f, 0x8a1b,
-0x8a22, 0x8c49, 0x8c5a, 0x8ca9, 0x8cac, 0x8cab, 0x8ca8, 0x8caa,
-0x8ca7, 0x8d67, 0x8d66, 0x8dbe, 0x8dba, 0x8edb, 0x8edf, 0x9019,
-0x900d, 0x901a, 0x9017, 0x9023, 0x901f, 0x901d, 0x9010, 0x9015,
-0x901e, 0x9020, 0x900f, 0x9022, 0x9016, 0x901b, 0x9014,
-94, 0xb3a1,
-0x90e8, 0x90ed, 0x90fd, 0x9157, 0x91ce, 0x91f5, 0x91e6, 0x91e3,
-0x91e7, 0x91ed, 0x91e9, 0x9589, 0x966a, 0x9675, 0x9673, 0x9678,
-0x9670, 0x9674, 0x9676, 0x9677, 0x966c, 0x96c0, 0x96ea, 0x96e9,
-0x7ae0, 0x7adf, 0x9802, 0x9803, 0x9b5a, 0x9ce5, 0x9e75, 0x9e7f,
-0x9ea5, 0x9ebb, 0x50a2, 0x508d, 0x5085, 0x5099, 0x5091, 0x5080,
-0x5096, 0x5098, 0x509a, 0x6700, 0x51f1, 0x5272, 0x5274, 0x5275,
-0x5269, 0x52de, 0x52dd, 0x52db, 0x535a, 0x53a5, 0x557b, 0x5580,
-0x55a7, 0x557c, 0x558a, 0x559d, 0x5598, 0x5582, 0x559c, 0x55aa,
-0x5594, 0x5587, 0x558b, 0x5583, 0x55b3, 0x55ae, 0x559f, 0x553e,
-0x55b2, 0x559a, 0x55bb, 0x55ac, 0x55b1, 0x557e, 0x5589, 0x55ab,
-0x5599, 0x570d, 0x582f, 0x582a, 0x5834, 0x5824, 0x5830, 0x5831,
-0x5821, 0x581d, 0x5820, 0x58f9, 0x58fa, 0x5960,
-63, 0xb440,
-0x5a77, 0x5a9a, 0x5a7f, 0x5a92, 0x5a9b, 0x5aa7, 0x5b73, 0x5b71,
-0x5bd2, 0x5bcc, 0x5bd3, 0x5bd0, 0x5c0a, 0x5c0b, 0x5c31, 0x5d4c,
-0x5d50, 0x5d34, 0x5d47, 0x5dfd, 0x5e45, 0x5e3d, 0x5e40, 0x5e43,
-0x5e7e, 0x5eca, 0x5ec1, 0x5ec2, 0x5ec4, 0x5f3c, 0x5f6d, 0x5fa9,
-0x5faa, 0x5fa8, 0x60d1, 0x60e1, 0x60b2, 0x60b6, 0x60e0, 0x611c,
-0x6123, 0x60fa, 0x6115, 0x60f0, 0x60fb, 0x60f4, 0x6168, 0x60f1,
-0x610e, 0x60f6, 0x6109, 0x6100, 0x6112, 0x621f, 0x6249, 0x63a3,
-0x638c, 0x63cf, 0x63c0, 0x63e9, 0x63c9, 0x63c6, 0x63cd,
-94, 0xb4a1,
-0x63d2, 0x63e3, 0x63d0, 0x63e1, 0x63d6, 0x63ed, 0x63ee, 0x6376,
-0x63f4, 0x63ea, 0x63db, 0x6452, 0x63da, 0x63f9, 0x655e, 0x6566,
-0x6562, 0x6563, 0x6591, 0x6590, 0x65af, 0x666e, 0x6670, 0x6674,
-0x6676, 0x666f, 0x6691, 0x667a, 0x667e, 0x6677, 0x66fe, 0x66ff,
-0x671f, 0x671d, 0x68fa, 0x68d5, 0x68e0, 0x68d8, 0x68d7, 0x6905,
-0x68df, 0x68f5, 0x68ee, 0x68e7, 0x68f9, 0x68d2, 0x68f2, 0x68e3,
-0x68cb, 0x68cd, 0x690d, 0x6912, 0x690e, 0x68c9, 0x68da, 0x696e,
-0x68fb, 0x6b3e, 0x6b3a, 0x6b3d, 0x6b98, 0x6b96, 0x6bbc, 0x6bef,
-0x6c2e, 0x6c2f, 0x6c2c, 0x6e2f, 0x6e38, 0x6e54, 0x6e21, 0x6e32,
-0x6e67, 0x6e4a, 0x6e20, 0x6e25, 0x6e23, 0x6e1b, 0x6e5b, 0x6e58,
-0x6e24, 0x6e56, 0x6e6e, 0x6e2d, 0x6e26, 0x6e6f, 0x6e34, 0x6e4d,
-0x6e3a, 0x6e2c, 0x6e43, 0x6e1d, 0x6e3e, 0x6ecb,
-63, 0xb540,
-0x6e89, 0x6e19, 0x6e4e, 0x6e63, 0x6e44, 0x6e72, 0x6e69, 0x6e5f,
-0x7119, 0x711a, 0x7126, 0x7130, 0x7121, 0x7136, 0x716e, 0x711c,
-0x724c, 0x7284, 0x7280, 0x7336, 0x7325, 0x7334, 0x7329, 0x743a,
-0x742a, 0x7433, 0x7422, 0x7425, 0x7435, 0x7436, 0x7434, 0x742f,
-0x741b, 0x7426, 0x7428, 0x7525, 0x7526, 0x756b, 0x756a, 0x75e2,
-0x75db, 0x75e3, 0x75d9, 0x75d8, 0x75de, 0x75e0, 0x767b, 0x767c,
-0x7696, 0x7693, 0x76b4, 0x76dc, 0x774f, 0x77ed, 0x785d, 0x786c,
-0x786f, 0x7a0d, 0x7a08, 0x7a0b, 0x7a05, 0x7a00, 0x7a98,
-94, 0xb5a1,
-0x7a97, 0x7a96, 0x7ae5, 0x7ae3, 0x7b49, 0x7b56, 0x7b46, 0x7b50,
-0x7b52, 0x7b54, 0x7b4d, 0x7b4b, 0x7b4f, 0x7b51, 0x7c9f, 0x7ca5,
-0x7d5e, 0x7d50, 0x7d68, 0x7d55, 0x7d2b, 0x7d6e, 0x7d72, 0x7d61,
-0x7d66, 0x7d62, 0x7d70, 0x7d73, 0x5584, 0x7fd4, 0x7fd5, 0x800b,
-0x8052, 0x8085, 0x8155, 0x8154, 0x814b, 0x8151, 0x814e, 0x8139,
-0x8146, 0x813e, 0x814c, 0x8153, 0x8174, 0x8212, 0x821c, 0x83e9,
-0x8403, 0x83f8, 0x840d, 0x83e0, 0x83c5, 0x840b, 0x83c1, 0x83ef,
-0x83f1, 0x83f4, 0x8457, 0x840a, 0x83f0, 0x840c, 0x83cc, 0x83fd,
-0x83f2, 0x83ca, 0x8438, 0x840e, 0x8404, 0x83dc, 0x8407, 0x83d4,
-0x83df, 0x865b, 0x86df, 0x86d9, 0x86ed, 0x86d4, 0x86db, 0x86e4,
-0x86d0, 0x86de, 0x8857, 0x88c1, 0x88c2, 0x88b1, 0x8983, 0x8996,
-0x8a3b, 0x8a60, 0x8a55, 0x8a5e, 0x8a3c, 0x8a41,
-63, 0xb640,
-0x8a54, 0x8a5b, 0x8a50, 0x8a46, 0x8a34, 0x8a3a, 0x8a36, 0x8a56,
-0x8c61, 0x8c82, 0x8caf, 0x8cbc, 0x8cb3, 0x8cbd, 0x8cc1, 0x8cbb,
-0x8cc0, 0x8cb4, 0x8cb7, 0x8cb6, 0x8cbf, 0x8cb8, 0x8d8a, 0x8d85,
-0x8d81, 0x8dce, 0x8ddd, 0x8dcb, 0x8dda, 0x8dd1, 0x8dcc, 0x8ddb,
-0x8dc6, 0x8efb, 0x8ef8, 0x8efc, 0x8f9c, 0x902e, 0x9035, 0x9031,
-0x9038, 0x9032, 0x9036, 0x9102, 0x90f5, 0x9109, 0x90fe, 0x9163,
-0x9165, 0x91cf, 0x9214, 0x9215, 0x9223, 0x9209, 0x921e, 0x920d,
-0x9210, 0x9207, 0x9211, 0x9594, 0x958f, 0x958b, 0x9591,
-94, 0xb6a1,
-0x9593, 0x9592, 0x958e, 0x968a, 0x968e, 0x968b, 0x967d, 0x9685,
-0x9686, 0x968d, 0x9672, 0x9684, 0x96c1, 0x96c5, 0x96c4, 0x96c6,
-0x96c7, 0x96ef, 0x96f2, 0x97cc, 0x9805, 0x9806, 0x9808, 0x98e7,
-0x98ea, 0x98ef, 0x98e9, 0x98f2, 0x98ed, 0x99ae, 0x99ad, 0x9ec3,
-0x9ecd, 0x9ed1, 0x4e82, 0x50ad, 0x50b5, 0x50b2, 0x50b3, 0x50c5,
-0x50be, 0x50ac, 0x50b7, 0x50bb, 0x50af, 0x50c7, 0x527f, 0x5277,
-0x527d, 0x52df, 0x52e6, 0x52e4, 0x52e2, 0x52e3, 0x532f, 0x55df,
-0x55e8, 0x55d3, 0x55e6, 0x55ce, 0x55dc, 0x55c7, 0x55d1, 0x55e3,
-0x55e4, 0x55ef, 0x55da, 0x55e1, 0x55c5, 0x55c6, 0x55e5, 0x55c9,
-0x5712, 0x5713, 0x585e, 0x5851, 0x5858, 0x5857, 0x585a, 0x5854,
-0x586b, 0x584c, 0x586d, 0x584a, 0x5862, 0x5852, 0x584b, 0x5967,
-0x5ac1, 0x5ac9, 0x5acc, 0x5abe, 0x5abd, 0x5abc,
-63, 0xb740,
-0x5ab3, 0x5ac2, 0x5ab2, 0x5d69, 0x5d6f, 0x5e4c, 0x5e79, 0x5ec9,
-0x5ec8, 0x5f12, 0x5f59, 0x5fac, 0x5fae, 0x611a, 0x610f, 0x6148,
-0x611f, 0x60f3, 0x611b, 0x60f9, 0x6101, 0x6108, 0x614e, 0x614c,
-0x6144, 0x614d, 0x613e, 0x6134, 0x6127, 0x610d, 0x6106, 0x6137,
-0x6221, 0x6222, 0x6413, 0x643e, 0x641e, 0x642a, 0x642d, 0x643d,
-0x642c, 0x640f, 0x641c, 0x6414, 0x640d, 0x6436, 0x6416, 0x6417,
-0x6406, 0x656c, 0x659f, 0x65b0, 0x6697, 0x6689, 0x6687, 0x6688,
-0x6696, 0x6684, 0x6698, 0x668d, 0x6703, 0x6994, 0x696d,
-94, 0xb7a1,
-0x695a, 0x6977, 0x6960, 0x6954, 0x6975, 0x6930, 0x6982, 0x694a,
-0x6968, 0x696b, 0x695e, 0x6953, 0x6979, 0x6986, 0x695d, 0x6963,
-0x695b, 0x6b47, 0x6b72, 0x6bc0, 0x6bbf, 0x6bd3, 0x6bfd, 0x6ea2,
-0x6eaf, 0x6ed3, 0x6eb6, 0x6ec2, 0x6e90, 0x6e9d, 0x6ec7, 0x6ec5,
-0x6ea5, 0x6e98, 0x6ebc, 0x6eba, 0x6eab, 0x6ed1, 0x6e96, 0x6e9c,
-0x6ec4, 0x6ed4, 0x6eaa, 0x6ea7, 0x6eb4, 0x714e, 0x7159, 0x7169,
-0x7164, 0x7149, 0x7167, 0x715c, 0x716c, 0x7166, 0x714c, 0x7165,
-0x715e, 0x7146, 0x7168, 0x7156, 0x723a, 0x7252, 0x7337, 0x7345,
-0x733f, 0x733e, 0x746f, 0x745a, 0x7455, 0x745f, 0x745e, 0x7441,
-0x743f, 0x7459, 0x745b, 0x745c, 0x7576, 0x7578, 0x7600, 0x75f0,
-0x7601, 0x75f2, 0x75f1, 0x75fa, 0x75ff, 0x75f4, 0x75f3, 0x76de,
-0x76df, 0x775b, 0x776b, 0x7766, 0x775e, 0x7763,
-63, 0xb840,
-0x7779, 0x776a, 0x776c, 0x775c, 0x7765, 0x7768, 0x7762, 0x77ee,
-0x788e, 0x78b0, 0x7897, 0x7898, 0x788c, 0x7889, 0x787c, 0x7891,
-0x7893, 0x787f, 0x797a, 0x797f, 0x7981, 0x842c, 0x79bd, 0x7a1c,
-0x7a1a, 0x7a20, 0x7a14, 0x7a1f, 0x7a1e, 0x7a9f, 0x7aa0, 0x7b77,
-0x7bc0, 0x7b60, 0x7b6e, 0x7b67, 0x7cb1, 0x7cb3, 0x7cb5, 0x7d93,
-0x7d79, 0x7d91, 0x7d81, 0x7d8f, 0x7d5b, 0x7f6e, 0x7f69, 0x7f6a,
-0x7f72, 0x7fa9, 0x7fa8, 0x7fa4, 0x8056, 0x8058, 0x8086, 0x8084,
-0x8171, 0x8170, 0x8178, 0x8165, 0x816e, 0x8173, 0x816b,
-94, 0xb8a1,
-0x8179, 0x817a, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, 0x843d,
-0x8431, 0x8475, 0x8466, 0x846b, 0x8449, 0x846c, 0x845b, 0x843c,
-0x8435, 0x8461, 0x8463, 0x8469, 0x846d, 0x8446, 0x865e, 0x865c,
-0x865f, 0x86f9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86fe, 0x86fb,
-0x8702, 0x8703, 0x8706, 0x870a, 0x8859, 0x88df, 0x88d4, 0x88d9,
-0x88dc, 0x88d8, 0x88dd, 0x88e1, 0x88ca, 0x88d5, 0x88d2, 0x899c,
-0x89e3, 0x8a6b, 0x8a72, 0x8a73, 0x8a66, 0x8a69, 0x8a70, 0x8a87,
-0x8a7c, 0x8a63, 0x8aa0, 0x8a71, 0x8a85, 0x8a6d, 0x8a62, 0x8a6e,
-0x8a6c, 0x8a79, 0x8a7b, 0x8a3e, 0x8a68, 0x8c62, 0x8c8a, 0x8c89,
-0x8cca, 0x8cc7, 0x8cc8, 0x8cc4, 0x8cb2, 0x8cc3, 0x8cc2, 0x8cc5,
-0x8de1, 0x8ddf, 0x8de8, 0x8def, 0x8df3, 0x8dfa, 0x8dea, 0x8de4,
-0x8de6, 0x8eb2, 0x8f03, 0x8f09, 0x8efe, 0x8f0a,
-63, 0xb940,
-0x8f9f, 0x8fb2, 0x904b, 0x904a, 0x9053, 0x9042, 0x9054, 0x903c,
-0x9055, 0x9050, 0x9047, 0x904f, 0x904e, 0x904d, 0x9051, 0x903e,
-0x9041, 0x9112, 0x9117, 0x916c, 0x916a, 0x9169, 0x91c9, 0x9237,
-0x9257, 0x9238, 0x923d, 0x9240, 0x923e, 0x925b, 0x924b, 0x9264,
-0x9251, 0x9234, 0x9249, 0x924d, 0x9245, 0x9239, 0x923f, 0x925a,
-0x9598, 0x9698, 0x9694, 0x9695, 0x96cd, 0x96cb, 0x96c9, 0x96ca,
-0x96f7, 0x96fb, 0x96f9, 0x96f6, 0x9756, 0x9774, 0x9776, 0x9810,
-0x9811, 0x9813, 0x980a, 0x9812, 0x980c, 0x98fc, 0x98f4,
-94, 0xb9a1,
-0x98fd, 0x98fe, 0x99b3, 0x99b1, 0x99b4, 0x9ae1, 0x9ce9, 0x9e82,
-0x9f0e, 0x9f13, 0x9f20, 0x50e7, 0x50ee, 0x50e5, 0x50d6, 0x50ed,
-0x50da, 0x50d5, 0x50cf, 0x50d1, 0x50f1, 0x50ce, 0x50e9, 0x5162,
-0x51f3, 0x5283, 0x5282, 0x5331, 0x53ad, 0x55fe, 0x5600, 0x561b,
-0x5617, 0x55fd, 0x5614, 0x5606, 0x5609, 0x560d, 0x560e, 0x55f7,
-0x5616, 0x561f, 0x5608, 0x5610, 0x55f6, 0x5718, 0x5716, 0x5875,
-0x587e, 0x5883, 0x5893, 0x588a, 0x5879, 0x5885, 0x587d, 0x58fd,
-0x5925, 0x5922, 0x5924, 0x596a, 0x5969, 0x5ae1, 0x5ae6, 0x5ae9,
-0x5ad7, 0x5ad6, 0x5ad8, 0x5ae3, 0x5b75, 0x5bde, 0x5be7, 0x5be1,
-0x5be5, 0x5be6, 0x5be8, 0x5be2, 0x5be4, 0x5bdf, 0x5c0d, 0x5c62,
-0x5d84, 0x5d87, 0x5e5b, 0x5e63, 0x5e55, 0x5e57, 0x5e54, 0x5ed3,
-0x5ed6, 0x5f0a, 0x5f46, 0x5f70, 0x5fb9, 0x6147,
-63, 0xba40,
-0x613f, 0x614b, 0x6177, 0x6162, 0x6163, 0x615f, 0x615a, 0x6158,
-0x6175, 0x622a, 0x6487, 0x6458, 0x6454, 0x64a4, 0x6478, 0x645f,
-0x647a, 0x6451, 0x6467, 0x6434, 0x646d, 0x647b, 0x6572, 0x65a1,
-0x65d7, 0x65d6, 0x66a2, 0x66a8, 0x669d, 0x699c, 0x69a8, 0x6995,
-0x69c1, 0x69ae, 0x69d3, 0x69cb, 0x699b, 0x69b7, 0x69bb, 0x69ab,
-0x69b4, 0x69d0, 0x69cd, 0x69ad, 0x69cc, 0x69a6, 0x69c3, 0x69a3,
-0x6b49, 0x6b4c, 0x6c33, 0x6f33, 0x6f14, 0x6efe, 0x6f13, 0x6ef4,
-0x6f29, 0x6f3e, 0x6f20, 0x6f2c, 0x6f0f, 0x6f02, 0x6f22,
-94, 0xbaa1,
-0x6eff, 0x6eef, 0x6f06, 0x6f31, 0x6f38, 0x6f32, 0x6f23, 0x6f15,
-0x6f2b, 0x6f2f, 0x6f88, 0x6f2a, 0x6eec, 0x6f01, 0x6ef2, 0x6ecc,
-0x6ef7, 0x7194, 0x7199, 0x717d, 0x718a, 0x7184, 0x7192, 0x723e,
-0x7292, 0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746a, 0x7470,
-0x746d, 0x7504, 0x7591, 0x7627, 0x760d, 0x760b, 0x7609, 0x7613,
-0x76e1, 0x76e3, 0x7784, 0x777d, 0x777f, 0x7761, 0x78c1, 0x789f,
-0x78a7, 0x78b3, 0x78a9, 0x78a3, 0x798e, 0x798f, 0x798d, 0x7a2e,
-0x7a31, 0x7aaa, 0x7aa9, 0x7aed, 0x7aef, 0x7ba1, 0x7b95, 0x7b8b,
-0x7b75, 0x7b97, 0x7b9d, 0x7b94, 0x7b8f, 0x7bb8, 0x7b87, 0x7b84,
-0x7cb9, 0x7cbd, 0x7cbe, 0x7dbb, 0x7db0, 0x7d9c, 0x7dbd, 0x7dbe,
-0x7da0, 0x7dca, 0x7db4, 0x7db2, 0x7db1, 0x7dba, 0x7da2, 0x7dbf,
-0x7db5, 0x7db8, 0x7dad, 0x7dd2, 0x7dc7, 0x7dac,
-63, 0xbb40,
-0x7f70, 0x7fe0, 0x7fe1, 0x7fdf, 0x805e, 0x805a, 0x8087, 0x8150,
-0x8180, 0x818f, 0x8188, 0x818a, 0x817f, 0x8182, 0x81e7, 0x81fa,
-0x8207, 0x8214, 0x821e, 0x824b, 0x84c9, 0x84bf, 0x84c6, 0x84c4,
-0x8499, 0x849e, 0x84b2, 0x849c, 0x84cb, 0x84b8, 0x84c0, 0x84d3,
-0x8490, 0x84bc, 0x84d1, 0x84ca, 0x873f, 0x871c, 0x873b, 0x8722,
-0x8725, 0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88f3, 0x8902,
-0x88f4, 0x88f9, 0x88f8, 0x88fd, 0x88e8, 0x891a, 0x88ef, 0x8aa6,
-0x8a8c, 0x8a9e, 0x8aa3, 0x8a8d, 0x8aa1, 0x8a93, 0x8aa4,
-94, 0xbba1,
-0x8aaa, 0x8aa5, 0x8aa8, 0x8a98, 0x8a91, 0x8a9a, 0x8aa7, 0x8c6a,
-0x8c8d, 0x8c8c, 0x8cd3, 0x8cd1, 0x8cd2, 0x8d6b, 0x8d99, 0x8d95,
-0x8dfc, 0x8f14, 0x8f12, 0x8f15, 0x8f13, 0x8fa3, 0x9060, 0x9058,
-0x905c, 0x9063, 0x9059, 0x905e, 0x9062, 0x905d, 0x905b, 0x9119,
-0x9118, 0x911e, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, 0x9280,
-0x9285, 0x9298, 0x9296, 0x927b, 0x9293, 0x929c, 0x92a8, 0x927c,
-0x9291, 0x95a1, 0x95a8, 0x95a9, 0x95a3, 0x95a5, 0x95a4, 0x9699,
-0x969c, 0x969b, 0x96cc, 0x96d2, 0x9700, 0x977c, 0x9785, 0x97f6,
-0x9817, 0x9818, 0x98af, 0x98b1, 0x9903, 0x9905, 0x990c, 0x9909,
-0x99c1, 0x9aaf, 0x9ab0, 0x9ae6, 0x9b41, 0x9b42, 0x9cf4, 0x9cf6,
-0x9cf3, 0x9ebc, 0x9f3b, 0x9f4a, 0x5104, 0x5100, 0x50fb, 0x50f5,
-0x50f9, 0x5102, 0x5108, 0x5109, 0x5105, 0x51dc,
-63, 0xbc40,
-0x5287, 0x5288, 0x5289, 0x528d, 0x528a, 0x52f0, 0x53b2, 0x562e,
-0x563b, 0x5639, 0x5632, 0x563f, 0x5634, 0x5629, 0x5653, 0x564e,
-0x5657, 0x5674, 0x5636, 0x562f, 0x5630, 0x5880, 0x589f, 0x589e,
-0x58b3, 0x589c, 0x58ae, 0x58a9, 0x58a6, 0x596d, 0x5b09, 0x5afb,
-0x5b0b, 0x5af5, 0x5b0c, 0x5b08, 0x5bee, 0x5bec, 0x5be9, 0x5beb,
-0x5c64, 0x5c65, 0x5d9d, 0x5d94, 0x5e62, 0x5e5f, 0x5e61, 0x5ee2,
-0x5eda, 0x5edf, 0x5edd, 0x5ee3, 0x5ee0, 0x5f48, 0x5f71, 0x5fb7,
-0x5fb5, 0x6176, 0x6167, 0x616e, 0x615d, 0x6155, 0x6182,
-94, 0xbca1,
-0x617c, 0x6170, 0x616b, 0x617e, 0x61a7, 0x6190, 0x61ab, 0x618e,
-0x61ac, 0x619a, 0x61a4, 0x6194, 0x61ae, 0x622e, 0x6469, 0x646f,
-0x6479, 0x649e, 0x64b2, 0x6488, 0x6490, 0x64b0, 0x64a5, 0x6493,
-0x6495, 0x64a9, 0x6492, 0x64ae, 0x64ad, 0x64ab, 0x649a, 0x64ac,
-0x6499, 0x64a2, 0x64b3, 0x6575, 0x6577, 0x6578, 0x66ae, 0x66ab,
-0x66b4, 0x66b1, 0x6a23, 0x6a1f, 0x69e8, 0x6a01, 0x6a1e, 0x6a19,
-0x69fd, 0x6a21, 0x6a13, 0x6a0a, 0x69f3, 0x6a02, 0x6a05, 0x69ed,
-0x6a11, 0x6b50, 0x6b4e, 0x6ba4, 0x6bc5, 0x6bc6, 0x6f3f, 0x6f7c,
-0x6f84, 0x6f51, 0x6f66, 0x6f54, 0x6f86, 0x6f6d, 0x6f5b, 0x6f78,
-0x6f6e, 0x6f8e, 0x6f7a, 0x6f70, 0x6f64, 0x6f97, 0x6f58, 0x6ed5,
-0x6f6f, 0x6f60, 0x6f5f, 0x719f, 0x71ac, 0x71b1, 0x71a8, 0x7256,
-0x729b, 0x734e, 0x7357, 0x7469, 0x748b, 0x7483,
-63, 0xbd40,
-0x747e, 0x7480, 0x757f, 0x7620, 0x7629, 0x761f, 0x7624, 0x7626,
-0x7621, 0x7622, 0x769a, 0x76ba, 0x76e4, 0x778e, 0x7787, 0x778c,
-0x7791, 0x778b, 0x78cb, 0x78c5, 0x78ba, 0x78ca, 0x78be, 0x78d5,
-0x78bc, 0x78d0, 0x7a3f, 0x7a3c, 0x7a40, 0x7a3d, 0x7a37, 0x7a3b,
-0x7aaf, 0x7aae, 0x7bad, 0x7bb1, 0x7bc4, 0x7bb4, 0x7bc6, 0x7bc7,
-0x7bc1, 0x7ba0, 0x7bcc, 0x7cca, 0x7de0, 0x7df4, 0x7def, 0x7dfb,
-0x7dd8, 0x7dec, 0x7ddd, 0x7de8, 0x7de3, 0x7dda, 0x7dde, 0x7de9,
-0x7d9e, 0x7dd9, 0x7df2, 0x7df9, 0x7f75, 0x7f77, 0x7faf,
-94, 0xbda1,
-0x7fe9, 0x8026, 0x819b, 0x819c, 0x819d, 0x81a0, 0x819a, 0x8198,
-0x8517, 0x853d, 0x851a, 0x84ee, 0x852c, 0x852d, 0x8513, 0x8511,
-0x8523, 0x8521, 0x8514, 0x84ec, 0x8525, 0x84ff, 0x8506, 0x8782,
-0x8774, 0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759, 0x8757,
-0x874c, 0x8753, 0x885b, 0x885d, 0x8910, 0x8907, 0x8912, 0x8913,
-0x8915, 0x890a, 0x8abc, 0x8ad2, 0x8ac7, 0x8ac4, 0x8a95, 0x8acb,
-0x8af8, 0x8ab2, 0x8ac9, 0x8ac2, 0x8abf, 0x8ab0, 0x8ad6, 0x8acd,
-0x8ab6, 0x8ab9, 0x8adb, 0x8c4c, 0x8c4e, 0x8c6c, 0x8ce0, 0x8cde,
-0x8ce6, 0x8ce4, 0x8cec, 0x8ced, 0x8ce2, 0x8ce3, 0x8cdc, 0x8cea,
-0x8ce1, 0x8d6d, 0x8d9f, 0x8da3, 0x8e2b, 0x8e10, 0x8e1d, 0x8e22,
-0x8e0f, 0x8e29, 0x8e1f, 0x8e21, 0x8e1e, 0x8eba, 0x8f1d, 0x8f1b,
-0x8f1f, 0x8f29, 0x8f26, 0x8f2a, 0x8f1c, 0x8f1e,
-63, 0xbe40,
-0x8f25, 0x9069, 0x906e, 0x9068, 0x906d, 0x9077, 0x9130, 0x912d,
-0x9127, 0x9131, 0x9187, 0x9189, 0x918b, 0x9183, 0x92c5, 0x92bb,
-0x92b7, 0x92ea, 0x92ac, 0x92e4, 0x92c1, 0x92b3, 0x92bc, 0x92d2,
-0x92c7, 0x92f0, 0x92b2, 0x95ad, 0x95b1, 0x9704, 0x9706, 0x9707,
-0x9709, 0x9760, 0x978d, 0x978b, 0x978f, 0x9821, 0x982b, 0x981c,
-0x98b3, 0x990a, 0x9913, 0x9912, 0x9918, 0x99dd, 0x99d0, 0x99df,
-0x99db, 0x99d1, 0x99d5, 0x99d2, 0x99d9, 0x9ab7, 0x9aee, 0x9aef,
-0x9b27, 0x9b45, 0x9b44, 0x9b77, 0x9b6f, 0x9d06, 0x9d09,
-94, 0xbea1,
-0x9d03, 0x9ea9, 0x9ebe, 0x9ece, 0x58a8, 0x9f52, 0x5112, 0x5118,
-0x5114, 0x5110, 0x5115, 0x5180, 0x51aa, 0x51dd, 0x5291, 0x5293,
-0x52f3, 0x5659, 0x566b, 0x5679, 0x5669, 0x5664, 0x5678, 0x566a,
-0x5668, 0x5665, 0x5671, 0x566f, 0x566c, 0x5662, 0x5676, 0x58c1,
-0x58be, 0x58c7, 0x58c5, 0x596e, 0x5b1d, 0x5b34, 0x5b78, 0x5bf0,
-0x5c0e, 0x5f4a, 0x61b2, 0x6191, 0x61a9, 0x618a, 0x61cd, 0x61b6,
-0x61be, 0x61ca, 0x61c8, 0x6230, 0x64c5, 0x64c1, 0x64cb, 0x64bb,
-0x64bc, 0x64da, 0x64c4, 0x64c7, 0x64c2, 0x64cd, 0x64bf, 0x64d2,
-0x64d4, 0x64be, 0x6574, 0x66c6, 0x66c9, 0x66b9, 0x66c4, 0x66c7,
-0x66b8, 0x6a3d, 0x6a38, 0x6a3a, 0x6a59, 0x6a6b, 0x6a58, 0x6a39,
-0x6a44, 0x6a62, 0x6a61, 0x6a4b, 0x6a47, 0x6a35, 0x6a5f, 0x6a48,
-0x6b59, 0x6b77, 0x6c05, 0x6fc2, 0x6fb1, 0x6fa1,
-63, 0xbf40,
-0x6fc3, 0x6fa4, 0x6fc1, 0x6fa7, 0x6fb3, 0x6fc0, 0x6fb9, 0x6fb6,
-0x6fa6, 0x6fa0, 0x6fb4, 0x71be, 0x71c9, 0x71d0, 0x71d2, 0x71c8,
-0x71d5, 0x71b9, 0x71ce, 0x71d9, 0x71dc, 0x71c3, 0x71c4, 0x7368,
-0x749c, 0x74a3, 0x7498, 0x749f, 0x749e, 0x74e2, 0x750c, 0x750d,
-0x7634, 0x7638, 0x763a, 0x76e7, 0x76e5, 0x77a0, 0x779e, 0x779f,
-0x77a5, 0x78e8, 0x78da, 0x78ec, 0x78e7, 0x79a6, 0x7a4d, 0x7a4e,
-0x7a46, 0x7a4c, 0x7a4b, 0x7aba, 0x7bd9, 0x7c11, 0x7bc9, 0x7be4,
-0x7bdb, 0x7be1, 0x7be9, 0x7be6, 0x7cd5, 0x7cd6, 0x7e0a,
-94, 0xbfa1,
-0x7e11, 0x7e08, 0x7e1b, 0x7e23, 0x7e1e, 0x7e1d, 0x7e09, 0x7e10,
-0x7f79, 0x7fb2, 0x7ff0, 0x7ff1, 0x7fee, 0x8028, 0x81b3, 0x81a9,
-0x81a8, 0x81fb, 0x8208, 0x8258, 0x8259, 0x854a, 0x8559, 0x8548,
-0x8568, 0x8569, 0x8543, 0x8549, 0x856d, 0x856a, 0x855e, 0x8783,
-0x879f, 0x879e, 0x87a2, 0x878d, 0x8861, 0x892a, 0x8932, 0x8925,
-0x892b, 0x8921, 0x89aa, 0x89a6, 0x8ae6, 0x8afa, 0x8aeb, 0x8af1,
-0x8b00, 0x8adc, 0x8ae7, 0x8aee, 0x8afe, 0x8b01, 0x8b02, 0x8af7,
-0x8aed, 0x8af3, 0x8af6, 0x8afc, 0x8c6b, 0x8c6d, 0x8c93, 0x8cf4,
-0x8e44, 0x8e31, 0x8e34, 0x8e42, 0x8e39, 0x8e35, 0x8f3b, 0x8f2f,
-0x8f38, 0x8f33, 0x8fa8, 0x8fa6, 0x9075, 0x9074, 0x9078, 0x9072,
-0x907c, 0x907a, 0x9134, 0x9192, 0x9320, 0x9336, 0x92f8, 0x9333,
-0x932f, 0x9322, 0x92fc, 0x932b, 0x9304, 0x931a,
-63, 0xc040,
-0x9310, 0x9326, 0x9321, 0x9315, 0x932e, 0x9319, 0x95bb, 0x96a7,
-0x96a8, 0x96aa, 0x96d5, 0x970e, 0x9711, 0x9716, 0x970d, 0x9713,
-0x970f, 0x975b, 0x975c, 0x9766, 0x9798, 0x9830, 0x9838, 0x983b,
-0x9837, 0x982d, 0x9839, 0x9824, 0x9910, 0x9928, 0x991e, 0x991b,
-0x9921, 0x991a, 0x99ed, 0x99e2, 0x99f1, 0x9ab8, 0x9abc, 0x9afb,
-0x9aed, 0x9b28, 0x9b91, 0x9d15, 0x9d23, 0x9d26, 0x9d28, 0x9d12,
-0x9d1b, 0x9ed8, 0x9ed4, 0x9f8d, 0x9f9c, 0x512a, 0x511f, 0x5121,
-0x5132, 0x52f5, 0x568e, 0x5680, 0x5690, 0x5685, 0x5687,
-94, 0xc0a1,
-0x568f, 0x58d5, 0x58d3, 0x58d1, 0x58ce, 0x5b30, 0x5b2a, 0x5b24,
-0x5b7a, 0x5c37, 0x5c68, 0x5dbc, 0x5dba, 0x5dbd, 0x5db8, 0x5e6b,
-0x5f4c, 0x5fbd, 0x61c9, 0x61c2, 0x61c7, 0x61e6, 0x61cb, 0x6232,
-0x6234, 0x64ce, 0x64ca, 0x64d8, 0x64e0, 0x64f0, 0x64e6, 0x64ec,
-0x64f1, 0x64e2, 0x64ed, 0x6582, 0x6583, 0x66d9, 0x66d6, 0x6a80,
-0x6a94, 0x6a84, 0x6aa2, 0x6a9c, 0x6adb, 0x6aa3, 0x6a7e, 0x6a97,
-0x6a90, 0x6aa0, 0x6b5c, 0x6bae, 0x6bda, 0x6c08, 0x6fd8, 0x6ff1,
-0x6fdf, 0x6fe0, 0x6fdb, 0x6fe4, 0x6feb, 0x6fef, 0x6f80, 0x6fec,
-0x6fe1, 0x6fe9, 0x6fd5, 0x6fee, 0x6ff0, 0x71e7, 0x71df, 0x71ee,
-0x71e6, 0x71e5, 0x71ed, 0x71ec, 0x71f4, 0x71e0, 0x7235, 0x7246,
-0x7370, 0x7372, 0x74a9, 0x74b0, 0x74a6, 0x74a8, 0x7646, 0x7642,
-0x764c, 0x76ea, 0x77b3, 0x77aa, 0x77b0, 0x77ac,
-63, 0xc140,
-0x77a7, 0x77ad, 0x77ef, 0x78f7, 0x78fa, 0x78f4, 0x78ef, 0x7901,
-0x79a7, 0x79aa, 0x7a57, 0x7abf, 0x7c07, 0x7c0d, 0x7bfe, 0x7bf7,
-0x7c0c, 0x7be0, 0x7ce0, 0x7cdc, 0x7cde, 0x7ce2, 0x7cdf, 0x7cd9,
-0x7cdd, 0x7e2e, 0x7e3e, 0x7e46, 0x7e37, 0x7e32, 0x7e43, 0x7e2b,
-0x7e3d, 0x7e31, 0x7e45, 0x7e41, 0x7e34, 0x7e39, 0x7e48, 0x7e35,
-0x7e3f, 0x7e2f, 0x7f44, 0x7ff3, 0x7ffc, 0x8071, 0x8072, 0x8070,
-0x806f, 0x8073, 0x81c6, 0x81c3, 0x81ba, 0x81c2, 0x81c0, 0x81bf,
-0x81bd, 0x81c9, 0x81be, 0x81e8, 0x8209, 0x8271, 0x85aa,
-94, 0xc1a1,
-0x8584, 0x857e, 0x859c, 0x8591, 0x8594, 0x85af, 0x859b, 0x8587,
-0x85a8, 0x858a, 0x8667, 0x87c0, 0x87d1, 0x87b3, 0x87d2, 0x87c6,
-0x87ab, 0x87bb, 0x87ba, 0x87c8, 0x87cb, 0x893b, 0x8936, 0x8944,
-0x8938, 0x893d, 0x89ac, 0x8b0e, 0x8b17, 0x8b19, 0x8b1b, 0x8b0a,
-0x8b20, 0x8b1d, 0x8b04, 0x8b10, 0x8c41, 0x8c3f, 0x8c73, 0x8cfa,
-0x8cfd, 0x8cfc, 0x8cf8, 0x8cfb, 0x8da8, 0x8e49, 0x8e4b, 0x8e48,
-0x8e4a, 0x8f44, 0x8f3e, 0x8f42, 0x8f45, 0x8f3f, 0x907f, 0x907d,
-0x9084, 0x9081, 0x9082, 0x9080, 0x9139, 0x91a3, 0x919e, 0x919c,
-0x934d, 0x9382, 0x9328, 0x9375, 0x934a, 0x9365, 0x934b, 0x9318,
-0x937e, 0x936c, 0x935b, 0x9370, 0x935a, 0x9354, 0x95ca, 0x95cb,
-0x95cc, 0x95c8, 0x95c6, 0x96b1, 0x96b8, 0x96d6, 0x971c, 0x971e,
-0x97a0, 0x97d3, 0x9846, 0x98b6, 0x9935, 0x9a01,
-63, 0xc240,
-0x99ff, 0x9bae, 0x9bab, 0x9baa, 0x9bad, 0x9d3b, 0x9d3f, 0x9e8b,
-0x9ecf, 0x9ede, 0x9edc, 0x9edd, 0x9edb, 0x9f3e, 0x9f4b, 0x53e2,
-0x5695, 0x56ae, 0x58d9, 0x58d8, 0x5b38, 0x5f5d, 0x61e3, 0x6233,
-0x64f4, 0x64f2, 0x64fe, 0x6506, 0x64fa, 0x64fb, 0x64f7, 0x65b7,
-0x66dc, 0x6726, 0x6ab3, 0x6aac, 0x6ac3, 0x6abb, 0x6ab8, 0x6ac2,
-0x6aae, 0x6aaf, 0x6b5f, 0x6b78, 0x6baf, 0x7009, 0x700b, 0x6ffe,
-0x7006, 0x6ffa, 0x7011, 0x700f, 0x71fb, 0x71fc, 0x71fe, 0x71f8,
-0x7377, 0x7375, 0x74a7, 0x74bf, 0x7515, 0x7656, 0x7658,
-94, 0xc2a1,
-0x7652, 0x77bd, 0x77bf, 0x77bb, 0x77bc, 0x790e, 0x79ae, 0x7a61,
-0x7a62, 0x7a60, 0x7ac4, 0x7ac5, 0x7c2b, 0x7c27, 0x7c2a, 0x7c1e,
-0x7c23, 0x7c21, 0x7ce7, 0x7e54, 0x7e55, 0x7e5e, 0x7e5a, 0x7e61,
-0x7e52, 0x7e59, 0x7f48, 0x7ff9, 0x7ffb, 0x8077, 0x8076, 0x81cd,
-0x81cf, 0x820a, 0x85cf, 0x85a9, 0x85cd, 0x85d0, 0x85c9, 0x85b0,
-0x85ba, 0x85b9, 0x85a6, 0x87ef, 0x87ec, 0x87f2, 0x87e0, 0x8986,
-0x89b2, 0x89f4, 0x8b28, 0x8b39, 0x8b2c, 0x8b2b, 0x8c50, 0x8d05,
-0x8e59, 0x8e63, 0x8e66, 0x8e64, 0x8e5f, 0x8e55, 0x8ec0, 0x8f49,
-0x8f4d, 0x9087, 0x9083, 0x9088, 0x91ab, 0x91ac, 0x91d0, 0x9394,
-0x938a, 0x9396, 0x93a2, 0x93b3, 0x93ae, 0x93ac, 0x93b0, 0x9398,
-0x939a, 0x9397, 0x95d4, 0x95d6, 0x95d0, 0x95d5, 0x96e2, 0x96dc,
-0x96d9, 0x96db, 0x96de, 0x9724, 0x97a3, 0x97a6,
-63, 0xc340,
-0x97ad, 0x97f9, 0x984d, 0x984f, 0x984c, 0x984e, 0x9853, 0x98ba,
-0x993e, 0x993f, 0x993d, 0x992e, 0x99a5, 0x9a0e, 0x9ac1, 0x9b03,
-0x9b06, 0x9b4f, 0x9b4e, 0x9b4d, 0x9bca, 0x9bc9, 0x9bfd, 0x9bc8,
-0x9bc0, 0x9d51, 0x9d5d, 0x9d60, 0x9ee0, 0x9f15, 0x9f2c, 0x5133,
-0x56a5, 0x58de, 0x58df, 0x58e2, 0x5bf5, 0x9f90, 0x5eec, 0x61f2,
-0x61f7, 0x61f6, 0x61f5, 0x6500, 0x650f, 0x66e0, 0x66dd, 0x6ae5,
-0x6add, 0x6ada, 0x6ad3, 0x701b, 0x701f, 0x7028, 0x701a, 0x701d,
-0x7015, 0x7018, 0x7206, 0x720d, 0x7258, 0x72a2, 0x7378,
-94, 0xc3a1,
-0x737a, 0x74bd, 0x74ca, 0x74e3, 0x7587, 0x7586, 0x765f, 0x7661,
-0x77c7, 0x7919, 0x79b1, 0x7a6b, 0x7a69, 0x7c3e, 0x7c3f, 0x7c38,
-0x7c3d, 0x7c37, 0x7c40, 0x7e6b, 0x7e6d, 0x7e79, 0x7e69, 0x7e6a,
-0x7f85, 0x7e73, 0x7fb6, 0x7fb9, 0x7fb8, 0x81d8, 0x85e9, 0x85dd,
-0x85ea, 0x85d5, 0x85e4, 0x85e5, 0x85f7, 0x87fb, 0x8805, 0x880d,
-0x87f9, 0x87fe, 0x8960, 0x895f, 0x8956, 0x895e, 0x8b41, 0x8b5c,
-0x8b58, 0x8b49, 0x8b5a, 0x8b4e, 0x8b4f, 0x8b46, 0x8b59, 0x8d08,
-0x8d0a, 0x8e7c, 0x8e72, 0x8e87, 0x8e76, 0x8e6c, 0x8e7a, 0x8e74,
-0x8f54, 0x8f4e, 0x8fad, 0x908a, 0x908b, 0x91b1, 0x91ae, 0x93e1,
-0x93d1, 0x93df, 0x93c3, 0x93c8, 0x93dc, 0x93dd, 0x93d6, 0x93e2,
-0x93cd, 0x93d8, 0x93e4, 0x93d7, 0x93e8, 0x95dc, 0x96b4, 0x96e3,
-0x972a, 0x9727, 0x9761, 0x97dc, 0x97fb, 0x985e,
-63, 0xc440,
-0x9858, 0x985b, 0x98bc, 0x9945, 0x9949, 0x9a16, 0x9a19, 0x9b0d,
-0x9be8, 0x9be7, 0x9bd6, 0x9bdb, 0x9d89, 0x9d61, 0x9d72, 0x9d6a,
-0x9d6c, 0x9e92, 0x9e97, 0x9e93, 0x9eb4, 0x52f8, 0x56a8, 0x56b7,
-0x56b6, 0x56b4, 0x56bc, 0x58e4, 0x5b40, 0x5b43, 0x5b7d, 0x5bf6,
-0x5dc9, 0x61f8, 0x61fa, 0x6518, 0x6514, 0x6519, 0x66e6, 0x6727,
-0x6aec, 0x703e, 0x7030, 0x7032, 0x7210, 0x737b, 0x74cf, 0x7662,
-0x7665, 0x7926, 0x792a, 0x792c, 0x792b, 0x7ac7, 0x7af6, 0x7c4c,
-0x7c43, 0x7c4d, 0x7cef, 0x7cf0, 0x8fae, 0x7e7d, 0x7e7c,
-94, 0xc4a1,
-0x7e82, 0x7f4c, 0x8000, 0x81da, 0x8266, 0x85fb, 0x85f9, 0x8611,
-0x85fa, 0x8606, 0x860b, 0x8607, 0x860a, 0x8814, 0x8815, 0x8964,
-0x89ba, 0x89f8, 0x8b70, 0x8b6c, 0x8b66, 0x8b6f, 0x8b5f, 0x8b6b,
-0x8d0f, 0x8d0d, 0x8e89, 0x8e81, 0x8e85, 0x8e82, 0x91b4, 0x91cb,
-0x9418, 0x9403, 0x93fd, 0x95e1, 0x9730, 0x98c4, 0x9952, 0x9951,
-0x99a8, 0x9a2b, 0x9a30, 0x9a37, 0x9a35, 0x9c13, 0x9c0d, 0x9e79,
-0x9eb5, 0x9ee8, 0x9f2f, 0x9f5f, 0x9f63, 0x9f61, 0x5137, 0x5138,
-0x56c1, 0x56c0, 0x56c2, 0x5914, 0x5c6c, 0x5dcd, 0x61fc, 0x61fe,
-0x651d, 0x651c, 0x6595, 0x66e9, 0x6afb, 0x6b04, 0x6afa, 0x6bb2,
-0x704c, 0x721b, 0x72a7, 0x74d6, 0x74d4, 0x7669, 0x77d3, 0x7c50,
-0x7e8f, 0x7e8c, 0x7fbc, 0x8617, 0x862d, 0x861a, 0x8823, 0x8822,
-0x8821, 0x881f, 0x896a, 0x896c, 0x89bd, 0x8b74,
-63, 0xc540,
-0x8b77, 0x8b7d, 0x8d13, 0x8e8a, 0x8e8d, 0x8e8b, 0x8f5f, 0x8faf,
-0x91ba, 0x942e, 0x9433, 0x9435, 0x943a, 0x9438, 0x9432, 0x942b,
-0x95e2, 0x9738, 0x9739, 0x9732, 0x97ff, 0x9867, 0x9865, 0x9957,
-0x9a45, 0x9a43, 0x9a40, 0x9a3e, 0x9acf, 0x9b54, 0x9b51, 0x9c2d,
-0x9c25, 0x9daf, 0x9db4, 0x9dc2, 0x9db8, 0x9e9d, 0x9eef, 0x9f19,
-0x9f5c, 0x9f66, 0x9f67, 0x513c, 0x513b, 0x56c8, 0x56ca, 0x56c9,
-0x5b7f, 0x5dd4, 0x5dd2, 0x5f4e, 0x61ff, 0x6524, 0x6b0a, 0x6b61,
-0x7051, 0x7058, 0x7380, 0x74e4, 0x758a, 0x766e, 0x766c,
-94, 0xc5a1,
-0x79b3, 0x7c60, 0x7c5f, 0x807e, 0x807d, 0x81df, 0x8972, 0x896f,
-0x89fc, 0x8b80, 0x8d16, 0x8d17, 0x8e91, 0x8e93, 0x8f61, 0x9148,
-0x9444, 0x9451, 0x9452, 0x973d, 0x973e, 0x97c3, 0x97c1, 0x986b,
-0x9955, 0x9a55, 0x9a4d, 0x9ad2, 0x9b1a, 0x9c49, 0x9c31, 0x9c3e,
-0x9c3b, 0x9dd3, 0x9dd7, 0x9f34, 0x9f6c, 0x9f6a, 0x9f94, 0x56cc,
-0x5dd6, 0x6200, 0x6523, 0x652b, 0x652a, 0x66ec, 0x6b10, 0x74da,
-0x7aca, 0x7c64, 0x7c63, 0x7c65, 0x7e93, 0x7e96, 0x7e94, 0x81e2,
-0x8638, 0x863f, 0x8831, 0x8b8a, 0x9090, 0x908f, 0x9463, 0x9460,
-0x9464, 0x9768, 0x986f, 0x995c, 0x9a5a, 0x9a5b, 0x9a57, 0x9ad3,
-0x9ad4, 0x9ad1, 0x9c54, 0x9c57, 0x9c56, 0x9de5, 0x9e9f, 0x9ef4,
-0x56d1, 0x58e9, 0x652c, 0x705e, 0x7671, 0x7672, 0x77d7, 0x7f50,
-0x7f88, 0x8836, 0x8839, 0x8862, 0x8b93, 0x8b92,
-63, 0xc640,
-0x8b96, 0x8277, 0x8d1b, 0x91c0, 0x946a, 0x9742, 0x9748, 0x9744,
-0x97c6, 0x9870, 0x9a5f, 0x9b22, 0x9b58, 0x9c5f, 0x9df9, 0x9dfa,
-0x9e7c, 0x9e7d, 0x9f07, 0x9f77, 0x9f72, 0x5ef3, 0x6b16, 0x7063,
-0x7c6c, 0x7c6e, 0x883b, 0x89c0, 0x8ea1, 0x91c1, 0x9472, 0x9470,
-0x9871, 0x995e, 0x9ad6, 0x9b23, 0x9ecc, 0x7064, 0x77da, 0x8b9a,
-0x9477, 0x97c9, 0x9a62, 0x9a65, 0x7e9c, 0x8b9c, 0x8eaa, 0x91c5,
-0x947d, 0x947e, 0x947c, 0x9c77, 0x9c78, 0x9ef7, 0x8c54, 0x947f,
-0x9e1a, 0x7228, 0x9a6a, 0x9b31, 0x9e1b, 0x9e1e, 0x7c72,
-63, 0xc940,
-0x4e42, 0x4e5c, 0x51f5, 0x531a, 0x5382, 0x4e07, 0x4e0c, 0x4e47,
-0x4e8d, 0x56d7, 0xfa0c, 0x5c6e, 0x5f73, 0x4e0f, 0x5187, 0x4e0e,
-0x4e2e, 0x4e93, 0x4ec2, 0x4ec9, 0x4ec8, 0x5198, 0x52fc, 0x536c,
-0x53b9, 0x5720, 0x5903, 0x592c, 0x5c10, 0x5dff, 0x65e1, 0x6bb3,
-0x6bcc, 0x6c14, 0x723f, 0x4e31, 0x4e3c, 0x4ee8, 0x4edc, 0x4ee9,
-0x4ee1, 0x4edd, 0x4eda, 0x520c, 0x531c, 0x534c, 0x5722, 0x5723,
-0x5917, 0x592f, 0x5b81, 0x5b84, 0x5c12, 0x5c3b, 0x5c74, 0x5c73,
-0x5e04, 0x5e80, 0x5e82, 0x5fc9, 0x6209, 0x6250, 0x6c15,
-94, 0xc9a1,
-0x6c36, 0x6c43, 0x6c3f, 0x6c3b, 0x72ae, 0x72b0, 0x738a, 0x79b8,
-0x808a, 0x961e, 0x4f0e, 0x4f18, 0x4f2c, 0x4ef5, 0x4f14, 0x4ef1,
-0x4f00, 0x4ef7, 0x4f08, 0x4f1d, 0x4f02, 0x4f05, 0x4f22, 0x4f13,
-0x4f04, 0x4ef4, 0x4f12, 0x51b1, 0x5213, 0x5209, 0x5210, 0x52a6,
-0x5322, 0x531f, 0x534d, 0x538a, 0x5407, 0x56e1, 0x56df, 0x572e,
-0x572a, 0x5734, 0x593c, 0x5980, 0x597c, 0x5985, 0x597b, 0x597e,
-0x5977, 0x597f, 0x5b56, 0x5c15, 0x5c25, 0x5c7c, 0x5c7a, 0x5c7b,
-0x5c7e, 0x5ddf, 0x5e75, 0x5e84, 0x5f02, 0x5f1a, 0x5f74, 0x5fd5,
-0x5fd4, 0x5fcf, 0x625c, 0x625e, 0x6264, 0x6261, 0x6266, 0x6262,
-0x6259, 0x6260, 0x625a, 0x6265, 0x65ef, 0x65ee, 0x673e, 0x6739,
-0x6738, 0x673b, 0x673a, 0x673f, 0x673c, 0x6733, 0x6c18, 0x6c46,
-0x6c52, 0x6c5c, 0x6c4f, 0x6c4a, 0x6c54, 0x6c4b,
-63, 0xca40,
-0x6c4c, 0x7071, 0x725e, 0x72b4, 0x72b5, 0x738e, 0x752a, 0x767f,
-0x7a75, 0x7f51, 0x8278, 0x827c, 0x8280, 0x827d, 0x827f, 0x864d,
-0x897e, 0x9099, 0x9097, 0x9098, 0x909b, 0x9094, 0x9622, 0x9624,
-0x9620, 0x9623, 0x4f56, 0x4f3b, 0x4f62, 0x4f49, 0x4f53, 0x4f64,
-0x4f3e, 0x4f67, 0x4f52, 0x4f5f, 0x4f41, 0x4f58, 0x4f2d, 0x4f33,
-0x4f3f, 0x4f61, 0x518f, 0x51b9, 0x521c, 0x521e, 0x5221, 0x52ad,
-0x52ae, 0x5309, 0x5363, 0x5372, 0x538e, 0x538f, 0x5430, 0x5437,
-0x542a, 0x5454, 0x5445, 0x5419, 0x541c, 0x5425, 0x5418,
-94, 0xcaa1,
-0x543d, 0x544f, 0x5441, 0x5428, 0x5424, 0x5447, 0x56ee, 0x56e7,
-0x56e5, 0x5741, 0x5745, 0x574c, 0x5749, 0x574b, 0x5752, 0x5906,
-0x5940, 0x59a6, 0x5998, 0x59a0, 0x5997, 0x598e, 0x59a2, 0x5990,
-0x598f, 0x59a7, 0x59a1, 0x5b8e, 0x5b92, 0x5c28, 0x5c2a, 0x5c8d,
-0x5c8f, 0x5c88, 0x5c8b, 0x5c89, 0x5c92, 0x5c8a, 0x5c86, 0x5c93,
-0x5c95, 0x5de0, 0x5e0a, 0x5e0e, 0x5e8b, 0x5e89, 0x5e8c, 0x5e88,
-0x5e8d, 0x5f05, 0x5f1d, 0x5f78, 0x5f76, 0x5fd2, 0x5fd1, 0x5fd0,
-0x5fed, 0x5fe8, 0x5fee, 0x5ff3, 0x5fe1, 0x5fe4, 0x5fe3, 0x5ffa,
-0x5fef, 0x5ff7, 0x5ffb, 0x6000, 0x5ff4, 0x623a, 0x6283, 0x628c,
-0x628e, 0x628f, 0x6294, 0x6287, 0x6271, 0x627b, 0x627a, 0x6270,
-0x6281, 0x6288, 0x6277, 0x627d, 0x6272, 0x6274, 0x6537, 0x65f0,
-0x65f4, 0x65f3, 0x65f2, 0x65f5, 0x6745, 0x6747,
-63, 0xcb40,
-0x6759, 0x6755, 0x674c, 0x6748, 0x675d, 0x674d, 0x675a, 0x674b,
-0x6bd0, 0x6c19, 0x6c1a, 0x6c78, 0x6c67, 0x6c6b, 0x6c84, 0x6c8b,
-0x6c8f, 0x6c71, 0x6c6f, 0x6c69, 0x6c9a, 0x6c6d, 0x6c87, 0x6c95,
-0x6c9c, 0x6c66, 0x6c73, 0x6c65, 0x6c7b, 0x6c8e, 0x7074, 0x707a,
-0x7263, 0x72bf, 0x72bd, 0x72c3, 0x72c6, 0x72c1, 0x72ba, 0x72c5,
-0x7395, 0x7397, 0x7393, 0x7394, 0x7392, 0x753a, 0x7539, 0x7594,
-0x7595, 0x7681, 0x793d, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092,
-0x809c, 0x8290, 0x828f, 0x8285, 0x828e, 0x8291, 0x8293,
-94, 0xcba1,
-0x828a, 0x8283, 0x8284, 0x8c78, 0x8fc9, 0x8fbf, 0x909f, 0x90a1,
-0x90a5, 0x909e, 0x90a7, 0x90a0, 0x9630, 0x9628, 0x962f, 0x962d,
-0x4e33, 0x4f98, 0x4f7c, 0x4f85, 0x4f7d, 0x4f80, 0x4f87, 0x4f76,
-0x4f74, 0x4f89, 0x4f84, 0x4f77, 0x4f4c, 0x4f97, 0x4f6a, 0x4f9a,
-0x4f79, 0x4f81, 0x4f78, 0x4f90, 0x4f9c, 0x4f94, 0x4f9e, 0x4f92,
-0x4f82, 0x4f95, 0x4f6b, 0x4f6e, 0x519e, 0x51bc, 0x51be, 0x5235,
-0x5232, 0x5233, 0x5246, 0x5231, 0x52bc, 0x530a, 0x530b, 0x533c,
-0x5392, 0x5394, 0x5487, 0x547f, 0x5481, 0x5491, 0x5482, 0x5488,
-0x546b, 0x547a, 0x547e, 0x5465, 0x546c, 0x5474, 0x5466, 0x548d,
-0x546f, 0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, 0x56f7,
-0x56f9, 0x576f, 0x5772, 0x576d, 0x576b, 0x5771, 0x5770, 0x5776,
-0x5780, 0x5775, 0x577b, 0x5773, 0x5774, 0x5762,
-63, 0xcc40,
-0x5768, 0x577d, 0x590c, 0x5945, 0x59b5, 0x59ba, 0x59cf, 0x59ce,
-0x59b2, 0x59cc, 0x59c1, 0x59b6, 0x59bc, 0x59c3, 0x59d6, 0x59b1,
-0x59bd, 0x59c0, 0x59c8, 0x59b4, 0x59c7, 0x5b62, 0x5b65, 0x5b93,
-0x5b95, 0x5c44, 0x5c47, 0x5cae, 0x5ca4, 0x5ca0, 0x5cb5, 0x5caf,
-0x5ca8, 0x5cac, 0x5c9f, 0x5ca3, 0x5cad, 0x5ca2, 0x5caa, 0x5ca7,
-0x5c9d, 0x5ca5, 0x5cb6, 0x5cb0, 0x5ca6, 0x5e17, 0x5e14, 0x5e19,
-0x5f28, 0x5f22, 0x5f23, 0x5f24, 0x5f54, 0x5f82, 0x5f7e, 0x5f7d,
-0x5fde, 0x5fe5, 0x602d, 0x6026, 0x6019, 0x6032, 0x600b,
-94, 0xcca1,
-0x6034, 0x600a, 0x6017, 0x6033, 0x601a, 0x601e, 0x602c, 0x6022,
-0x600d, 0x6010, 0x602e, 0x6013, 0x6011, 0x600c, 0x6009, 0x601c,
-0x6214, 0x623d, 0x62ad, 0x62b4, 0x62d1, 0x62be, 0x62aa, 0x62b6,
-0x62ca, 0x62ae, 0x62b3, 0x62af, 0x62bb, 0x62a9, 0x62b0, 0x62b8,
-0x653d, 0x65a8, 0x65bb, 0x6609, 0x65fc, 0x6604, 0x6612, 0x6608,
-0x65fb, 0x6603, 0x660b, 0x660d, 0x6605, 0x65fd, 0x6611, 0x6610,
-0x66f6, 0x670a, 0x6785, 0x676c, 0x678e, 0x6792, 0x6776, 0x677b,
-0x6798, 0x6786, 0x6784, 0x6774, 0x678d, 0x678c, 0x677a, 0x679f,
-0x6791, 0x6799, 0x6783, 0x677d, 0x6781, 0x6778, 0x6779, 0x6794,
-0x6b25, 0x6b80, 0x6b7e, 0x6bde, 0x6c1d, 0x6c93, 0x6cec, 0x6ceb,
-0x6cee, 0x6cd9, 0x6cb6, 0x6cd4, 0x6cad, 0x6ce7, 0x6cb7, 0x6cd0,
-0x6cc2, 0x6cba, 0x6cc3, 0x6cc6, 0x6ced, 0x6cf2,
-63, 0xcd40,
-0x6cd2, 0x6cdd, 0x6cb4, 0x6c8a, 0x6c9d, 0x6c80, 0x6cde, 0x6cc0,
-0x6d30, 0x6ccd, 0x6cc7, 0x6cb0, 0x6cf9, 0x6ccf, 0x6ce9, 0x6cd1,
-0x7094, 0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096,
-0x7082, 0x709a, 0x7083, 0x726a, 0x72d6, 0x72cb, 0x72d8, 0x72c9,
-0x72dc, 0x72d2, 0x72d4, 0x72da, 0x72cc, 0x72d1, 0x73a4, 0x73a1,
-0x73ad, 0x73a6, 0x73a2, 0x73a0, 0x73ac, 0x739d, 0x74dd, 0x74e8,
-0x753f, 0x7540, 0x753e, 0x758c, 0x7598, 0x76af, 0x76f3, 0x76f1,
-0x76f0, 0x76f5, 0x77f8, 0x77fc, 0x77f9, 0x77fb, 0x77fa,
-94, 0xcda1,
-0x77f7, 0x7942, 0x793f, 0x79c5, 0x7a78, 0x7a7b, 0x7afb, 0x7c75,
-0x7cfd, 0x8035, 0x808f, 0x80ae, 0x80a3, 0x80b8, 0x80b5, 0x80ad,
-0x8220, 0x82a0, 0x82c0, 0x82ab, 0x829a, 0x8298, 0x829b, 0x82b5,
-0x82a7, 0x82ae, 0x82bc, 0x829e, 0x82ba, 0x82b4, 0x82a8, 0x82a1,
-0x82a9, 0x82c2, 0x82a4, 0x82c3, 0x82b6, 0x82a2, 0x8670, 0x866f,
-0x866d, 0x866e, 0x8c56, 0x8fd2, 0x8fcb, 0x8fd3, 0x8fcd, 0x8fd6,
-0x8fd5, 0x8fd7, 0x90b2, 0x90b4, 0x90af, 0x90b3, 0x90b0, 0x9639,
-0x963d, 0x963c, 0x963a, 0x9643, 0x4fcd, 0x4fc5, 0x4fd3, 0x4fb2,
-0x4fc9, 0x4fcb, 0x4fc1, 0x4fd4, 0x4fdc, 0x4fd9, 0x4fbb, 0x4fb3,
-0x4fdb, 0x4fc7, 0x4fd6, 0x4fba, 0x4fc0, 0x4fb9, 0x4fec, 0x5244,
-0x5249, 0x52c0, 0x52c2, 0x533d, 0x537c, 0x5397, 0x5396, 0x5399,
-0x5398, 0x54ba, 0x54a1, 0x54ad, 0x54a5, 0x54cf,
-63, 0xce40,
-0x54c3, 0x830d, 0x54b7, 0x54ae, 0x54d6, 0x54b6, 0x54c5, 0x54c6,
-0x54a0, 0x5470, 0x54bc, 0x54a2, 0x54be, 0x5472, 0x54de, 0x54b0,
-0x57b5, 0x579e, 0x579f, 0x57a4, 0x578c, 0x5797, 0x579d, 0x579b,
-0x5794, 0x5798, 0x578f, 0x5799, 0x57a5, 0x579a, 0x5795, 0x58f4,
-0x590d, 0x5953, 0x59e1, 0x59de, 0x59ee, 0x5a00, 0x59f1, 0x59dd,
-0x59fa, 0x59fd, 0x59fc, 0x59f6, 0x59e4, 0x59f2, 0x59f7, 0x59db,
-0x59e9, 0x59f3, 0x59f5, 0x59e0, 0x59fe, 0x59f4, 0x59ed, 0x5ba8,
-0x5c4c, 0x5cd0, 0x5cd8, 0x5ccc, 0x5cd7, 0x5ccb, 0x5cdb,
-94, 0xcea1,
-0x5cde, 0x5cda, 0x5cc9, 0x5cc7, 0x5cca, 0x5cd6, 0x5cd3, 0x5cd4,
-0x5ccf, 0x5cc8, 0x5cc6, 0x5cce, 0x5cdf, 0x5cf8, 0x5df9, 0x5e21,
-0x5e22, 0x5e23, 0x5e20, 0x5e24, 0x5eb0, 0x5ea4, 0x5ea2, 0x5e9b,
-0x5ea3, 0x5ea5, 0x5f07, 0x5f2e, 0x5f56, 0x5f86, 0x6037, 0x6039,
-0x6054, 0x6072, 0x605e, 0x6045, 0x6053, 0x6047, 0x6049, 0x605b,
-0x604c, 0x6040, 0x6042, 0x605f, 0x6024, 0x6044, 0x6058, 0x6066,
-0x606e, 0x6242, 0x6243, 0x62cf, 0x630d, 0x630b, 0x62f5, 0x630e,
-0x6303, 0x62eb, 0x62f9, 0x630f, 0x630c, 0x62f8, 0x62f6, 0x6300,
-0x6313, 0x6314, 0x62fa, 0x6315, 0x62fb, 0x62f0, 0x6541, 0x6543,
-0x65aa, 0x65bf, 0x6636, 0x6621, 0x6632, 0x6635, 0x661c, 0x6626,
-0x6622, 0x6633, 0x662b, 0x663a, 0x661d, 0x6634, 0x6639, 0x662e,
-0x670f, 0x6710, 0x67c1, 0x67f2, 0x67c8, 0x67ba,
-63, 0xcf40,
-0x67dc, 0x67bb, 0x67f8, 0x67d8, 0x67c0, 0x67b7, 0x67c5, 0x67eb,
-0x67e4, 0x67df, 0x67b5, 0x67cd, 0x67b3, 0x67f7, 0x67f6, 0x67ee,
-0x67e3, 0x67c2, 0x67b9, 0x67ce, 0x67e7, 0x67f0, 0x67b2, 0x67fc,
-0x67c6, 0x67ed, 0x67cc, 0x67ae, 0x67e6, 0x67db, 0x67fa, 0x67c9,
-0x67ca, 0x67c3, 0x67ea, 0x67cb, 0x6b28, 0x6b82, 0x6b84, 0x6bb6,
-0x6bd6, 0x6bd8, 0x6be0, 0x6c20, 0x6c21, 0x6d28, 0x6d34, 0x6d2d,
-0x6d1f, 0x6d3c, 0x6d3f, 0x6d12, 0x6d0a, 0x6cda, 0x6d33, 0x6d04,
-0x6d19, 0x6d3a, 0x6d1a, 0x6d11, 0x6d00, 0x6d1d, 0x6d42,
-94, 0xcfa1,
-0x6d01, 0x6d18, 0x6d37, 0x6d03, 0x6d0f, 0x6d40, 0x6d07, 0x6d20,
-0x6d2c, 0x6d08, 0x6d22, 0x6d09, 0x6d10, 0x70b7, 0x709f, 0x70be,
-0x70b1, 0x70b0, 0x70a1, 0x70b4, 0x70b5, 0x70a9, 0x7241, 0x7249,
-0x724a, 0x726c, 0x7270, 0x7273, 0x726e, 0x72ca, 0x72e4, 0x72e8,
-0x72eb, 0x72df, 0x72ea, 0x72e6, 0x72e3, 0x7385, 0x73cc, 0x73c2,
-0x73c8, 0x73c5, 0x73b9, 0x73b6, 0x73b5, 0x73b4, 0x73eb, 0x73bf,
-0x73c7, 0x73be, 0x73c3, 0x73c6, 0x73b8, 0x73cb, 0x74ec, 0x74ee,
-0x752e, 0x7547, 0x7548, 0x75a7, 0x75aa, 0x7679, 0x76c4, 0x7708,
-0x7703, 0x7704, 0x7705, 0x770a, 0x76f7, 0x76fb, 0x76fa, 0x77e7,
-0x77e8, 0x7806, 0x7811, 0x7812, 0x7805, 0x7810, 0x780f, 0x780e,
-0x7809, 0x7803, 0x7813, 0x794a, 0x794c, 0x794b, 0x7945, 0x7944,
-0x79d5, 0x79cd, 0x79cf, 0x79d6, 0x79ce, 0x7a80,
-63, 0xd040,
-0x7a7e, 0x7ad1, 0x7b00, 0x7b01, 0x7c7a, 0x7c78, 0x7c79, 0x7c7f,
-0x7c80, 0x7c81, 0x7d03, 0x7d08, 0x7d01, 0x7f58, 0x7f91, 0x7f8d,
-0x7fbe, 0x8007, 0x800e, 0x800f, 0x8014, 0x8037, 0x80d8, 0x80c7,
-0x80e0, 0x80d1, 0x80c8, 0x80c2, 0x80d0, 0x80c5, 0x80e3, 0x80d9,
-0x80dc, 0x80ca, 0x80d5, 0x80c9, 0x80cf, 0x80d7, 0x80e6, 0x80cd,
-0x81ff, 0x8221, 0x8294, 0x82d9, 0x82fe, 0x82f9, 0x8307, 0x82e8,
-0x8300, 0x82d5, 0x833a, 0x82eb, 0x82d6, 0x82f4, 0x82ec, 0x82e1,
-0x82f2, 0x82f5, 0x830c, 0x82fb, 0x82f6, 0x82f0, 0x82ea,
-94, 0xd0a1,
-0x82e4, 0x82e0, 0x82fa, 0x82f3, 0x82ed, 0x8677, 0x8674, 0x867c,
-0x8673, 0x8841, 0x884e, 0x8867, 0x886a, 0x8869, 0x89d3, 0x8a04,
-0x8a07, 0x8d72, 0x8fe3, 0x8fe1, 0x8fee, 0x8fe0, 0x90f1, 0x90bd,
-0x90bf, 0x90d5, 0x90c5, 0x90be, 0x90c7, 0x90cb, 0x90c8, 0x91d4,
-0x91d3, 0x9654, 0x964f, 0x9651, 0x9653, 0x964a, 0x964e, 0x501e,
-0x5005, 0x5007, 0x5013, 0x5022, 0x5030, 0x501b, 0x4ff5, 0x4ff4,
-0x5033, 0x5037, 0x502c, 0x4ff6, 0x4ff7, 0x5017, 0x501c, 0x5020,
-0x5027, 0x5035, 0x502f, 0x5031, 0x500e, 0x515a, 0x5194, 0x5193,
-0x51ca, 0x51c4, 0x51c5, 0x51c8, 0x51ce, 0x5261, 0x525a, 0x5252,
-0x525e, 0x525f, 0x5255, 0x5262, 0x52cd, 0x530e, 0x539e, 0x5526,
-0x54e2, 0x5517, 0x5512, 0x54e7, 0x54f3, 0x54e4, 0x551a, 0x54ff,
-0x5504, 0x5508, 0x54eb, 0x5511, 0x5505, 0x54f1,
-63, 0xd140,
-0x550a, 0x54fb, 0x54f7, 0x54f8, 0x54e0, 0x550e, 0x5503, 0x550b,
-0x5701, 0x5702, 0x57cc, 0x5832, 0x57d5, 0x57d2, 0x57ba, 0x57c6,
-0x57bd, 0x57bc, 0x57b8, 0x57b6, 0x57bf, 0x57c7, 0x57d0, 0x57b9,
-0x57c1, 0x590e, 0x594a, 0x5a19, 0x5a16, 0x5a2d, 0x5a2e, 0x5a15,
-0x5a0f, 0x5a17, 0x5a0a, 0x5a1e, 0x5a33, 0x5b6c, 0x5ba7, 0x5bad,
-0x5bac, 0x5c03, 0x5c56, 0x5c54, 0x5cec, 0x5cff, 0x5cee, 0x5cf1,
-0x5cf7, 0x5d00, 0x5cf9, 0x5e29, 0x5e28, 0x5ea8, 0x5eae, 0x5eaa,
-0x5eac, 0x5f33, 0x5f30, 0x5f67, 0x605d, 0x605a, 0x6067,
-94, 0xd1a1,
-0x6041, 0x60a2, 0x6088, 0x6080, 0x6092, 0x6081, 0x609d, 0x6083,
-0x6095, 0x609b, 0x6097, 0x6087, 0x609c, 0x608e, 0x6219, 0x6246,
-0x62f2, 0x6310, 0x6356, 0x632c, 0x6344, 0x6345, 0x6336, 0x6343,
-0x63e4, 0x6339, 0x634b, 0x634a, 0x633c, 0x6329, 0x6341, 0x6334,
-0x6358, 0x6354, 0x6359, 0x632d, 0x6347, 0x6333, 0x635a, 0x6351,
-0x6338, 0x6357, 0x6340, 0x6348, 0x654a, 0x6546, 0x65c6, 0x65c3,
-0x65c4, 0x65c2, 0x664a, 0x665f, 0x6647, 0x6651, 0x6712, 0x6713,
-0x681f, 0x681a, 0x6849, 0x6832, 0x6833, 0x683b, 0x684b, 0x684f,
-0x6816, 0x6831, 0x681c, 0x6835, 0x682b, 0x682d, 0x682f, 0x684e,
-0x6844, 0x6834, 0x681d, 0x6812, 0x6814, 0x6826, 0x6828, 0x682e,
-0x684d, 0x683a, 0x6825, 0x6820, 0x6b2c, 0x6b2f, 0x6b2d, 0x6b31,
-0x6b34, 0x6b6d, 0x8082, 0x6b88, 0x6be6, 0x6be4,
-63, 0xd240,
-0x6be8, 0x6be3, 0x6be2, 0x6be7, 0x6c25, 0x6d7a, 0x6d63, 0x6d64,
-0x6d76, 0x6d0d, 0x6d61, 0x6d92, 0x6d58, 0x6d62, 0x6d6d, 0x6d6f,
-0x6d91, 0x6d8d, 0x6def, 0x6d7f, 0x6d86, 0x6d5e, 0x6d67, 0x6d60,
-0x6d97, 0x6d70, 0x6d7c, 0x6d5f, 0x6d82, 0x6d98, 0x6d2f, 0x6d68,
-0x6d8b, 0x6d7e, 0x6d80, 0x6d84, 0x6d16, 0x6d83, 0x6d7b, 0x6d7d,
-0x6d75, 0x6d90, 0x70dc, 0x70d3, 0x70d1, 0x70dd, 0x70cb, 0x7f39,
-0x70e2, 0x70d7, 0x70d2, 0x70de, 0x70e0, 0x70d4, 0x70cd, 0x70c5,
-0x70c6, 0x70c7, 0x70da, 0x70ce, 0x70e1, 0x7242, 0x7278,
-94, 0xd2a1,
-0x7277, 0x7276, 0x7300, 0x72fa, 0x72f4, 0x72fe, 0x72f6, 0x72f3,
-0x72fb, 0x7301, 0x73d3, 0x73d9, 0x73e5, 0x73d6, 0x73bc, 0x73e7,
-0x73e3, 0x73e9, 0x73dc, 0x73d2, 0x73db, 0x73d4, 0x73dd, 0x73da,
-0x73d7, 0x73d8, 0x73e8, 0x74de, 0x74df, 0x74f4, 0x74f5, 0x7521,
-0x755b, 0x755f, 0x75b0, 0x75c1, 0x75bb, 0x75c4, 0x75c0, 0x75bf,
-0x75b6, 0x75ba, 0x768a, 0x76c9, 0x771d, 0x771b, 0x7710, 0x7713,
-0x7712, 0x7723, 0x7711, 0x7715, 0x7719, 0x771a, 0x7722, 0x7727,
-0x7823, 0x782c, 0x7822, 0x7835, 0x782f, 0x7828, 0x782e, 0x782b,
-0x7821, 0x7829, 0x7833, 0x782a, 0x7831, 0x7954, 0x795b, 0x794f,
-0x795c, 0x7953, 0x7952, 0x7951, 0x79eb, 0x79ec, 0x79e0, 0x79ee,
-0x79ed, 0x79ea, 0x79dc, 0x79de, 0x79dd, 0x7a86, 0x7a89, 0x7a85,
-0x7a8b, 0x7a8c, 0x7a8a, 0x7a87, 0x7ad8, 0x7b10,
-63, 0xd340,
-0x7b04, 0x7b13, 0x7b05, 0x7b0f, 0x7b08, 0x7b0a, 0x7b0e, 0x7b09,
-0x7b12, 0x7c84, 0x7c91, 0x7c8a, 0x7c8c, 0x7c88, 0x7c8d, 0x7c85,
-0x7d1e, 0x7d1d, 0x7d11, 0x7d0e, 0x7d18, 0x7d16, 0x7d13, 0x7d1f,
-0x7d12, 0x7d0f, 0x7d0c, 0x7f5c, 0x7f61, 0x7f5e, 0x7f60, 0x7f5d,
-0x7f5b, 0x7f96, 0x7f92, 0x7fc3, 0x7fc2, 0x7fc0, 0x8016, 0x803e,
-0x8039, 0x80fa, 0x80f2, 0x80f9, 0x80f5, 0x8101, 0x80fb, 0x8100,
-0x8201, 0x822f, 0x8225, 0x8333, 0x832d, 0x8344, 0x8319, 0x8351,
-0x8325, 0x8356, 0x833f, 0x8341, 0x8326, 0x831c, 0x8322,
-94, 0xd3a1,
-0x8342, 0x834e, 0x831b, 0x832a, 0x8308, 0x833c, 0x834d, 0x8316,
-0x8324, 0x8320, 0x8337, 0x832f, 0x8329, 0x8347, 0x8345, 0x834c,
-0x8353, 0x831e, 0x832c, 0x834b, 0x8327, 0x8348, 0x8653, 0x8652,
-0x86a2, 0x86a8, 0x8696, 0x868d, 0x8691, 0x869e, 0x8687, 0x8697,
-0x8686, 0x868b, 0x869a, 0x8685, 0x86a5, 0x8699, 0x86a1, 0x86a7,
-0x8695, 0x8698, 0x868e, 0x869d, 0x8690, 0x8694, 0x8843, 0x8844,
-0x886d, 0x8875, 0x8876, 0x8872, 0x8880, 0x8871, 0x887f, 0x886f,
-0x8883, 0x887e, 0x8874, 0x887c, 0x8a12, 0x8c47, 0x8c57, 0x8c7b,
-0x8ca4, 0x8ca3, 0x8d76, 0x8d78, 0x8db5, 0x8db7, 0x8db6, 0x8ed1,
-0x8ed3, 0x8ffe, 0x8ff5, 0x9002, 0x8fff, 0x8ffb, 0x9004, 0x8ffc,
-0x8ff6, 0x90d6, 0x90e0, 0x90d9, 0x90da, 0x90e3, 0x90df, 0x90e5,
-0x90d8, 0x90db, 0x90d7, 0x90dc, 0x90e4, 0x9150,
-63, 0xd440,
-0x914e, 0x914f, 0x91d5, 0x91e2, 0x91da, 0x965c, 0x965f, 0x96bc,
-0x98e3, 0x9adf, 0x9b2f, 0x4e7f, 0x5070, 0x506a, 0x5061, 0x505e,
-0x5060, 0x5053, 0x504b, 0x505d, 0x5072, 0x5048, 0x504d, 0x5041,
-0x505b, 0x504a, 0x5062, 0x5015, 0x5045, 0x505f, 0x5069, 0x506b,
-0x5063, 0x5064, 0x5046, 0x5040, 0x506e, 0x5073, 0x5057, 0x5051,
-0x51d0, 0x526b, 0x526d, 0x526c, 0x526e, 0x52d6, 0x52d3, 0x532d,
-0x539c, 0x5575, 0x5576, 0x553c, 0x554d, 0x5550, 0x5534, 0x552a,
-0x5551, 0x5562, 0x5536, 0x5535, 0x5530, 0x5552, 0x5545,
-94, 0xd4a1,
-0x550c, 0x5532, 0x5565, 0x554e, 0x5539, 0x5548, 0x552d, 0x553b,
-0x5540, 0x554b, 0x570a, 0x5707, 0x57fb, 0x5814, 0x57e2, 0x57f6,
-0x57dc, 0x57f4, 0x5800, 0x57ed, 0x57fd, 0x5808, 0x57f8, 0x580b,
-0x57f3, 0x57cf, 0x5807, 0x57ee, 0x57e3, 0x57f2, 0x57e5, 0x57ec,
-0x57e1, 0x580e, 0x57fc, 0x5810, 0x57e7, 0x5801, 0x580c, 0x57f1,
-0x57e9, 0x57f0, 0x580d, 0x5804, 0x595c, 0x5a60, 0x5a58, 0x5a55,
-0x5a67, 0x5a5e, 0x5a38, 0x5a35, 0x5a6d, 0x5a50, 0x5a5f, 0x5a65,
-0x5a6c, 0x5a53, 0x5a64, 0x5a57, 0x5a43, 0x5a5d, 0x5a52, 0x5a44,
-0x5a5b, 0x5a48, 0x5a8e, 0x5a3e, 0x5a4d, 0x5a39, 0x5a4c, 0x5a70,
-0x5a69, 0x5a47, 0x5a51, 0x5a56, 0x5a42, 0x5a5c, 0x5b72, 0x5b6e,
-0x5bc1, 0x5bc0, 0x5c59, 0x5d1e, 0x5d0b, 0x5d1d, 0x5d1a, 0x5d20,
-0x5d0c, 0x5d28, 0x5d0d, 0x5d26, 0x5d25, 0x5d0f,
-63, 0xd540,
-0x5d30, 0x5d12, 0x5d23, 0x5d1f, 0x5d2e, 0x5e3e, 0x5e34, 0x5eb1,
-0x5eb4, 0x5eb9, 0x5eb2, 0x5eb3, 0x5f36, 0x5f38, 0x5f9b, 0x5f96,
-0x5f9f, 0x608a, 0x6090, 0x6086, 0x60be, 0x60b0, 0x60ba, 0x60d3,
-0x60d4, 0x60cf, 0x60e4, 0x60d9, 0x60dd, 0x60c8, 0x60b1, 0x60db,
-0x60b7, 0x60ca, 0x60bf, 0x60c3, 0x60cd, 0x60c0, 0x6332, 0x6365,
-0x638a, 0x6382, 0x637d, 0x63bd, 0x639e, 0x63ad, 0x639d, 0x6397,
-0x63ab, 0x638e, 0x636f, 0x6387, 0x6390, 0x636e, 0x63af, 0x6375,
-0x639c, 0x636d, 0x63ae, 0x637c, 0x63a4, 0x633b, 0x639f,
-94, 0xd5a1,
-0x6378, 0x6385, 0x6381, 0x6391, 0x638d, 0x6370, 0x6553, 0x65cd,
-0x6665, 0x6661, 0x665b, 0x6659, 0x665c, 0x6662, 0x6718, 0x6879,
-0x6887, 0x6890, 0x689c, 0x686d, 0x686e, 0x68ae, 0x68ab, 0x6956,
-0x686f, 0x68a3, 0x68ac, 0x68a9, 0x6875, 0x6874, 0x68b2, 0x688f,
-0x6877, 0x6892, 0x687c, 0x686b, 0x6872, 0x68aa, 0x6880, 0x6871,
-0x687e, 0x689b, 0x6896, 0x688b, 0x68a0, 0x6889, 0x68a4, 0x6878,
-0x687b, 0x6891, 0x688c, 0x688a, 0x687d, 0x6b36, 0x6b33, 0x6b37,
-0x6b38, 0x6b91, 0x6b8f, 0x6b8d, 0x6b8e, 0x6b8c, 0x6c2a, 0x6dc0,
-0x6dab, 0x6db4, 0x6db3, 0x6e74, 0x6dac, 0x6de9, 0x6de2, 0x6db7,
-0x6df6, 0x6dd4, 0x6e00, 0x6dc8, 0x6de0, 0x6ddf, 0x6dd6, 0x6dbe,
-0x6de5, 0x6ddc, 0x6ddd, 0x6ddb, 0x6df4, 0x6dca, 0x6dbd, 0x6ded,
-0x6df0, 0x6dba, 0x6dd5, 0x6dc2, 0x6dcf, 0x6dc9,
-63, 0xd640,
-0x6dd0, 0x6df2, 0x6dd3, 0x6dfd, 0x6dd7, 0x6dcd, 0x6de3, 0x6dbb,
-0x70fa, 0x710d, 0x70f7, 0x7117, 0x70f4, 0x710c, 0x70f0, 0x7104,
-0x70f3, 0x7110, 0x70fc, 0x70ff, 0x7106, 0x7113, 0x7100, 0x70f8,
-0x70f6, 0x710b, 0x7102, 0x710e, 0x727e, 0x727b, 0x727c, 0x727f,
-0x731d, 0x7317, 0x7307, 0x7311, 0x7318, 0x730a, 0x7308, 0x72ff,
-0x730f, 0x731e, 0x7388, 0x73f6, 0x73f8, 0x73f5, 0x7404, 0x7401,
-0x73fd, 0x7407, 0x7400, 0x73fa, 0x73fc, 0x73ff, 0x740c, 0x740b,
-0x73f4, 0x7408, 0x7564, 0x7563, 0x75ce, 0x75d2, 0x75cf,
-94, 0xd6a1,
-0x75cb, 0x75cc, 0x75d1, 0x75d0, 0x768f, 0x7689, 0x76d3, 0x7739,
-0x772f, 0x772d, 0x7731, 0x7732, 0x7734, 0x7733, 0x773d, 0x7725,
-0x773b, 0x7735, 0x7848, 0x7852, 0x7849, 0x784d, 0x784a, 0x784c,
-0x7826, 0x7845, 0x7850, 0x7964, 0x7967, 0x7969, 0x796a, 0x7963,
-0x796b, 0x7961, 0x79bb, 0x79fa, 0x79f8, 0x79f6, 0x79f7, 0x7a8f,
-0x7a94, 0x7a90, 0x7b35, 0x7b47, 0x7b34, 0x7b25, 0x7b30, 0x7b22,
-0x7b24, 0x7b33, 0x7b18, 0x7b2a, 0x7b1d, 0x7b31, 0x7b2b, 0x7b2d,
-0x7b2f, 0x7b32, 0x7b38, 0x7b1a, 0x7b23, 0x7c94, 0x7c98, 0x7c96,
-0x7ca3, 0x7d35, 0x7d3d, 0x7d38, 0x7d36, 0x7d3a, 0x7d45, 0x7d2c,
-0x7d29, 0x7d41, 0x7d47, 0x7d3e, 0x7d3f, 0x7d4a, 0x7d3b, 0x7d28,
-0x7f63, 0x7f95, 0x7f9c, 0x7f9d, 0x7f9b, 0x7fca, 0x7fcb, 0x7fcd,
-0x7fd0, 0x7fd1, 0x7fc7, 0x7fcf, 0x7fc9, 0x801f,
-63, 0xd740,
-0x801e, 0x801b, 0x8047, 0x8043, 0x8048, 0x8118, 0x8125, 0x8119,
-0x811b, 0x812d, 0x811f, 0x812c, 0x811e, 0x8121, 0x8115, 0x8127,
-0x811d, 0x8122, 0x8211, 0x8238, 0x8233, 0x823a, 0x8234, 0x8232,
-0x8274, 0x8390, 0x83a3, 0x83a8, 0x838d, 0x837a, 0x8373, 0x83a4,
-0x8374, 0x838f, 0x8381, 0x8395, 0x8399, 0x8375, 0x8394, 0x83a9,
-0x837d, 0x8383, 0x838c, 0x839d, 0x839b, 0x83aa, 0x838b, 0x837e,
-0x83a5, 0x83af, 0x8388, 0x8397, 0x83b0, 0x837f, 0x83a6, 0x8387,
-0x83ae, 0x8376, 0x839a, 0x8659, 0x8656, 0x86bf, 0x86b7,
-94, 0xd7a1,
-0x86c2, 0x86c1, 0x86c5, 0x86ba, 0x86b0, 0x86c8, 0x86b9, 0x86b3,
-0x86b8, 0x86cc, 0x86b4, 0x86bb, 0x86bc, 0x86c3, 0x86bd, 0x86be,
-0x8852, 0x8889, 0x8895, 0x88a8, 0x88a2, 0x88aa, 0x889a, 0x8891,
-0x88a1, 0x889f, 0x8898, 0x88a7, 0x8899, 0x889b, 0x8897, 0x88a4,
-0x88ac, 0x888c, 0x8893, 0x888e, 0x8982, 0x89d6, 0x89d9, 0x89d5,
-0x8a30, 0x8a27, 0x8a2c, 0x8a1e, 0x8c39, 0x8c3b, 0x8c5c, 0x8c5d,
-0x8c7d, 0x8ca5, 0x8d7d, 0x8d7b, 0x8d79, 0x8dbc, 0x8dc2, 0x8db9,
-0x8dbf, 0x8dc1, 0x8ed8, 0x8ede, 0x8edd, 0x8edc, 0x8ed7, 0x8ee0,
-0x8ee1, 0x9024, 0x900b, 0x9011, 0x901c, 0x900c, 0x9021, 0x90ef,
-0x90ea, 0x90f0, 0x90f4, 0x90f2, 0x90f3, 0x90d4, 0x90eb, 0x90ec,
-0x90e9, 0x9156, 0x9158, 0x915a, 0x9153, 0x9155, 0x91ec, 0x91f4,
-0x91f1, 0x91f3, 0x91f8, 0x91e4, 0x91f9, 0x91ea,
-63, 0xd840,
-0x91eb, 0x91f7, 0x91e8, 0x91ee, 0x957a, 0x9586, 0x9588, 0x967c,
-0x966d, 0x966b, 0x9671, 0x966f, 0x96bf, 0x976a, 0x9804, 0x98e5,
-0x9997, 0x509b, 0x5095, 0x5094, 0x509e, 0x508b, 0x50a3, 0x5083,
-0x508c, 0x508e, 0x509d, 0x5068, 0x509c, 0x5092, 0x5082, 0x5087,
-0x515f, 0x51d4, 0x5312, 0x5311, 0x53a4, 0x53a7, 0x5591, 0x55a8,
-0x55a5, 0x55ad, 0x5577, 0x5645, 0x55a2, 0x5593, 0x5588, 0x558f,
-0x55b5, 0x5581, 0x55a3, 0x5592, 0x55a4, 0x557d, 0x558c, 0x55a6,
-0x557f, 0x5595, 0x55a1, 0x558e, 0x570c, 0x5829, 0x5837,
-94, 0xd8a1,
-0x5819, 0x581e, 0x5827, 0x5823, 0x5828, 0x57f5, 0x5848, 0x5825,
-0x581c, 0x581b, 0x5833, 0x583f, 0x5836, 0x582e, 0x5839, 0x5838,
-0x582d, 0x582c, 0x583b, 0x5961, 0x5aaf, 0x5a94, 0x5a9f, 0x5a7a,
-0x5aa2, 0x5a9e, 0x5a78, 0x5aa6, 0x5a7c, 0x5aa5, 0x5aac, 0x5a95,
-0x5aae, 0x5a37, 0x5a84, 0x5a8a, 0x5a97, 0x5a83, 0x5a8b, 0x5aa9,
-0x5a7b, 0x5a7d, 0x5a8c, 0x5a9c, 0x5a8f, 0x5a93, 0x5a9d, 0x5bea,
-0x5bcd, 0x5bcb, 0x5bd4, 0x5bd1, 0x5bca, 0x5bce, 0x5c0c, 0x5c30,
-0x5d37, 0x5d43, 0x5d6b, 0x5d41, 0x5d4b, 0x5d3f, 0x5d35, 0x5d51,
-0x5d4e, 0x5d55, 0x5d33, 0x5d3a, 0x5d52, 0x5d3d, 0x5d31, 0x5d59,
-0x5d42, 0x5d39, 0x5d49, 0x5d38, 0x5d3c, 0x5d32, 0x5d36, 0x5d40,
-0x5d45, 0x5e44, 0x5e41, 0x5f58, 0x5fa6, 0x5fa5, 0x5fab, 0x60c9,
-0x60b9, 0x60cc, 0x60e2, 0x60ce, 0x60c4, 0x6114,
-63, 0xd940,
-0x60f2, 0x610a, 0x6116, 0x6105, 0x60f5, 0x6113, 0x60f8, 0x60fc,
-0x60fe, 0x60c1, 0x6103, 0x6118, 0x611d, 0x6110, 0x60ff, 0x6104,
-0x610b, 0x624a, 0x6394, 0x63b1, 0x63b0, 0x63ce, 0x63e5, 0x63e8,
-0x63ef, 0x63c3, 0x649d, 0x63f3, 0x63ca, 0x63e0, 0x63f6, 0x63d5,
-0x63f2, 0x63f5, 0x6461, 0x63df, 0x63be, 0x63dd, 0x63dc, 0x63c4,
-0x63d8, 0x63d3, 0x63c2, 0x63c7, 0x63cc, 0x63cb, 0x63c8, 0x63f0,
-0x63d7, 0x63d9, 0x6532, 0x6567, 0x656a, 0x6564, 0x655c, 0x6568,
-0x6565, 0x658c, 0x659d, 0x659e, 0x65ae, 0x65d0, 0x65d2,
-94, 0xd9a1,
-0x667c, 0x666c, 0x667b, 0x6680, 0x6671, 0x6679, 0x666a, 0x6672,
-0x6701, 0x690c, 0x68d3, 0x6904, 0x68dc, 0x692a, 0x68ec, 0x68ea,
-0x68f1, 0x690f, 0x68d6, 0x68f7, 0x68eb, 0x68e4, 0x68f6, 0x6913,
-0x6910, 0x68f3, 0x68e1, 0x6907, 0x68cc, 0x6908, 0x6970, 0x68b4,
-0x6911, 0x68ef, 0x68c6, 0x6914, 0x68f8, 0x68d0, 0x68fd, 0x68fc,
-0x68e8, 0x690b, 0x690a, 0x6917, 0x68ce, 0x68c8, 0x68dd, 0x68de,
-0x68e6, 0x68f4, 0x68d1, 0x6906, 0x68d4, 0x68e9, 0x6915, 0x6925,
-0x68c7, 0x6b39, 0x6b3b, 0x6b3f, 0x6b3c, 0x6b94, 0x6b97, 0x6b99,
-0x6b95, 0x6bbd, 0x6bf0, 0x6bf2, 0x6bf3, 0x6c30, 0x6dfc, 0x6e46,
-0x6e47, 0x6e1f, 0x6e49, 0x6e88, 0x6e3c, 0x6e3d, 0x6e45, 0x6e62,
-0x6e2b, 0x6e3f, 0x6e41, 0x6e5d, 0x6e73, 0x6e1c, 0x6e33, 0x6e4b,
-0x6e40, 0x6e51, 0x6e3b, 0x6e03, 0x6e2e, 0x6e5e,
-63, 0xda40,
-0x6e68, 0x6e5c, 0x6e61, 0x6e31, 0x6e28, 0x6e60, 0x6e71, 0x6e6b,
-0x6e39, 0x6e22, 0x6e30, 0x6e53, 0x6e65, 0x6e27, 0x6e78, 0x6e64,
-0x6e77, 0x6e55, 0x6e79, 0x6e52, 0x6e66, 0x6e35, 0x6e36, 0x6e5a,
-0x7120, 0x711e, 0x712f, 0x70fb, 0x712e, 0x7131, 0x7123, 0x7125,
-0x7122, 0x7132, 0x711f, 0x7128, 0x713a, 0x711b, 0x724b, 0x725a,
-0x7288, 0x7289, 0x7286, 0x7285, 0x728b, 0x7312, 0x730b, 0x7330,
-0x7322, 0x7331, 0x7333, 0x7327, 0x7332, 0x732d, 0x7326, 0x7323,
-0x7335, 0x730c, 0x742e, 0x742c, 0x7430, 0x742b, 0x7416,
-94, 0xdaa1,
-0x741a, 0x7421, 0x742d, 0x7431, 0x7424, 0x7423, 0x741d, 0x7429,
-0x7420, 0x7432, 0x74fb, 0x752f, 0x756f, 0x756c, 0x75e7, 0x75da,
-0x75e1, 0x75e6, 0x75dd, 0x75df, 0x75e4, 0x75d7, 0x7695, 0x7692,
-0x76da, 0x7746, 0x7747, 0x7744, 0x774d, 0x7745, 0x774a, 0x774e,
-0x774b, 0x774c, 0x77de, 0x77ec, 0x7860, 0x7864, 0x7865, 0x785c,
-0x786d, 0x7871, 0x786a, 0x786e, 0x7870, 0x7869, 0x7868, 0x785e,
-0x7862, 0x7974, 0x7973, 0x7972, 0x7970, 0x7a02, 0x7a0a, 0x7a03,
-0x7a0c, 0x7a04, 0x7a99, 0x7ae6, 0x7ae4, 0x7b4a, 0x7b3b, 0x7b44,
-0x7b48, 0x7b4c, 0x7b4e, 0x7b40, 0x7b58, 0x7b45, 0x7ca2, 0x7c9e,
-0x7ca8, 0x7ca1, 0x7d58, 0x7d6f, 0x7d63, 0x7d53, 0x7d56, 0x7d67,
-0x7d6a, 0x7d4f, 0x7d6d, 0x7d5c, 0x7d6b, 0x7d52, 0x7d54, 0x7d69,
-0x7d51, 0x7d5f, 0x7d4e, 0x7f3e, 0x7f3f, 0x7f65,
-63, 0xdb40,
-0x7f66, 0x7fa2, 0x7fa0, 0x7fa1, 0x7fd7, 0x8051, 0x804f, 0x8050,
-0x80fe, 0x80d4, 0x8143, 0x814a, 0x8152, 0x814f, 0x8147, 0x813d,
-0x814d, 0x813a, 0x81e6, 0x81ee, 0x81f7, 0x81f8, 0x81f9, 0x8204,
-0x823c, 0x823d, 0x823f, 0x8275, 0x833b, 0x83cf, 0x83f9, 0x8423,
-0x83c0, 0x83e8, 0x8412, 0x83e7, 0x83e4, 0x83fc, 0x83f6, 0x8410,
-0x83c6, 0x83c8, 0x83eb, 0x83e3, 0x83bf, 0x8401, 0x83dd, 0x83e5,
-0x83d8, 0x83ff, 0x83e1, 0x83cb, 0x83ce, 0x83d6, 0x83f5, 0x83c9,
-0x8409, 0x840f, 0x83de, 0x8411, 0x8406, 0x83c2, 0x83f3,
-94, 0xdba1,
-0x83d5, 0x83fa, 0x83c7, 0x83d1, 0x83ea, 0x8413, 0x83c3, 0x83ec,
-0x83ee, 0x83c4, 0x83fb, 0x83d7, 0x83e2, 0x841b, 0x83db, 0x83fe,
-0x86d8, 0x86e2, 0x86e6, 0x86d3, 0x86e3, 0x86da, 0x86ea, 0x86dd,
-0x86eb, 0x86dc, 0x86ec, 0x86e9, 0x86d7, 0x86e8, 0x86d1, 0x8848,
-0x8856, 0x8855, 0x88ba, 0x88d7, 0x88b9, 0x88b8, 0x88c0, 0x88be,
-0x88b6, 0x88bc, 0x88b7, 0x88bd, 0x88b2, 0x8901, 0x88c9, 0x8995,
-0x8998, 0x8997, 0x89dd, 0x89da, 0x89db, 0x8a4e, 0x8a4d, 0x8a39,
-0x8a59, 0x8a40, 0x8a57, 0x8a58, 0x8a44, 0x8a45, 0x8a52, 0x8a48,
-0x8a51, 0x8a4a, 0x8a4c, 0x8a4f, 0x8c5f, 0x8c81, 0x8c80, 0x8cba,
-0x8cbe, 0x8cb0, 0x8cb9, 0x8cb5, 0x8d84, 0x8d80, 0x8d89, 0x8dd8,
-0x8dd3, 0x8dcd, 0x8dc7, 0x8dd6, 0x8ddc, 0x8dcf, 0x8dd5, 0x8dd9,
-0x8dc8, 0x8dd7, 0x8dc5, 0x8eef, 0x8ef7, 0x8efa,
-63, 0xdc40,
-0x8ef9, 0x8ee6, 0x8eee, 0x8ee5, 0x8ef5, 0x8ee7, 0x8ee8, 0x8ef6,
-0x8eeb, 0x8ef1, 0x8eec, 0x8ef4, 0x8ee9, 0x902d, 0x9034, 0x902f,
-0x9106, 0x912c, 0x9104, 0x90ff, 0x90fc, 0x9108, 0x90f9, 0x90fb,
-0x9101, 0x9100, 0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915f,
-0x9162, 0x9160, 0x9201, 0x920a, 0x9225, 0x9203, 0x921a, 0x9226,
-0x920f, 0x920c, 0x9200, 0x9212, 0x91ff, 0x91fd, 0x9206, 0x9204,
-0x9227, 0x9202, 0x921c, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216,
-0x957b, 0x958d, 0x958c, 0x9590, 0x9687, 0x967e, 0x9688,
-94, 0xdca1,
-0x9689, 0x9683, 0x9680, 0x96c2, 0x96c8, 0x96c3, 0x96f1, 0x96f0,
-0x976c, 0x9770, 0x976e, 0x9807, 0x98a9, 0x98eb, 0x9ce6, 0x9ef9,
-0x4e83, 0x4e84, 0x4eb6, 0x50bd, 0x50bf, 0x50c6, 0x50ae, 0x50c4,
-0x50ca, 0x50b4, 0x50c8, 0x50c2, 0x50b0, 0x50c1, 0x50ba, 0x50b1,
-0x50cb, 0x50c9, 0x50b6, 0x50b8, 0x51d7, 0x527a, 0x5278, 0x527b,
-0x527c, 0x55c3, 0x55db, 0x55cc, 0x55d0, 0x55cb, 0x55ca, 0x55dd,
-0x55c0, 0x55d4, 0x55c4, 0x55e9, 0x55bf, 0x55d2, 0x558d, 0x55cf,
-0x55d5, 0x55e2, 0x55d6, 0x55c8, 0x55f2, 0x55cd, 0x55d9, 0x55c2,
-0x5714, 0x5853, 0x5868, 0x5864, 0x584f, 0x584d, 0x5849, 0x586f,
-0x5855, 0x584e, 0x585d, 0x5859, 0x5865, 0x585b, 0x583d, 0x5863,
-0x5871, 0x58fc, 0x5ac7, 0x5ac4, 0x5acb, 0x5aba, 0x5ab8, 0x5ab1,
-0x5ab5, 0x5ab0, 0x5abf, 0x5ac8, 0x5abb, 0x5ac6,
-63, 0xdd40,
-0x5ab7, 0x5ac0, 0x5aca, 0x5ab4, 0x5ab6, 0x5acd, 0x5ab9, 0x5a90,
-0x5bd6, 0x5bd8, 0x5bd9, 0x5c1f, 0x5c33, 0x5d71, 0x5d63, 0x5d4a,
-0x5d65, 0x5d72, 0x5d6c, 0x5d5e, 0x5d68, 0x5d67, 0x5d62, 0x5df0,
-0x5e4f, 0x5e4e, 0x5e4a, 0x5e4d, 0x5e4b, 0x5ec5, 0x5ecc, 0x5ec6,
-0x5ecb, 0x5ec7, 0x5f40, 0x5faf, 0x5fad, 0x60f7, 0x6149, 0x614a,
-0x612b, 0x6145, 0x6136, 0x6132, 0x612e, 0x6146, 0x612f, 0x614f,
-0x6129, 0x6140, 0x6220, 0x9168, 0x6223, 0x6225, 0x6224, 0x63c5,
-0x63f1, 0x63eb, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424,
-94, 0xdda1,
-0x6433, 0x6443, 0x641f, 0x6415, 0x6418, 0x6439, 0x6437, 0x6422,
-0x6423, 0x640c, 0x6426, 0x6430, 0x6428, 0x6441, 0x6435, 0x642f,
-0x640a, 0x641a, 0x6440, 0x6425, 0x6427, 0x640b, 0x63e7, 0x641b,
-0x642e, 0x6421, 0x640e, 0x656f, 0x6592, 0x65d3, 0x6686, 0x668c,
-0x6695, 0x6690, 0x668b, 0x668a, 0x6699, 0x6694, 0x6678, 0x6720,
-0x6966, 0x695f, 0x6938, 0x694e, 0x6962, 0x6971, 0x693f, 0x6945,
-0x696a, 0x6939, 0x6942, 0x6957, 0x6959, 0x697a, 0x6948, 0x6949,
-0x6935, 0x696c, 0x6933, 0x693d, 0x6965, 0x68f0, 0x6978, 0x6934,
-0x6969, 0x6940, 0x696f, 0x6944, 0x6976, 0x6958, 0x6941, 0x6974,
-0x694c, 0x693b, 0x694b, 0x6937, 0x695c, 0x694f, 0x6951, 0x6932,
-0x6952, 0x692f, 0x697b, 0x693c, 0x6b46, 0x6b45, 0x6b43, 0x6b42,
-0x6b48, 0x6b41, 0x6b9b, 0xfa0d, 0x6bfb, 0x6bfc,
-63, 0xde40,
-0x6bf9, 0x6bf7, 0x6bf8, 0x6e9b, 0x6ed6, 0x6ec8, 0x6e8f, 0x6ec0,
-0x6e9f, 0x6e93, 0x6e94, 0x6ea0, 0x6eb1, 0x6eb9, 0x6ec6, 0x6ed2,
-0x6ebd, 0x6ec1, 0x6e9e, 0x6ec9, 0x6eb7, 0x6eb0, 0x6ecd, 0x6ea6,
-0x6ecf, 0x6eb2, 0x6ebe, 0x6ec3, 0x6edc, 0x6ed8, 0x6e99, 0x6e92,
-0x6e8e, 0x6e8d, 0x6ea4, 0x6ea1, 0x6ebf, 0x6eb3, 0x6ed0, 0x6eca,
-0x6e97, 0x6eae, 0x6ea3, 0x7147, 0x7154, 0x7152, 0x7163, 0x7160,
-0x7141, 0x715d, 0x7162, 0x7172, 0x7178, 0x716a, 0x7161, 0x7142,
-0x7158, 0x7143, 0x714b, 0x7170, 0x715f, 0x7150, 0x7153,
-94, 0xdea1,
-0x7144, 0x714d, 0x715a, 0x724f, 0x728d, 0x728c, 0x7291, 0x7290,
-0x728e, 0x733c, 0x7342, 0x733b, 0x733a, 0x7340, 0x734a, 0x7349,
-0x7444, 0x744a, 0x744b, 0x7452, 0x7451, 0x7457, 0x7440, 0x744f,
-0x7450, 0x744e, 0x7442, 0x7446, 0x744d, 0x7454, 0x74e1, 0x74ff,
-0x74fe, 0x74fd, 0x751d, 0x7579, 0x7577, 0x6983, 0x75ef, 0x760f,
-0x7603, 0x75f7, 0x75fe, 0x75fc, 0x75f9, 0x75f8, 0x7610, 0x75fb,
-0x75f6, 0x75ed, 0x75f5, 0x75fd, 0x7699, 0x76b5, 0x76dd, 0x7755,
-0x775f, 0x7760, 0x7752, 0x7756, 0x775a, 0x7769, 0x7767, 0x7754,
-0x7759, 0x776d, 0x77e0, 0x7887, 0x789a, 0x7894, 0x788f, 0x7884,
-0x7895, 0x7885, 0x7886, 0x78a1, 0x7883, 0x7879, 0x7899, 0x7880,
-0x7896, 0x787b, 0x797c, 0x7982, 0x797d, 0x7979, 0x7a11, 0x7a18,
-0x7a19, 0x7a12, 0x7a17, 0x7a15, 0x7a22, 0x7a13,
-63, 0xdf40,
-0x7a1b, 0x7a10, 0x7aa3, 0x7aa2, 0x7a9e, 0x7aeb, 0x7b66, 0x7b64,
-0x7b6d, 0x7b74, 0x7b69, 0x7b72, 0x7b65, 0x7b73, 0x7b71, 0x7b70,
-0x7b61, 0x7b78, 0x7b76, 0x7b63, 0x7cb2, 0x7cb4, 0x7caf, 0x7d88,
-0x7d86, 0x7d80, 0x7d8d, 0x7d7f, 0x7d85, 0x7d7a, 0x7d8e, 0x7d7b,
-0x7d83, 0x7d7c, 0x7d8c, 0x7d94, 0x7d84, 0x7d7d, 0x7d92, 0x7f6d,
-0x7f6b, 0x7f67, 0x7f68, 0x7f6c, 0x7fa6, 0x7fa5, 0x7fa7, 0x7fdb,
-0x7fdc, 0x8021, 0x8164, 0x8160, 0x8177, 0x815c, 0x8169, 0x815b,
-0x8162, 0x8172, 0x6721, 0x815e, 0x8176, 0x8167, 0x816f,
-94, 0xdfa1,
-0x8144, 0x8161, 0x821d, 0x8249, 0x8244, 0x8240, 0x8242, 0x8245,
-0x84f1, 0x843f, 0x8456, 0x8476, 0x8479, 0x848f, 0x848d, 0x8465,
-0x8451, 0x8440, 0x8486, 0x8467, 0x8430, 0x844d, 0x847d, 0x845a,
-0x8459, 0x8474, 0x8473, 0x845d, 0x8507, 0x845e, 0x8437, 0x843a,
-0x8434, 0x847a, 0x8443, 0x8478, 0x8432, 0x8445, 0x8429, 0x83d9,
-0x844b, 0x842f, 0x8442, 0x842d, 0x845f, 0x8470, 0x8439, 0x844e,
-0x844c, 0x8452, 0x846f, 0x84c5, 0x848e, 0x843b, 0x8447, 0x8436,
-0x8433, 0x8468, 0x847e, 0x8444, 0x842b, 0x8460, 0x8454, 0x846e,
-0x8450, 0x870b, 0x8704, 0x86f7, 0x870c, 0x86fa, 0x86d6, 0x86f5,
-0x874d, 0x86f8, 0x870e, 0x8709, 0x8701, 0x86f6, 0x870d, 0x8705,
-0x88d6, 0x88cb, 0x88cd, 0x88ce, 0x88de, 0x88db, 0x88da, 0x88cc,
-0x88d0, 0x8985, 0x899b, 0x89df, 0x89e5, 0x89e4,
-63, 0xe040,
-0x89e1, 0x89e0, 0x89e2, 0x89dc, 0x89e6, 0x8a76, 0x8a86, 0x8a7f,
-0x8a61, 0x8a3f, 0x8a77, 0x8a82, 0x8a84, 0x8a75, 0x8a83, 0x8a81,
-0x8a74, 0x8a7a, 0x8c3c, 0x8c4b, 0x8c4a, 0x8c65, 0x8c64, 0x8c66,
-0x8c86, 0x8c84, 0x8c85, 0x8ccc, 0x8d68, 0x8d69, 0x8d91, 0x8d8c,
-0x8d8e, 0x8d8f, 0x8d8d, 0x8d93, 0x8d94, 0x8d90, 0x8d92, 0x8df0,
-0x8de0, 0x8dec, 0x8df1, 0x8dee, 0x8dd0, 0x8de9, 0x8de3, 0x8de2,
-0x8de7, 0x8df2, 0x8deb, 0x8df4, 0x8f06, 0x8eff, 0x8f01, 0x8f00,
-0x8f05, 0x8f07, 0x8f08, 0x8f02, 0x8f0b, 0x9052, 0x903f,
-94, 0xe0a1,
-0x9044, 0x9049, 0x903d, 0x9110, 0x910d, 0x910f, 0x9111, 0x9116,
-0x9114, 0x910b, 0x910e, 0x916e, 0x916f, 0x9248, 0x9252, 0x9230,
-0x923a, 0x9266, 0x9233, 0x9265, 0x925e, 0x9283, 0x922e, 0x924a,
-0x9246, 0x926d, 0x926c, 0x924f, 0x9260, 0x9267, 0x926f, 0x9236,
-0x9261, 0x9270, 0x9231, 0x9254, 0x9263, 0x9250, 0x9272, 0x924e,
-0x9253, 0x924c, 0x9256, 0x9232, 0x959f, 0x959c, 0x959e, 0x959b,
-0x9692, 0x9693, 0x9691, 0x9697, 0x96ce, 0x96fa, 0x96fd, 0x96f8,
-0x96f5, 0x9773, 0x9777, 0x9778, 0x9772, 0x980f, 0x980d, 0x980e,
-0x98ac, 0x98f6, 0x98f9, 0x99af, 0x99b2, 0x99b0, 0x99b5, 0x9aad,
-0x9aab, 0x9b5b, 0x9cea, 0x9ced, 0x9ce7, 0x9e80, 0x9efd, 0x50e6,
-0x50d4, 0x50d7, 0x50e8, 0x50f3, 0x50db, 0x50ea, 0x50dd, 0x50e4,
-0x50d3, 0x50ec, 0x50f0, 0x50ef, 0x50e3, 0x50e0,
-63, 0xe140,
-0x51d8, 0x5280, 0x5281, 0x52e9, 0x52eb, 0x5330, 0x53ac, 0x5627,
-0x5615, 0x560c, 0x5612, 0x55fc, 0x560f, 0x561c, 0x5601, 0x5613,
-0x5602, 0x55fa, 0x561d, 0x5604, 0x55ff, 0x55f9, 0x5889, 0x587c,
-0x5890, 0x5898, 0x5886, 0x5881, 0x587f, 0x5874, 0x588b, 0x587a,
-0x5887, 0x5891, 0x588e, 0x5876, 0x5882, 0x5888, 0x587b, 0x5894,
-0x588f, 0x58fe, 0x596b, 0x5adc, 0x5aee, 0x5ae5, 0x5ad5, 0x5aea,
-0x5ada, 0x5aed, 0x5aeb, 0x5af3, 0x5ae2, 0x5ae0, 0x5adb, 0x5aec,
-0x5ade, 0x5add, 0x5ad9, 0x5ae8, 0x5adf, 0x5b77, 0x5be0,
-94, 0xe1a1,
-0x5be3, 0x5c63, 0x5d82, 0x5d80, 0x5d7d, 0x5d86, 0x5d7a, 0x5d81,
-0x5d77, 0x5d8a, 0x5d89, 0x5d88, 0x5d7e, 0x5d7c, 0x5d8d, 0x5d79,
-0x5d7f, 0x5e58, 0x5e59, 0x5e53, 0x5ed8, 0x5ed1, 0x5ed7, 0x5ece,
-0x5edc, 0x5ed5, 0x5ed9, 0x5ed2, 0x5ed4, 0x5f44, 0x5f43, 0x5f6f,
-0x5fb6, 0x612c, 0x6128, 0x6141, 0x615e, 0x6171, 0x6173, 0x6152,
-0x6153, 0x6172, 0x616c, 0x6180, 0x6174, 0x6154, 0x617a, 0x615b,
-0x6165, 0x613b, 0x616a, 0x6161, 0x6156, 0x6229, 0x6227, 0x622b,
-0x642b, 0x644d, 0x645b, 0x645d, 0x6474, 0x6476, 0x6472, 0x6473,
-0x647d, 0x6475, 0x6466, 0x64a6, 0x644e, 0x6482, 0x645e, 0x645c,
-0x644b, 0x6453, 0x6460, 0x6450, 0x647f, 0x643f, 0x646c, 0x646b,
-0x6459, 0x6465, 0x6477, 0x6573, 0x65a0, 0x66a1, 0x66a0, 0x669f,
-0x6705, 0x6704, 0x6722, 0x69b1, 0x69b6, 0x69c9,
-63, 0xe240,
-0x69a0, 0x69ce, 0x6996, 0x69b0, 0x69ac, 0x69bc, 0x6991, 0x6999,
-0x698e, 0x69a7, 0x698d, 0x69a9, 0x69be, 0x69af, 0x69bf, 0x69c4,
-0x69bd, 0x69a4, 0x69d4, 0x69b9, 0x69ca, 0x699a, 0x69cf, 0x69b3,
-0x6993, 0x69aa, 0x69a1, 0x699e, 0x69d9, 0x6997, 0x6990, 0x69c2,
-0x69b5, 0x69a5, 0x69c6, 0x6b4a, 0x6b4d, 0x6b4b, 0x6b9e, 0x6b9f,
-0x6ba0, 0x6bc3, 0x6bc4, 0x6bfe, 0x6ece, 0x6ef5, 0x6ef1, 0x6f03,
-0x6f25, 0x6ef8, 0x6f37, 0x6efb, 0x6f2e, 0x6f09, 0x6f4e, 0x6f19,
-0x6f1a, 0x6f27, 0x6f18, 0x6f3b, 0x6f12, 0x6eed, 0x6f0a,
-94, 0xe2a1,
-0x6f36, 0x6f73, 0x6ef9, 0x6eee, 0x6f2d, 0x6f40, 0x6f30, 0x6f3c,
-0x6f35, 0x6eeb, 0x6f07, 0x6f0e, 0x6f43, 0x6f05, 0x6efd, 0x6ef6,
-0x6f39, 0x6f1c, 0x6efc, 0x6f3a, 0x6f1f, 0x6f0d, 0x6f1e, 0x6f08,
-0x6f21, 0x7187, 0x7190, 0x7189, 0x7180, 0x7185, 0x7182, 0x718f,
-0x717b, 0x7186, 0x7181, 0x7197, 0x7244, 0x7253, 0x7297, 0x7295,
-0x7293, 0x7343, 0x734d, 0x7351, 0x734c, 0x7462, 0x7473, 0x7471,
-0x7475, 0x7472, 0x7467, 0x746e, 0x7500, 0x7502, 0x7503, 0x757d,
-0x7590, 0x7616, 0x7608, 0x760c, 0x7615, 0x7611, 0x760a, 0x7614,
-0x76b8, 0x7781, 0x777c, 0x7785, 0x7782, 0x776e, 0x7780, 0x776f,
-0x777e, 0x7783, 0x78b2, 0x78aa, 0x78b4, 0x78ad, 0x78a8, 0x787e,
-0x78ab, 0x789e, 0x78a5, 0x78a0, 0x78ac, 0x78a2, 0x78a4, 0x7998,
-0x798a, 0x798b, 0x7996, 0x7995, 0x7994, 0x7993,
-63, 0xe340,
-0x7997, 0x7988, 0x7992, 0x7990, 0x7a2b, 0x7a4a, 0x7a30, 0x7a2f,
-0x7a28, 0x7a26, 0x7aa8, 0x7aab, 0x7aac, 0x7aee, 0x7b88, 0x7b9c,
-0x7b8a, 0x7b91, 0x7b90, 0x7b96, 0x7b8d, 0x7b8c, 0x7b9b, 0x7b8e,
-0x7b85, 0x7b98, 0x5284, 0x7b99, 0x7ba4, 0x7b82, 0x7cbb, 0x7cbf,
-0x7cbc, 0x7cba, 0x7da7, 0x7db7, 0x7dc2, 0x7da3, 0x7daa, 0x7dc1,
-0x7dc0, 0x7dc5, 0x7d9d, 0x7dce, 0x7dc4, 0x7dc6, 0x7dcb, 0x7dcc,
-0x7daf, 0x7db9, 0x7d96, 0x7dbc, 0x7d9f, 0x7da6, 0x7dae, 0x7da9,
-0x7da1, 0x7dc9, 0x7f73, 0x7fe2, 0x7fe3, 0x7fe5, 0x7fde,
-94, 0xe3a1,
-0x8024, 0x805d, 0x805c, 0x8189, 0x8186, 0x8183, 0x8187, 0x818d,
-0x818c, 0x818b, 0x8215, 0x8497, 0x84a4, 0x84a1, 0x849f, 0x84ba,
-0x84ce, 0x84c2, 0x84ac, 0x84ae, 0x84ab, 0x84b9, 0x84b4, 0x84c1,
-0x84cd, 0x84aa, 0x849a, 0x84b1, 0x84d0, 0x849d, 0x84a7, 0x84bb,
-0x84a2, 0x8494, 0x84c7, 0x84cc, 0x849b, 0x84a9, 0x84af, 0x84a8,
-0x84d6, 0x8498, 0x84b6, 0x84cf, 0x84a0, 0x84d7, 0x84d4, 0x84d2,
-0x84db, 0x84b0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, 0x876b,
-0x8740, 0x872e, 0x871e, 0x8721, 0x8719, 0x871b, 0x8743, 0x872c,
-0x8741, 0x873e, 0x8746, 0x8720, 0x8732, 0x872a, 0x872d, 0x873c,
-0x8712, 0x873a, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, 0x8738,
-0x8724, 0x871a, 0x8730, 0x8711, 0x88f7, 0x88e7, 0x88f1, 0x88f2,
-0x88fa, 0x88fe, 0x88ee, 0x88fc, 0x88f6, 0x88fb,
-63, 0xe440,
-0x88f0, 0x88ec, 0x88eb, 0x899d, 0x89a1, 0x899f, 0x899e, 0x89e9,
-0x89eb, 0x89e8, 0x8aab, 0x8a99, 0x8a8b, 0x8a92, 0x8a8f, 0x8a96,
-0x8c3d, 0x8c68, 0x8c69, 0x8cd5, 0x8ccf, 0x8cd7, 0x8d96, 0x8e09,
-0x8e02, 0x8dff, 0x8e0d, 0x8dfd, 0x8e0a, 0x8e03, 0x8e07, 0x8e06,
-0x8e05, 0x8dfe, 0x8e00, 0x8e04, 0x8f10, 0x8f11, 0x8f0e, 0x8f0d,
-0x9123, 0x911c, 0x9120, 0x9122, 0x911f, 0x911d, 0x911a, 0x9124,
-0x9121, 0x911b, 0x917a, 0x9172, 0x9179, 0x9173, 0x92a5, 0x92a4,
-0x9276, 0x929b, 0x927a, 0x92a0, 0x9294, 0x92aa, 0x928d,
-94, 0xe4a1,
-0x92a6, 0x929a, 0x92ab, 0x9279, 0x9297, 0x927f, 0x92a3, 0x92ee,
-0x928e, 0x9282, 0x9295, 0x92a2, 0x927d, 0x9288, 0x92a1, 0x928a,
-0x9286, 0x928c, 0x9299, 0x92a7, 0x927e, 0x9287, 0x92a9, 0x929d,
-0x928b, 0x922d, 0x969e, 0x96a1, 0x96ff, 0x9758, 0x977d, 0x977a,
-0x977e, 0x9783, 0x9780, 0x9782, 0x977b, 0x9784, 0x9781, 0x977f,
-0x97ce, 0x97cd, 0x9816, 0x98ad, 0x98ae, 0x9902, 0x9900, 0x9907,
-0x999d, 0x999c, 0x99c3, 0x99b9, 0x99bb, 0x99ba, 0x99c2, 0x99bd,
-0x99c7, 0x9ab1, 0x9ae3, 0x9ae7, 0x9b3e, 0x9b3f, 0x9b60, 0x9b61,
-0x9b5f, 0x9cf1, 0x9cf2, 0x9cf5, 0x9ea7, 0x50ff, 0x5103, 0x5130,
-0x50f8, 0x5106, 0x5107, 0x50f6, 0x50fe, 0x510b, 0x510c, 0x50fd,
-0x510a, 0x528b, 0x528c, 0x52f1, 0x52ef, 0x5648, 0x5642, 0x564c,
-0x5635, 0x5641, 0x564a, 0x5649, 0x5646, 0x5658,
-63, 0xe540,
-0x565a, 0x5640, 0x5633, 0x563d, 0x562c, 0x563e, 0x5638, 0x562a,
-0x563a, 0x571a, 0x58ab, 0x589d, 0x58b1, 0x58a0, 0x58a3, 0x58af,
-0x58ac, 0x58a5, 0x58a1, 0x58ff, 0x5aff, 0x5af4, 0x5afd, 0x5af7,
-0x5af6, 0x5b03, 0x5af8, 0x5b02, 0x5af9, 0x5b01, 0x5b07, 0x5b05,
-0x5b0f, 0x5c67, 0x5d99, 0x5d97, 0x5d9f, 0x5d92, 0x5da2, 0x5d93,
-0x5d95, 0x5da0, 0x5d9c, 0x5da1, 0x5d9a, 0x5d9e, 0x5e69, 0x5e5d,
-0x5e60, 0x5e5c, 0x7df3, 0x5edb, 0x5ede, 0x5ee1, 0x5f49, 0x5fb2,
-0x618b, 0x6183, 0x6179, 0x61b1, 0x61b0, 0x61a2, 0x6189,
-94, 0xe5a1,
-0x619b, 0x6193, 0x61af, 0x61ad, 0x619f, 0x6192, 0x61aa, 0x61a1,
-0x618d, 0x6166, 0x61b3, 0x622d, 0x646e, 0x6470, 0x6496, 0x64a0,
-0x6485, 0x6497, 0x649c, 0x648f, 0x648b, 0x648a, 0x648c, 0x64a3,
-0x649f, 0x6468, 0x64b1, 0x6498, 0x6576, 0x657a, 0x6579, 0x657b,
-0x65b2, 0x65b3, 0x66b5, 0x66b0, 0x66a9, 0x66b2, 0x66b7, 0x66aa,
-0x66af, 0x6a00, 0x6a06, 0x6a17, 0x69e5, 0x69f8, 0x6a15, 0x69f1,
-0x69e4, 0x6a20, 0x69ff, 0x69ec, 0x69e2, 0x6a1b, 0x6a1d, 0x69fe,
-0x6a27, 0x69f2, 0x69ee, 0x6a14, 0x69f7, 0x69e7, 0x6a40, 0x6a08,
-0x69e6, 0x69fb, 0x6a0d, 0x69fc, 0x69eb, 0x6a09, 0x6a04, 0x6a18,
-0x6a25, 0x6a0f, 0x69f6, 0x6a26, 0x6a07, 0x69f4, 0x6a16, 0x6b51,
-0x6ba5, 0x6ba3, 0x6ba2, 0x6ba6, 0x6c01, 0x6c00, 0x6bff, 0x6c02,
-0x6f41, 0x6f26, 0x6f7e, 0x6f87, 0x6fc6, 0x6f92,
-63, 0xe640,
-0x6f8d, 0x6f89, 0x6f8c, 0x6f62, 0x6f4f, 0x6f85, 0x6f5a, 0x6f96,
-0x6f76, 0x6f6c, 0x6f82, 0x6f55, 0x6f72, 0x6f52, 0x6f50, 0x6f57,
-0x6f94, 0x6f93, 0x6f5d, 0x6f00, 0x6f61, 0x6f6b, 0x6f7d, 0x6f67,
-0x6f90, 0x6f53, 0x6f8b, 0x6f69, 0x6f7f, 0x6f95, 0x6f63, 0x6f77,
-0x6f6a, 0x6f7b, 0x71b2, 0x71af, 0x719b, 0x71b0, 0x71a0, 0x719a,
-0x71a9, 0x71b5, 0x719d, 0x71a5, 0x719e, 0x71a4, 0x71a1, 0x71aa,
-0x719c, 0x71a7, 0x71b3, 0x7298, 0x729a, 0x7358, 0x7352, 0x735e,
-0x735f, 0x7360, 0x735d, 0x735b, 0x7361, 0x735a, 0x7359,
-94, 0xe6a1,
-0x7362, 0x7487, 0x7489, 0x748a, 0x7486, 0x7481, 0x747d, 0x7485,
-0x7488, 0x747c, 0x7479, 0x7508, 0x7507, 0x757e, 0x7625, 0x761e,
-0x7619, 0x761d, 0x761c, 0x7623, 0x761a, 0x7628, 0x761b, 0x769c,
-0x769d, 0x769e, 0x769b, 0x778d, 0x778f, 0x7789, 0x7788, 0x78cd,
-0x78bb, 0x78cf, 0x78cc, 0x78d1, 0x78ce, 0x78d4, 0x78c8, 0x78c3,
-0x78c4, 0x78c9, 0x799a, 0x79a1, 0x79a0, 0x799c, 0x79a2, 0x799b,
-0x6b76, 0x7a39, 0x7ab2, 0x7ab4, 0x7ab3, 0x7bb7, 0x7bcb, 0x7bbe,
-0x7bac, 0x7bce, 0x7baf, 0x7bb9, 0x7bca, 0x7bb5, 0x7cc5, 0x7cc8,
-0x7ccc, 0x7ccb, 0x7df7, 0x7ddb, 0x7dea, 0x7de7, 0x7dd7, 0x7de1,
-0x7e03, 0x7dfa, 0x7de6, 0x7df6, 0x7df1, 0x7df0, 0x7dee, 0x7ddf,
-0x7f76, 0x7fac, 0x7fb0, 0x7fad, 0x7fed, 0x7feb, 0x7fea, 0x7fec,
-0x7fe6, 0x7fe8, 0x8064, 0x8067, 0x81a3, 0x819f,
-63, 0xe740,
-0x819e, 0x8195, 0x81a2, 0x8199, 0x8197, 0x8216, 0x824f, 0x8253,
-0x8252, 0x8250, 0x824e, 0x8251, 0x8524, 0x853b, 0x850f, 0x8500,
-0x8529, 0x850e, 0x8509, 0x850d, 0x851f, 0x850a, 0x8527, 0x851c,
-0x84fb, 0x852b, 0x84fa, 0x8508, 0x850c, 0x84f4, 0x852a, 0x84f2,
-0x8515, 0x84f7, 0x84eb, 0x84f3, 0x84fc, 0x8512, 0x84ea, 0x84e9,
-0x8516, 0x84fe, 0x8528, 0x851d, 0x852e, 0x8502, 0x84fd, 0x851e,
-0x84f6, 0x8531, 0x8526, 0x84e7, 0x84e8, 0x84f0, 0x84ef, 0x84f9,
-0x8518, 0x8520, 0x8530, 0x850b, 0x8519, 0x852f, 0x8662,
-94, 0xe7a1,
-0x8756, 0x8763, 0x8764, 0x8777, 0x87e1, 0x8773, 0x8758, 0x8754,
-0x875b, 0x8752, 0x8761, 0x875a, 0x8751, 0x875e, 0x876d, 0x876a,
-0x8750, 0x874e, 0x875f, 0x875d, 0x876f, 0x876c, 0x877a, 0x876e,
-0x875c, 0x8765, 0x874f, 0x877b, 0x8775, 0x8762, 0x8767, 0x8769,
-0x885a, 0x8905, 0x890c, 0x8914, 0x890b, 0x8917, 0x8918, 0x8919,
-0x8906, 0x8916, 0x8911, 0x890e, 0x8909, 0x89a2, 0x89a4, 0x89a3,
-0x89ed, 0x89f0, 0x89ec, 0x8acf, 0x8ac6, 0x8ab8, 0x8ad3, 0x8ad1,
-0x8ad4, 0x8ad5, 0x8abb, 0x8ad7, 0x8abe, 0x8ac0, 0x8ac5, 0x8ad8,
-0x8ac3, 0x8aba, 0x8abd, 0x8ad9, 0x8c3e, 0x8c4d, 0x8c8f, 0x8ce5,
-0x8cdf, 0x8cd9, 0x8ce8, 0x8cda, 0x8cdd, 0x8ce7, 0x8da0, 0x8d9c,
-0x8da1, 0x8d9b, 0x8e20, 0x8e23, 0x8e25, 0x8e24, 0x8e2e, 0x8e15,
-0x8e1b, 0x8e16, 0x8e11, 0x8e19, 0x8e26, 0x8e27,
-63, 0xe840,
-0x8e14, 0x8e12, 0x8e18, 0x8e13, 0x8e1c, 0x8e17, 0x8e1a, 0x8f2c,
-0x8f24, 0x8f18, 0x8f1a, 0x8f20, 0x8f23, 0x8f16, 0x8f17, 0x9073,
-0x9070, 0x906f, 0x9067, 0x906b, 0x912f, 0x912b, 0x9129, 0x912a,
-0x9132, 0x9126, 0x912e, 0x9185, 0x9186, 0x918a, 0x9181, 0x9182,
-0x9184, 0x9180, 0x92d0, 0x92c3, 0x92c4, 0x92c0, 0x92d9, 0x92b6,
-0x92cf, 0x92f1, 0x92df, 0x92d8, 0x92e9, 0x92d7, 0x92dd, 0x92cc,
-0x92ef, 0x92c2, 0x92e8, 0x92ca, 0x92c8, 0x92ce, 0x92e6, 0x92cd,
-0x92d5, 0x92c9, 0x92e0, 0x92de, 0x92e7, 0x92d1, 0x92d3,
-94, 0xe8a1,
-0x92b5, 0x92e1, 0x92c6, 0x92b4, 0x957c, 0x95ac, 0x95ab, 0x95ae,
-0x95b0, 0x96a4, 0x96a2, 0x96d3, 0x9705, 0x9708, 0x9702, 0x975a,
-0x978a, 0x978e, 0x9788, 0x97d0, 0x97cf, 0x981e, 0x981d, 0x9826,
-0x9829, 0x9828, 0x9820, 0x981b, 0x9827, 0x98b2, 0x9908, 0x98fa,
-0x9911, 0x9914, 0x9916, 0x9917, 0x9915, 0x99dc, 0x99cd, 0x99cf,
-0x99d3, 0x99d4, 0x99ce, 0x99c9, 0x99d6, 0x99d8, 0x99cb, 0x99d7,
-0x99cc, 0x9ab3, 0x9aec, 0x9aeb, 0x9af3, 0x9af2, 0x9af1, 0x9b46,
-0x9b43, 0x9b67, 0x9b74, 0x9b71, 0x9b66, 0x9b76, 0x9b75, 0x9b70,
-0x9b68, 0x9b64, 0x9b6c, 0x9cfc, 0x9cfa, 0x9cfd, 0x9cff, 0x9cf7,
-0x9d07, 0x9d00, 0x9cf9, 0x9cfb, 0x9d08, 0x9d05, 0x9d04, 0x9e83,
-0x9ed3, 0x9f0f, 0x9f10, 0x511c, 0x5113, 0x5117, 0x511a, 0x5111,
-0x51de, 0x5334, 0x53e1, 0x5670, 0x5660, 0x566e,
-63, 0xe940,
-0x5673, 0x5666, 0x5663, 0x566d, 0x5672, 0x565e, 0x5677, 0x571c,
-0x571b, 0x58c8, 0x58bd, 0x58c9, 0x58bf, 0x58ba, 0x58c2, 0x58bc,
-0x58c6, 0x5b17, 0x5b19, 0x5b1b, 0x5b21, 0x5b14, 0x5b13, 0x5b10,
-0x5b16, 0x5b28, 0x5b1a, 0x5b20, 0x5b1e, 0x5bef, 0x5dac, 0x5db1,
-0x5da9, 0x5da7, 0x5db5, 0x5db0, 0x5dae, 0x5daa, 0x5da8, 0x5db2,
-0x5dad, 0x5daf, 0x5db4, 0x5e67, 0x5e68, 0x5e66, 0x5e6f, 0x5ee9,
-0x5ee7, 0x5ee6, 0x5ee8, 0x5ee5, 0x5f4b, 0x5fbc, 0x619d, 0x61a8,
-0x6196, 0x61c5, 0x61b4, 0x61c6, 0x61c1, 0x61cc, 0x61ba,
-94, 0xe9a1,
-0x61bf, 0x61b8, 0x618c, 0x64d7, 0x64d6, 0x64d0, 0x64cf, 0x64c9,
-0x64bd, 0x6489, 0x64c3, 0x64db, 0x64f3, 0x64d9, 0x6533, 0x657f,
-0x657c, 0x65a2, 0x66c8, 0x66be, 0x66c0, 0x66ca, 0x66cb, 0x66cf,
-0x66bd, 0x66bb, 0x66ba, 0x66cc, 0x6723, 0x6a34, 0x6a66, 0x6a49,
-0x6a67, 0x6a32, 0x6a68, 0x6a3e, 0x6a5d, 0x6a6d, 0x6a76, 0x6a5b,
-0x6a51, 0x6a28, 0x6a5a, 0x6a3b, 0x6a3f, 0x6a41, 0x6a6a, 0x6a64,
-0x6a50, 0x6a4f, 0x6a54, 0x6a6f, 0x6a69, 0x6a60, 0x6a3c, 0x6a5e,
-0x6a56, 0x6a55, 0x6a4d, 0x6a4e, 0x6a46, 0x6b55, 0x6b54, 0x6b56,
-0x6ba7, 0x6baa, 0x6bab, 0x6bc8, 0x6bc7, 0x6c04, 0x6c03, 0x6c06,
-0x6fad, 0x6fcb, 0x6fa3, 0x6fc7, 0x6fbc, 0x6fce, 0x6fc8, 0x6f5e,
-0x6fc4, 0x6fbd, 0x6f9e, 0x6fca, 0x6fa8, 0x7004, 0x6fa5, 0x6fae,
-0x6fba, 0x6fac, 0x6faa, 0x6fcf, 0x6fbf, 0x6fb8,
-63, 0xea40,
-0x6fa2, 0x6fc9, 0x6fab, 0x6fcd, 0x6faf, 0x6fb2, 0x6fb0, 0x71c5,
-0x71c2, 0x71bf, 0x71b8, 0x71d6, 0x71c0, 0x71c1, 0x71cb, 0x71d4,
-0x71ca, 0x71c7, 0x71cf, 0x71bd, 0x71d8, 0x71bc, 0x71c6, 0x71da,
-0x71db, 0x729d, 0x729e, 0x7369, 0x7366, 0x7367, 0x736c, 0x7365,
-0x736b, 0x736a, 0x747f, 0x749a, 0x74a0, 0x7494, 0x7492, 0x7495,
-0x74a1, 0x750b, 0x7580, 0x762f, 0x762d, 0x7631, 0x763d, 0x7633,
-0x763c, 0x7635, 0x7632, 0x7630, 0x76bb, 0x76e6, 0x779a, 0x779d,
-0x77a1, 0x779c, 0x779b, 0x77a2, 0x77a3, 0x7795, 0x7799,
-94, 0xeaa1,
-0x7797, 0x78dd, 0x78e9, 0x78e5, 0x78ea, 0x78de, 0x78e3, 0x78db,
-0x78e1, 0x78e2, 0x78ed, 0x78df, 0x78e0, 0x79a4, 0x7a44, 0x7a48,
-0x7a47, 0x7ab6, 0x7ab8, 0x7ab5, 0x7ab1, 0x7ab7, 0x7bde, 0x7be3,
-0x7be7, 0x7bdd, 0x7bd5, 0x7be5, 0x7bda, 0x7be8, 0x7bf9, 0x7bd4,
-0x7bea, 0x7be2, 0x7bdc, 0x7beb, 0x7bd8, 0x7bdf, 0x7cd2, 0x7cd4,
-0x7cd7, 0x7cd0, 0x7cd1, 0x7e12, 0x7e21, 0x7e17, 0x7e0c, 0x7e1f,
-0x7e20, 0x7e13, 0x7e0e, 0x7e1c, 0x7e15, 0x7e1a, 0x7e22, 0x7e0b,
-0x7e0f, 0x7e16, 0x7e0d, 0x7e14, 0x7e25, 0x7e24, 0x7f43, 0x7f7b,
-0x7f7c, 0x7f7a, 0x7fb1, 0x7fef, 0x802a, 0x8029, 0x806c, 0x81b1,
-0x81a6, 0x81ae, 0x81b9, 0x81b5, 0x81ab, 0x81b0, 0x81ac, 0x81b4,
-0x81b2, 0x81b7, 0x81a7, 0x81f2, 0x8255, 0x8256, 0x8257, 0x8556,
-0x8545, 0x856b, 0x854d, 0x8553, 0x8561, 0x8558,
-63, 0xeb40,
-0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544, 0x8551, 0x8547,
-0x8563, 0x853e, 0x855b, 0x8571, 0x854e, 0x856e, 0x8575, 0x8555,
-0x8567, 0x8560, 0x858c, 0x8566, 0x855d, 0x8554, 0x8565, 0x856c,
-0x8663, 0x8665, 0x8664, 0x879b, 0x878f, 0x8797, 0x8793, 0x8792,
-0x8788, 0x8781, 0x8796, 0x8798, 0x8779, 0x8787, 0x87a3, 0x8785,
-0x8790, 0x8791, 0x879d, 0x8784, 0x8794, 0x879c, 0x879a, 0x8789,
-0x891e, 0x8926, 0x8930, 0x892d, 0x892e, 0x8927, 0x8931, 0x8922,
-0x8929, 0x8923, 0x892f, 0x892c, 0x891f, 0x89f1, 0x8ae0,
-94, 0xeba1,
-0x8ae2, 0x8af2, 0x8af4, 0x8af5, 0x8add, 0x8b14, 0x8ae4, 0x8adf,
-0x8af0, 0x8ac8, 0x8ade, 0x8ae1, 0x8ae8, 0x8aff, 0x8aef, 0x8afb,
-0x8c91, 0x8c92, 0x8c90, 0x8cf5, 0x8cee, 0x8cf1, 0x8cf0, 0x8cf3,
-0x8d6c, 0x8d6e, 0x8da5, 0x8da7, 0x8e33, 0x8e3e, 0x8e38, 0x8e40,
-0x8e45, 0x8e36, 0x8e3c, 0x8e3d, 0x8e41, 0x8e30, 0x8e3f, 0x8ebd,
-0x8f36, 0x8f2e, 0x8f35, 0x8f32, 0x8f39, 0x8f37, 0x8f34, 0x9076,
-0x9079, 0x907b, 0x9086, 0x90fa, 0x9133, 0x9135, 0x9136, 0x9193,
-0x9190, 0x9191, 0x918d, 0x918f, 0x9327, 0x931e, 0x9308, 0x931f,
-0x9306, 0x930f, 0x937a, 0x9338, 0x933c, 0x931b, 0x9323, 0x9312,
-0x9301, 0x9346, 0x932d, 0x930e, 0x930d, 0x92cb, 0x931d, 0x92fa,
-0x9325, 0x9313, 0x92f9, 0x92f7, 0x9334, 0x9302, 0x9324, 0x92ff,
-0x9329, 0x9339, 0x9335, 0x932a, 0x9314, 0x930c,
-63, 0xec40,
-0x930b, 0x92fe, 0x9309, 0x9300, 0x92fb, 0x9316, 0x95bc, 0x95cd,
-0x95be, 0x95b9, 0x95ba, 0x95b6, 0x95bf, 0x95b5, 0x95bd, 0x96a9,
-0x96d4, 0x970b, 0x9712, 0x9710, 0x9799, 0x9797, 0x9794, 0x97f0,
-0x97f8, 0x9835, 0x982f, 0x9832, 0x9924, 0x991f, 0x9927, 0x9929,
-0x999e, 0x99ee, 0x99ec, 0x99e5, 0x99e4, 0x99f0, 0x99e3, 0x99ea,
-0x99e9, 0x99e7, 0x9ab9, 0x9abf, 0x9ab4, 0x9abb, 0x9af6, 0x9afa,
-0x9af9, 0x9af7, 0x9b33, 0x9b80, 0x9b85, 0x9b87, 0x9b7c, 0x9b7e,
-0x9b7b, 0x9b82, 0x9b93, 0x9b92, 0x9b90, 0x9b7a, 0x9b95,
-94, 0xeca1,
-0x9b7d, 0x9b88, 0x9d25, 0x9d17, 0x9d20, 0x9d1e, 0x9d14, 0x9d29,
-0x9d1d, 0x9d18, 0x9d22, 0x9d10, 0x9d19, 0x9d1f, 0x9e88, 0x9e86,
-0x9e87, 0x9eae, 0x9ead, 0x9ed5, 0x9ed6, 0x9efa, 0x9f12, 0x9f3d,
-0x5126, 0x5125, 0x5122, 0x5124, 0x5120, 0x5129, 0x52f4, 0x5693,
-0x568c, 0x568d, 0x5686, 0x5684, 0x5683, 0x567e, 0x5682, 0x567f,
-0x5681, 0x58d6, 0x58d4, 0x58cf, 0x58d2, 0x5b2d, 0x5b25, 0x5b32,
-0x5b23, 0x5b2c, 0x5b27, 0x5b26, 0x5b2f, 0x5b2e, 0x5b7b, 0x5bf1,
-0x5bf2, 0x5db7, 0x5e6c, 0x5e6a, 0x5fbe, 0x5fbb, 0x61c3, 0x61b5,
-0x61bc, 0x61e7, 0x61e0, 0x61e5, 0x61e4, 0x61e8, 0x61de, 0x64ef,
-0x64e9, 0x64e3, 0x64eb, 0x64e4, 0x64e8, 0x6581, 0x6580, 0x65b6,
-0x65da, 0x66d2, 0x6a8d, 0x6a96, 0x6a81, 0x6aa5, 0x6a89, 0x6a9f,
-0x6a9b, 0x6aa1, 0x6a9e, 0x6a87, 0x6a93, 0x6a8e,
-63, 0xed40,
-0x6a95, 0x6a83, 0x6aa8, 0x6aa4, 0x6a91, 0x6a7f, 0x6aa6, 0x6a9a,
-0x6a85, 0x6a8c, 0x6a92, 0x6b5b, 0x6bad, 0x6c09, 0x6fcc, 0x6fa9,
-0x6ff4, 0x6fd4, 0x6fe3, 0x6fdc, 0x6fed, 0x6fe7, 0x6fe6, 0x6fde,
-0x6ff2, 0x6fdd, 0x6fe2, 0x6fe8, 0x71e1, 0x71f1, 0x71e8, 0x71f2,
-0x71e4, 0x71f0, 0x71e2, 0x7373, 0x736e, 0x736f, 0x7497, 0x74b2,
-0x74ab, 0x7490, 0x74aa, 0x74ad, 0x74b1, 0x74a5, 0x74af, 0x7510,
-0x7511, 0x7512, 0x750f, 0x7584, 0x7643, 0x7648, 0x7649, 0x7647,
-0x76a4, 0x76e9, 0x77b5, 0x77ab, 0x77b2, 0x77b7, 0x77b6,
-94, 0xeda1,
-0x77b4, 0x77b1, 0x77a8, 0x77f0, 0x78f3, 0x78fd, 0x7902, 0x78fb,
-0x78fc, 0x78f2, 0x7905, 0x78f9, 0x78fe, 0x7904, 0x79ab, 0x79a8,
-0x7a5c, 0x7a5b, 0x7a56, 0x7a58, 0x7a54, 0x7a5a, 0x7abe, 0x7ac0,
-0x7ac1, 0x7c05, 0x7c0f, 0x7bf2, 0x7c00, 0x7bff, 0x7bfb, 0x7c0e,
-0x7bf4, 0x7c0b, 0x7bf3, 0x7c02, 0x7c09, 0x7c03, 0x7c01, 0x7bf8,
-0x7bfd, 0x7c06, 0x7bf0, 0x7bf1, 0x7c10, 0x7c0a, 0x7ce8, 0x7e2d,
-0x7e3c, 0x7e42, 0x7e33, 0x9848, 0x7e38, 0x7e2a, 0x7e49, 0x7e40,
-0x7e47, 0x7e29, 0x7e4c, 0x7e30, 0x7e3b, 0x7e36, 0x7e44, 0x7e3a,
-0x7f45, 0x7f7f, 0x7f7e, 0x7f7d, 0x7ff4, 0x7ff2, 0x802c, 0x81bb,
-0x81c4, 0x81cc, 0x81ca, 0x81c5, 0x81c7, 0x81bc, 0x81e9, 0x825b,
-0x825a, 0x825c, 0x8583, 0x8580, 0x858f, 0x85a7, 0x8595, 0x85a0,
-0x858b, 0x85a3, 0x857b, 0x85a4, 0x859a, 0x859e,
-63, 0xee40,
-0x8577, 0x857c, 0x8589, 0x85a1, 0x857a, 0x8578, 0x8557, 0x858e,
-0x8596, 0x8586, 0x858d, 0x8599, 0x859d, 0x8581, 0x85a2, 0x8582,
-0x8588, 0x8585, 0x8579, 0x8576, 0x8598, 0x8590, 0x859f, 0x8668,
-0x87be, 0x87aa, 0x87ad, 0x87c5, 0x87b0, 0x87ac, 0x87b9, 0x87b5,
-0x87bc, 0x87ae, 0x87c9, 0x87c3, 0x87c2, 0x87cc, 0x87b7, 0x87af,
-0x87c4, 0x87ca, 0x87b4, 0x87b6, 0x87bf, 0x87b8, 0x87bd, 0x87de,
-0x87b2, 0x8935, 0x8933, 0x893c, 0x893e, 0x8941, 0x8952, 0x8937,
-0x8942, 0x89ad, 0x89af, 0x89ae, 0x89f2, 0x89f3, 0x8b1e,
-94, 0xeea1,
-0x8b18, 0x8b16, 0x8b11, 0x8b05, 0x8b0b, 0x8b22, 0x8b0f, 0x8b12,
-0x8b15, 0x8b07, 0x8b0d, 0x8b08, 0x8b06, 0x8b1c, 0x8b13, 0x8b1a,
-0x8c4f, 0x8c70, 0x8c72, 0x8c71, 0x8c6f, 0x8c95, 0x8c94, 0x8cf9,
-0x8d6f, 0x8e4e, 0x8e4d, 0x8e53, 0x8e50, 0x8e4c, 0x8e47, 0x8f43,
-0x8f40, 0x9085, 0x907e, 0x9138, 0x919a, 0x91a2, 0x919b, 0x9199,
-0x919f, 0x91a1, 0x919d, 0x91a0, 0x93a1, 0x9383, 0x93af, 0x9364,
-0x9356, 0x9347, 0x937c, 0x9358, 0x935c, 0x9376, 0x9349, 0x9350,
-0x9351, 0x9360, 0x936d, 0x938f, 0x934c, 0x936a, 0x9379, 0x9357,
-0x9355, 0x9352, 0x934f, 0x9371, 0x9377, 0x937b, 0x9361, 0x935e,
-0x9363, 0x9367, 0x9380, 0x934e, 0x9359, 0x95c7, 0x95c0, 0x95c9,
-0x95c3, 0x95c5, 0x95b7, 0x96ae, 0x96b0, 0x96ac, 0x9720, 0x971f,
-0x9718, 0x971d, 0x9719, 0x979a, 0x97a1, 0x979c,
-63, 0xef40,
-0x979e, 0x979d, 0x97d5, 0x97d4, 0x97f1, 0x9841, 0x9844, 0x984a,
-0x9849, 0x9845, 0x9843, 0x9925, 0x992b, 0x992c, 0x992a, 0x9933,
-0x9932, 0x992f, 0x992d, 0x9931, 0x9930, 0x9998, 0x99a3, 0x99a1,
-0x9a02, 0x99fa, 0x99f4, 0x99f7, 0x99f9, 0x99f8, 0x99f6, 0x99fb,
-0x99fd, 0x99fe, 0x99fc, 0x9a03, 0x9abe, 0x9afe, 0x9afd, 0x9b01,
-0x9afc, 0x9b48, 0x9b9a, 0x9ba8, 0x9b9e, 0x9b9b, 0x9ba6, 0x9ba1,
-0x9ba5, 0x9ba4, 0x9b86, 0x9ba2, 0x9ba0, 0x9baf, 0x9d33, 0x9d41,
-0x9d67, 0x9d36, 0x9d2e, 0x9d2f, 0x9d31, 0x9d38, 0x9d30,
-94, 0xefa1,
-0x9d45, 0x9d42, 0x9d43, 0x9d3e, 0x9d37, 0x9d40, 0x9d3d, 0x7ff5,
-0x9d2d, 0x9e8a, 0x9e89, 0x9e8d, 0x9eb0, 0x9ec8, 0x9eda, 0x9efb,
-0x9eff, 0x9f24, 0x9f23, 0x9f22, 0x9f54, 0x9fa0, 0x5131, 0x512d,
-0x512e, 0x5698, 0x569c, 0x5697, 0x569a, 0x569d, 0x5699, 0x5970,
-0x5b3c, 0x5c69, 0x5c6a, 0x5dc0, 0x5e6d, 0x5e6e, 0x61d8, 0x61df,
-0x61ed, 0x61ee, 0x61f1, 0x61ea, 0x61f0, 0x61eb, 0x61d6, 0x61e9,
-0x64ff, 0x6504, 0x64fd, 0x64f8, 0x6501, 0x6503, 0x64fc, 0x6594,
-0x65db, 0x66da, 0x66db, 0x66d8, 0x6ac5, 0x6ab9, 0x6abd, 0x6ae1,
-0x6ac6, 0x6aba, 0x6ab6, 0x6ab7, 0x6ac7, 0x6ab4, 0x6aad, 0x6b5e,
-0x6bc9, 0x6c0b, 0x7007, 0x700c, 0x700d, 0x7001, 0x7005, 0x7014,
-0x700e, 0x6fff, 0x7000, 0x6ffb, 0x7026, 0x6ffc, 0x6ff7, 0x700a,
-0x7201, 0x71ff, 0x71f9, 0x7203, 0x71fd, 0x7376,
-63, 0xf040,
-0x74b8, 0x74c0, 0x74b5, 0x74c1, 0x74be, 0x74b6, 0x74bb, 0x74c2,
-0x7514, 0x7513, 0x765c, 0x7664, 0x7659, 0x7650, 0x7653, 0x7657,
-0x765a, 0x76a6, 0x76bd, 0x76ec, 0x77c2, 0x77ba, 0x78ff, 0x790c,
-0x7913, 0x7914, 0x7909, 0x7910, 0x7912, 0x7911, 0x79ad, 0x79ac,
-0x7a5f, 0x7c1c, 0x7c29, 0x7c19, 0x7c20, 0x7c1f, 0x7c2d, 0x7c1d,
-0x7c26, 0x7c28, 0x7c22, 0x7c25, 0x7c30, 0x7e5c, 0x7e50, 0x7e56,
-0x7e63, 0x7e58, 0x7e62, 0x7e5f, 0x7e51, 0x7e60, 0x7e57, 0x7e53,
-0x7fb5, 0x7fb3, 0x7ff7, 0x7ff8, 0x8075, 0x81d1, 0x81d2,
-94, 0xf0a1,
-0x81d0, 0x825f, 0x825e, 0x85b4, 0x85c6, 0x85c0, 0x85c3, 0x85c2,
-0x85b3, 0x85b5, 0x85bd, 0x85c7, 0x85c4, 0x85bf, 0x85cb, 0x85ce,
-0x85c8, 0x85c5, 0x85b1, 0x85b6, 0x85d2, 0x8624, 0x85b8, 0x85b7,
-0x85be, 0x8669, 0x87e7, 0x87e6, 0x87e2, 0x87db, 0x87eb, 0x87ea,
-0x87e5, 0x87df, 0x87f3, 0x87e4, 0x87d4, 0x87dc, 0x87d3, 0x87ed,
-0x87d8, 0x87e3, 0x87a4, 0x87d7, 0x87d9, 0x8801, 0x87f4, 0x87e8,
-0x87dd, 0x8953, 0x894b, 0x894f, 0x894c, 0x8946, 0x8950, 0x8951,
-0x8949, 0x8b2a, 0x8b27, 0x8b23, 0x8b33, 0x8b30, 0x8b35, 0x8b47,
-0x8b2f, 0x8b3c, 0x8b3e, 0x8b31, 0x8b25, 0x8b37, 0x8b26, 0x8b36,
-0x8b2e, 0x8b24, 0x8b3b, 0x8b3d, 0x8b3a, 0x8c42, 0x8c75, 0x8c99,
-0x8c98, 0x8c97, 0x8cfe, 0x8d04, 0x8d02, 0x8d00, 0x8e5c, 0x8e62,
-0x8e60, 0x8e57, 0x8e56, 0x8e5e, 0x8e65, 0x8e67,
-63, 0xf140,
-0x8e5b, 0x8e5a, 0x8e61, 0x8e5d, 0x8e69, 0x8e54, 0x8f46, 0x8f47,
-0x8f48, 0x8f4b, 0x9128, 0x913a, 0x913b, 0x913e, 0x91a8, 0x91a5,
-0x91a7, 0x91af, 0x91aa, 0x93b5, 0x938c, 0x9392, 0x93b7, 0x939b,
-0x939d, 0x9389, 0x93a7, 0x938e, 0x93aa, 0x939e, 0x93a6, 0x9395,
-0x9388, 0x9399, 0x939f, 0x938d, 0x93b1, 0x9391, 0x93b2, 0x93a4,
-0x93a8, 0x93b4, 0x93a3, 0x93a5, 0x95d2, 0x95d3, 0x95d1, 0x96b3,
-0x96d7, 0x96da, 0x5dc2, 0x96df, 0x96d8, 0x96dd, 0x9723, 0x9722,
-0x9725, 0x97ac, 0x97ae, 0x97a8, 0x97ab, 0x97a4, 0x97aa,
-94, 0xf1a1,
-0x97a2, 0x97a5, 0x97d7, 0x97d9, 0x97d6, 0x97d8, 0x97fa, 0x9850,
-0x9851, 0x9852, 0x98b8, 0x9941, 0x993c, 0x993a, 0x9a0f, 0x9a0b,
-0x9a09, 0x9a0d, 0x9a04, 0x9a11, 0x9a0a, 0x9a05, 0x9a07, 0x9a06,
-0x9ac0, 0x9adc, 0x9b08, 0x9b04, 0x9b05, 0x9b29, 0x9b35, 0x9b4a,
-0x9b4c, 0x9b4b, 0x9bc7, 0x9bc6, 0x9bc3, 0x9bbf, 0x9bc1, 0x9bb5,
-0x9bb8, 0x9bd3, 0x9bb6, 0x9bc4, 0x9bb9, 0x9bbd, 0x9d5c, 0x9d53,
-0x9d4f, 0x9d4a, 0x9d5b, 0x9d4b, 0x9d59, 0x9d56, 0x9d4c, 0x9d57,
-0x9d52, 0x9d54, 0x9d5f, 0x9d58, 0x9d5a, 0x9e8e, 0x9e8c, 0x9edf,
-0x9f01, 0x9f00, 0x9f16, 0x9f25, 0x9f2b, 0x9f2a, 0x9f29, 0x9f28,
-0x9f4c, 0x9f55, 0x5134, 0x5135, 0x5296, 0x52f7, 0x53b4, 0x56ab,
-0x56ad, 0x56a6, 0x56a7, 0x56aa, 0x56ac, 0x58da, 0x58dd, 0x58db,
-0x5912, 0x5b3d, 0x5b3e, 0x5b3f, 0x5dc3, 0x5e70,
-63, 0xf240,
-0x5fbf, 0x61fb, 0x6507, 0x6510, 0x650d, 0x6509, 0x650c, 0x650e,
-0x6584, 0x65de, 0x65dd, 0x66de, 0x6ae7, 0x6ae0, 0x6acc, 0x6ad1,
-0x6ad9, 0x6acb, 0x6adf, 0x6adc, 0x6ad0, 0x6aeb, 0x6acf, 0x6acd,
-0x6ade, 0x6b60, 0x6bb0, 0x6c0c, 0x7019, 0x7027, 0x7020, 0x7016,
-0x702b, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017, 0x7024, 0x701c,
-0x702a, 0x720c, 0x720a, 0x7207, 0x7202, 0x7205, 0x72a5, 0x72a6,
-0x72a4, 0x72a3, 0x72a1, 0x74cb, 0x74c5, 0x74b7, 0x74c3, 0x7516,
-0x7660, 0x77c9, 0x77ca, 0x77c4, 0x77f1, 0x791d, 0x791b,
-94, 0xf2a1,
-0x7921, 0x791c, 0x7917, 0x791e, 0x79b0, 0x7a67, 0x7a68, 0x7c33,
-0x7c3c, 0x7c39, 0x7c2c, 0x7c3b, 0x7cec, 0x7cea, 0x7e76, 0x7e75,
-0x7e78, 0x7e70, 0x7e77, 0x7e6f, 0x7e7a, 0x7e72, 0x7e74, 0x7e68,
-0x7f4b, 0x7f4a, 0x7f83, 0x7f86, 0x7fb7, 0x7ffd, 0x7ffe, 0x8078,
-0x81d7, 0x81d5, 0x8264, 0x8261, 0x8263, 0x85eb, 0x85f1, 0x85ed,
-0x85d9, 0x85e1, 0x85e8, 0x85da, 0x85d7, 0x85ec, 0x85f2, 0x85f8,
-0x85d8, 0x85df, 0x85e3, 0x85dc, 0x85d1, 0x85f0, 0x85e6, 0x85ef,
-0x85de, 0x85e2, 0x8800, 0x87fa, 0x8803, 0x87f6, 0x87f7, 0x8809,
-0x880c, 0x880b, 0x8806, 0x87fc, 0x8808, 0x87ff, 0x880a, 0x8802,
-0x8962, 0x895a, 0x895b, 0x8957, 0x8961, 0x895c, 0x8958, 0x895d,
-0x8959, 0x8988, 0x89b7, 0x89b6, 0x89f6, 0x8b50, 0x8b48, 0x8b4a,
-0x8b40, 0x8b53, 0x8b56, 0x8b54, 0x8b4b, 0x8b55,
-63, 0xf340,
-0x8b51, 0x8b42, 0x8b52, 0x8b57, 0x8c43, 0x8c77, 0x8c76, 0x8c9a,
-0x8d06, 0x8d07, 0x8d09, 0x8dac, 0x8daa, 0x8dad, 0x8dab, 0x8e6d,
-0x8e78, 0x8e73, 0x8e6a, 0x8e6f, 0x8e7b, 0x8ec2, 0x8f52, 0x8f51,
-0x8f4f, 0x8f50, 0x8f53, 0x8fb4, 0x9140, 0x913f, 0x91b0, 0x91ad,
-0x93de, 0x93c7, 0x93cf, 0x93c2, 0x93da, 0x93d0, 0x93f9, 0x93ec,
-0x93cc, 0x93d9, 0x93a9, 0x93e6, 0x93ca, 0x93d4, 0x93ee, 0x93e3,
-0x93d5, 0x93c4, 0x93ce, 0x93c0, 0x93d2, 0x93e7, 0x957d, 0x95da,
-0x95db, 0x96e1, 0x9729, 0x972b, 0x972c, 0x9728, 0x9726,
-94, 0xf3a1,
-0x97b3, 0x97b7, 0x97b6, 0x97dd, 0x97de, 0x97df, 0x985c, 0x9859,
-0x985d, 0x9857, 0x98bf, 0x98bd, 0x98bb, 0x98be, 0x9948, 0x9947,
-0x9943, 0x99a6, 0x99a7, 0x9a1a, 0x9a15, 0x9a25, 0x9a1d, 0x9a24,
-0x9a1b, 0x9a22, 0x9a20, 0x9a27, 0x9a23, 0x9a1e, 0x9a1c, 0x9a14,
-0x9ac2, 0x9b0b, 0x9b0a, 0x9b0e, 0x9b0c, 0x9b37, 0x9bea, 0x9beb,
-0x9be0, 0x9bde, 0x9be4, 0x9be6, 0x9be2, 0x9bf0, 0x9bd4, 0x9bd7,
-0x9bec, 0x9bdc, 0x9bd9, 0x9be5, 0x9bd5, 0x9be1, 0x9bda, 0x9d77,
-0x9d81, 0x9d8a, 0x9d84, 0x9d88, 0x9d71, 0x9d80, 0x9d78, 0x9d86,
-0x9d8b, 0x9d8c, 0x9d7d, 0x9d6b, 0x9d74, 0x9d75, 0x9d70, 0x9d69,
-0x9d85, 0x9d73, 0x9d7b, 0x9d82, 0x9d6f, 0x9d79, 0x9d7f, 0x9d87,
-0x9d68, 0x9e94, 0x9e91, 0x9ec0, 0x9efc, 0x9f2d, 0x9f40, 0x9f41,
-0x9f4d, 0x9f56, 0x9f57, 0x9f58, 0x5337, 0x56b2,
-63, 0xf440,
-0x56b5, 0x56b3, 0x58e3, 0x5b45, 0x5dc6, 0x5dc7, 0x5eee, 0x5eef,
-0x5fc0, 0x5fc1, 0x61f9, 0x6517, 0x6516, 0x6515, 0x6513, 0x65df,
-0x66e8, 0x66e3, 0x66e4, 0x6af3, 0x6af0, 0x6aea, 0x6ae8, 0x6af9,
-0x6af1, 0x6aee, 0x6aef, 0x703c, 0x7035, 0x702f, 0x7037, 0x7034,
-0x7031, 0x7042, 0x7038, 0x703f, 0x703a, 0x7039, 0x7040, 0x703b,
-0x7033, 0x7041, 0x7213, 0x7214, 0x72a8, 0x737d, 0x737c, 0x74ba,
-0x76ab, 0x76aa, 0x76be, 0x76ed, 0x77cc, 0x77ce, 0x77cf, 0x77cd,
-0x77f2, 0x7925, 0x7923, 0x7927, 0x7928, 0x7924, 0x7929,
-94, 0xf4a1,
-0x79b2, 0x7a6e, 0x7a6c, 0x7a6d, 0x7af7, 0x7c49, 0x7c48, 0x7c4a,
-0x7c47, 0x7c45, 0x7cee, 0x7e7b, 0x7e7e, 0x7e81, 0x7e80, 0x7fba,
-0x7fff, 0x8079, 0x81db, 0x81d9, 0x820b, 0x8268, 0x8269, 0x8622,
-0x85ff, 0x8601, 0x85fe, 0x861b, 0x8600, 0x85f6, 0x8604, 0x8609,
-0x8605, 0x860c, 0x85fd, 0x8819, 0x8810, 0x8811, 0x8817, 0x8813,
-0x8816, 0x8963, 0x8966, 0x89b9, 0x89f7, 0x8b60, 0x8b6a, 0x8b5d,
-0x8b68, 0x8b63, 0x8b65, 0x8b67, 0x8b6d, 0x8dae, 0x8e86, 0x8e88,
-0x8e84, 0x8f59, 0x8f56, 0x8f57, 0x8f55, 0x8f58, 0x8f5a, 0x908d,
-0x9143, 0x9141, 0x91b7, 0x91b5, 0x91b2, 0x91b3, 0x940b, 0x9413,
-0x93fb, 0x9420, 0x940f, 0x9414, 0x93fe, 0x9415, 0x9410, 0x9428,
-0x9419, 0x940d, 0x93f5, 0x9400, 0x93f7, 0x9407, 0x940e, 0x9416,
-0x9412, 0x93fa, 0x9409, 0x93f8, 0x940a, 0x93ff,
-63, 0xf540,
-0x93fc, 0x940c, 0x93f6, 0x9411, 0x9406, 0x95de, 0x95e0, 0x95df,
-0x972e, 0x972f, 0x97b9, 0x97bb, 0x97fd, 0x97fe, 0x9860, 0x9862,
-0x9863, 0x985f, 0x98c1, 0x98c2, 0x9950, 0x994e, 0x9959, 0x994c,
-0x994b, 0x9953, 0x9a32, 0x9a34, 0x9a31, 0x9a2c, 0x9a2a, 0x9a36,
-0x9a29, 0x9a2e, 0x9a38, 0x9a2d, 0x9ac7, 0x9aca, 0x9ac6, 0x9b10,
-0x9b12, 0x9b11, 0x9c0b, 0x9c08, 0x9bf7, 0x9c05, 0x9c12, 0x9bf8,
-0x9c40, 0x9c07, 0x9c0e, 0x9c06, 0x9c17, 0x9c14, 0x9c09, 0x9d9f,
-0x9d99, 0x9da4, 0x9d9d, 0x9d92, 0x9d98, 0x9d90, 0x9d9b,
-94, 0xf5a1,
-0x9da0, 0x9d94, 0x9d9c, 0x9daa, 0x9d97, 0x9da1, 0x9d9a, 0x9da2,
-0x9da8, 0x9d9e, 0x9da3, 0x9dbf, 0x9da9, 0x9d96, 0x9da6, 0x9da7,
-0x9e99, 0x9e9b, 0x9e9a, 0x9ee5, 0x9ee4, 0x9ee7, 0x9ee6, 0x9f30,
-0x9f2e, 0x9f5b, 0x9f60, 0x9f5e, 0x9f5d, 0x9f59, 0x9f91, 0x513a,
-0x5139, 0x5298, 0x5297, 0x56c3, 0x56bd, 0x56be, 0x5b48, 0x5b47,
-0x5dcb, 0x5dcf, 0x5ef1, 0x61fd, 0x651b, 0x6b02, 0x6afc, 0x6b03,
-0x6af8, 0x6b00, 0x7043, 0x7044, 0x704a, 0x7048, 0x7049, 0x7045,
-0x7046, 0x721d, 0x721a, 0x7219, 0x737e, 0x7517, 0x766a, 0x77d0,
-0x792d, 0x7931, 0x792f, 0x7c54, 0x7c53, 0x7cf2, 0x7e8a, 0x7e87,
-0x7e88, 0x7e8b, 0x7e86, 0x7e8d, 0x7f4d, 0x7fbb, 0x8030, 0x81dd,
-0x8618, 0x862a, 0x8626, 0x861f, 0x8623, 0x861c, 0x8619, 0x8627,
-0x862e, 0x8621, 0x8620, 0x8629, 0x861e, 0x8625,
-63, 0xf640,
-0x8829, 0x881d, 0x881b, 0x8820, 0x8824, 0x881c, 0x882b, 0x884a,
-0x896d, 0x8969, 0x896e, 0x896b, 0x89fa, 0x8b79, 0x8b78, 0x8b45,
-0x8b7a, 0x8b7b, 0x8d10, 0x8d14, 0x8daf, 0x8e8e, 0x8e8c, 0x8f5e,
-0x8f5b, 0x8f5d, 0x9146, 0x9144, 0x9145, 0x91b9, 0x943f, 0x943b,
-0x9436, 0x9429, 0x943d, 0x943c, 0x9430, 0x9439, 0x942a, 0x9437,
-0x942c, 0x9440, 0x9431, 0x95e5, 0x95e4, 0x95e3, 0x9735, 0x973a,
-0x97bf, 0x97e1, 0x9864, 0x98c9, 0x98c6, 0x98c0, 0x9958, 0x9956,
-0x9a39, 0x9a3d, 0x9a46, 0x9a44, 0x9a42, 0x9a41, 0x9a3a,
-94, 0xf6a1,
-0x9a3f, 0x9acd, 0x9b15, 0x9b17, 0x9b18, 0x9b16, 0x9b3a, 0x9b52,
-0x9c2b, 0x9c1d, 0x9c1c, 0x9c2c, 0x9c23, 0x9c28, 0x9c29, 0x9c24,
-0x9c21, 0x9db7, 0x9db6, 0x9dbc, 0x9dc1, 0x9dc7, 0x9dca, 0x9dcf,
-0x9dbe, 0x9dc5, 0x9dc3, 0x9dbb, 0x9db5, 0x9dce, 0x9db9, 0x9dba,
-0x9dac, 0x9dc8, 0x9db1, 0x9dad, 0x9dcc, 0x9db3, 0x9dcd, 0x9db2,
-0x9e7a, 0x9e9c, 0x9eeb, 0x9eee, 0x9eed, 0x9f1b, 0x9f18, 0x9f1a,
-0x9f31, 0x9f4e, 0x9f65, 0x9f64, 0x9f92, 0x4eb9, 0x56c6, 0x56c5,
-0x56cb, 0x5971, 0x5b4b, 0x5b4c, 0x5dd5, 0x5dd1, 0x5ef2, 0x6521,
-0x6520, 0x6526, 0x6522, 0x6b0b, 0x6b08, 0x6b09, 0x6c0d, 0x7055,
-0x7056, 0x7057, 0x7052, 0x721e, 0x721f, 0x72a9, 0x737f, 0x74d8,
-0x74d5, 0x74d9, 0x74d7, 0x766d, 0x76ad, 0x7935, 0x79b4, 0x7a70,
-0x7a71, 0x7c57, 0x7c5c, 0x7c59, 0x7c5b, 0x7c5a,
-63, 0xf740,
-0x7cf4, 0x7cf1, 0x7e91, 0x7f4f, 0x7f87, 0x81de, 0x826b, 0x8634,
-0x8635, 0x8633, 0x862c, 0x8632, 0x8636, 0x882c, 0x8828, 0x8826,
-0x882a, 0x8825, 0x8971, 0x89bf, 0x89be, 0x89fb, 0x8b7e, 0x8b84,
-0x8b82, 0x8b86, 0x8b85, 0x8b7f, 0x8d15, 0x8e95, 0x8e94, 0x8e9a,
-0x8e92, 0x8e90, 0x8e96, 0x8e97, 0x8f60, 0x8f62, 0x9147, 0x944c,
-0x9450, 0x944a, 0x944b, 0x944f, 0x9447, 0x9445, 0x9448, 0x9449,
-0x9446, 0x973f, 0x97e3, 0x986a, 0x9869, 0x98cb, 0x9954, 0x995b,
-0x9a4e, 0x9a53, 0x9a54, 0x9a4c, 0x9a4f, 0x9a48, 0x9a4a,
-94, 0xf7a1,
-0x9a49, 0x9a52, 0x9a50, 0x9ad0, 0x9b19, 0x9b2b, 0x9b3b, 0x9b56,
-0x9b55, 0x9c46, 0x9c48, 0x9c3f, 0x9c44, 0x9c39, 0x9c33, 0x9c41,
-0x9c3c, 0x9c37, 0x9c34, 0x9c32, 0x9c3d, 0x9c36, 0x9ddb, 0x9dd2,
-0x9dde, 0x9dda, 0x9dcb, 0x9dd0, 0x9ddc, 0x9dd1, 0x9ddf, 0x9de9,
-0x9dd9, 0x9dd8, 0x9dd6, 0x9df5, 0x9dd5, 0x9ddd, 0x9eb6, 0x9ef0,
-0x9f35, 0x9f33, 0x9f32, 0x9f42, 0x9f6b, 0x9f95, 0x9fa2, 0x513d,
-0x5299, 0x58e8, 0x58e7, 0x5972, 0x5b4d, 0x5dd8, 0x882f, 0x5f4f,
-0x6201, 0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66eb, 0x6b11,
-0x6b12, 0x6b0f, 0x6bca, 0x705b, 0x705a, 0x7222, 0x7382, 0x7381,
-0x7383, 0x7670, 0x77d4, 0x7c67, 0x7c66, 0x7e95, 0x826c, 0x863a,
-0x8640, 0x8639, 0x863c, 0x8631, 0x863b, 0x863e, 0x8830, 0x8832,
-0x882e, 0x8833, 0x8976, 0x8974, 0x8973, 0x89fe,
-63, 0xf840,
-0x8b8c, 0x8b8e, 0x8b8b, 0x8b88, 0x8c45, 0x8d19, 0x8e98, 0x8f64,
-0x8f63, 0x91bc, 0x9462, 0x9455, 0x945d, 0x9457, 0x945e, 0x97c4,
-0x97c5, 0x9800, 0x9a56, 0x9a59, 0x9b1e, 0x9b1f, 0x9b20, 0x9c52,
-0x9c58, 0x9c50, 0x9c4a, 0x9c4d, 0x9c4b, 0x9c55, 0x9c59, 0x9c4c,
-0x9c4e, 0x9dfb, 0x9df7, 0x9def, 0x9de3, 0x9deb, 0x9df8, 0x9de4,
-0x9df6, 0x9de1, 0x9dee, 0x9de6, 0x9df2, 0x9df0, 0x9de2, 0x9dec,
-0x9df4, 0x9df3, 0x9de8, 0x9ded, 0x9ec2, 0x9ed0, 0x9ef2, 0x9ef3,
-0x9f06, 0x9f1c, 0x9f38, 0x9f37, 0x9f36, 0x9f43, 0x9f4f,
-94, 0xf8a1,
-0x9f71, 0x9f70, 0x9f6e, 0x9f6f, 0x56d3, 0x56cd, 0x5b4e, 0x5c6d,
-0x652d, 0x66ed, 0x66ee, 0x6b13, 0x705f, 0x7061, 0x705d, 0x7060,
-0x7223, 0x74db, 0x74e5, 0x77d5, 0x7938, 0x79b7, 0x79b6, 0x7c6a,
-0x7e97, 0x7f89, 0x826d, 0x8643, 0x8838, 0x8837, 0x8835, 0x884b,
-0x8b94, 0x8b95, 0x8e9e, 0x8e9f, 0x8ea0, 0x8e9d, 0x91be, 0x91bd,
-0x91c2, 0x946b, 0x9468, 0x9469, 0x96e5, 0x9746, 0x9743, 0x9747,
-0x97c7, 0x97e5, 0x9a5e, 0x9ad5, 0x9b59, 0x9c63, 0x9c67, 0x9c66,
-0x9c62, 0x9c5e, 0x9c60, 0x9e02, 0x9dfe, 0x9e07, 0x9e03, 0x9e06,
-0x9e05, 0x9e00, 0x9e01, 0x9e09, 0x9dff, 0x9dfd, 0x9e04, 0x9ea0,
-0x9f1e, 0x9f46, 0x9f74, 0x9f75, 0x9f76, 0x56d4, 0x652e, 0x65b8,
-0x6b18, 0x6b19, 0x6b17, 0x6b1a, 0x7062, 0x7226, 0x72aa, 0x77d8,
-0x77d9, 0x7939, 0x7c69, 0x7c6b, 0x7cf6, 0x7e9a,
-63, 0xf940,
-0x7e98, 0x7e9b, 0x7e99, 0x81e0, 0x81e1, 0x8646, 0x8647, 0x8648,
-0x8979, 0x897a, 0x897c, 0x897b, 0x89ff, 0x8b98, 0x8b99, 0x8ea5,
-0x8ea4, 0x8ea3, 0x946e, 0x946d, 0x946f, 0x9471, 0x9473, 0x9749,
-0x9872, 0x995f, 0x9c68, 0x9c6e, 0x9c6d, 0x9e0b, 0x9e0d, 0x9e10,
-0x9e0f, 0x9e12, 0x9e11, 0x9ea1, 0x9ef5, 0x9f09, 0x9f47, 0x9f78,
-0x9f7b, 0x9f7a, 0x9f79, 0x571e, 0x7066, 0x7c6f, 0x883c, 0x8db2,
-0x8ea6, 0x91c3, 0x9474, 0x9478, 0x9476, 0x9475, 0x9a60, 0x9c74,
-0x9c73, 0x9c71, 0x9c75, 0x9e14, 0x9e13, 0x9ef6, 0x9f0a,
-53, 0xf9a1,
-0x9fa4, 0x7068, 0x7065, 0x7cf7, 0x866a, 0x883e, 0x883d, 0x883f,
-0x8b9e, 0x8c9c, 0x8ea9, 0x8ec9, 0x974b, 0x9873, 0x9874, 0x98cc,
-0x9961, 0x99ab, 0x9a64, 0x9a66, 0x9a67, 0x9b24, 0x9e15, 0x9e17,
-0x9f48, 0x6207, 0x6b1e, 0x7227, 0x864c, 0x8ea8, 0x9482, 0x9480,
-0x9481, 0x9a69, 0x9a68, 0x9b2e, 0x9e19, 0x7229, 0x864b, 0x8b9f,
-0x9483, 0x9c79, 0x9eb7, 0x7675, 0x9a6b, 0x9c7a, 0x9e1d, 0x7069,
-0x706a, 0x9ea4, 0x9f7e, 0x9f49, 0x9f98,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/entmgr_inst.m4	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1995 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-
-#ifdef SP_MANUAL_INST
-
-#define	SP_DEFINE_TEMPLATES
-#include "Owner.h"
-#include "CopyOwner.h"
-#include "RangeMap.h"
-#include "Ptr.h"
-#include "StringOf.h"
-#include "StringC.h"
-#include "Vector.h"
-#include "ISet.h"
-#include "ISetIter.h"
-#include "XcharMap.h"
-#include "SubstTable.h"
-#include "StringResource.h"
-#include "CharMap.h"
-#undef SP_DEFINE_TEMPLATES
-
-#include "types.h"
-#include "Location.h"
-#include "Message.h"
-#include "NamedResource.h"
-#include "EntityManager.h"
-#include "CharsetRegistry.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-__instantiate(Ptr < InputSourceOrigin >\
-)
-__instantiate(ConstPtr < InputSourceOrigin >\
-)
-__instantiate(Ptr < Origin >\
-)
-__instantiate(ConstPtr < Origin >\
-)
-__instantiate(Ptr < SharedXcharMap < unsigned char >  >\
-)
-__instantiate(ConstPtr < SharedXcharMap < unsigned char >  >\
-)
-__instantiate(Ptr < SharedXcharMap < PackedBoolean >  >\
-)
-__instantiate(ConstPtr < SharedXcharMap < PackedBoolean >  >\
-)
-__instantiate(Ptr < SharedXcharMap < EquivCode >  >\
-)
-__instantiate(ConstPtr < SharedXcharMap < EquivCode >  >\
-)
-__instantiate(Ptr < StringResource < Char >  >\
-)
-__instantiate(ConstPtr < StringResource < Char >  >\
-)
-__instantiate(Ptr < NamedResource >\
-)
-__instantiate(ConstPtr < NamedResource >\
-)
-__instantiate(Ptr < EntityManager >\
-)
-__instantiate(ConstPtr < EntityManager >\
-)
-__instantiate(Ptr < EntityCatalog >\
-)
-__instantiate(ConstPtr < EntityCatalog >\
-)
-__instantiate(Owner < MessageArg >\
-)
-__instantiate(CopyOwner < MessageArg >\
-)
-__instantiate(String < Char >\
-)
-__instantiate(Vector < OpenElementInfo >\
-)
-__instantiate(Vector < CopyOwner < MessageArg >  >\
-)
-__instantiate(SharedXcharMap < unsigned char >\
-)
-__instantiate(XcharMap < unsigned char >\
-)
-__instantiate(`Vector < RangeMapRange < WideChar, UnivChar >  > '\
-)
-__instantiate(`RangeMapIter < WideChar, UnivChar > ')
-__instantiate(`RangeMap < WideChar, UnivChar > ')
-__instantiate(Vector < InputSourceOriginNamedCharRef >\
-)
-__instantiate(Vector < StringC >\
-)
-__instantiate(Owner < ExternalInfo >\
-)
-__instantiate(ISet < Char >\
-)
-__instantiate(Vector < ISetRange < Char >  >\
-)
-__instantiate(ISet < WideChar >\
-)
-__instantiate(ISetIter < Char >\
-)
-__instantiate(ISetIter < WideChar >\
-)
-__instantiate(Vector < ISetRange < WideChar >  >\
-)
-__instantiate(SubstTable < Char >\
-)
-__instantiate(SharedXcharMap < PackedBoolean >\
-)
-__instantiate(SharedXcharMap < EquivCode >\
-)
-__instantiate(String < SyntaxChar >\
-)
-__instantiate(XcharMap < PackedBoolean >\
-)
-__instantiate(XcharMap < EquivCode >\
-)
-__instantiate(Vector < char >\
-)
-#if defined(SP_HAVE_BOOL) && defined(SP_SIZEOF_BOOL_1)
-__instantiate(Vector < PackedBoolean >\
-)
-#endif
-__instantiate(CharMap < Unsigned32 >\
-)
-#ifdef SP_MULTI_BYTE
-__instantiate(CharMapPage < Unsigned32 >\
-)
-__instantiate(CharMapColumn < Unsigned32 >\
-)
-#endif
-__instantiate(CharMapResource < Unsigned32 >\
-)
-__instantiate(Ptr < CharMapResource < Unsigned32 >  >\
-)
-__instantiate(ConstPtr < CharMapResource < Unsigned32 > >\
-)
-__instantiate(Owner < CharsetRegistry::Iter >\
-)
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* SP_MANUAL_INST */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/events.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-// Copyright (c) 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-EVENT(MessageEvent, message)
-EVENT(DataEvent, data)
-EVENT(StartElementEvent, startElement)
-EVENT(EndElementEvent, endElement)
-EVENT(PiEvent, pi)
-EVENT(SdataEntityEvent, sdataEntity)
-EVENT(ExternalDataEntityEvent, externalDataEntity)
-EVENT(SubdocEntityEvent, subdocEntity)
-EVENT(NonSgmlCharEvent, nonSgmlChar)
-EVENT(AppinfoEvent, appinfo)
-EVENT(UselinkEvent, uselink)
-EVENT(UsemapEvent, usemap)
-EVENT(StartDtdEvent, startDtd)
-EVENT(EndDtdEvent, endDtd)
-EVENT(StartLpdEvent, startLpd)
-EVENT(EndLpdEvent, endLpd)
-EVENT(EndPrologEvent, endProlog)
-EVENT(SgmlDeclEvent, sgmlDecl)
-EVENT(CommentDeclEvent, commentDecl)
-EVENT(SSepEvent, sSep)
-EVENT(IgnoredReEvent, ignoredRe)
-EVENT(ReOriginEvent, reOrigin)
-EVENT(IgnoredRsEvent, ignoredRs)
-EVENT(IgnoredCharsEvent, ignoredChars)
-EVENT(MarkedSectionStartEvent, markedSectionStart)
-EVENT(MarkedSectionEndEvent, markedSectionEnd)
-EVENT(EntityStartEvent, entityStart)
-EVENT(EntityEndEvent, entityEnd)
-EVENT(EntityDeclEvent, entityDecl)
-EVENT(NotationDeclEvent, notationDecl)
-EVENT(ElementDeclEvent, elementDecl)
-EVENT(AttlistDeclEvent, attlistDecl)
-EVENT(LinkAttlistDeclEvent, linkAttlistDecl)
-EVENT(AttlistNotationDeclEvent, attlistNotationDecl)
-EVENT(LinkDeclEvent, linkDecl)
-EVENT(IdLinkDeclEvent, idLinkDecl)
-EVENT(ShortrefDeclEvent, shortrefDecl)
-EVENT(IgnoredMarkupEvent, ignoredMarkup)
-EVENT(EntityDefaultedEvent, entityDefaulted)
-EVENT(SgmlDeclEntityEvent, sgmlDeclEntity)
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/gb2312.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1043 +0,0 @@
-94, 0x2121,
-0x3000, 0x3001, 0x3002, 0x30fb, 0x02c9, 0x02c7, 0x00a8, 0x3003,
-0x3005, 0x2015, 0xff5e, 0x2225, 0x2026, 0x2018, 0x2019, 0x201c,
-0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c,
-0x300d, 0x300e, 0x300f, 0x3016, 0x3017, 0x3010, 0x3011, 0x00b1,
-0x00d7, 0x00f7, 0x2236, 0x2227, 0x2228, 0x2211, 0x220f, 0x222a,
-0x2229, 0x2208, 0x2237, 0x221a, 0x22a5, 0x2225, 0x2220, 0x2312,
-0x2299, 0x222b, 0x222e, 0x2261, 0x224c, 0x2248, 0x223d, 0x221d,
-0x2260, 0x226e, 0x226f, 0x2264, 0x2265, 0x221e, 0x2235, 0x2234,
-0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xff04, 0x00a4,
-0xffe0, 0xffe1, 0x2030, 0x00a7, 0x2116, 0x2606, 0x2605, 0x25cb,
-0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2,
-0x203b, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013,
-50, 0x2231,
-0x2488, 0x2489, 0x248a, 0x248b, 0x248c, 0x248d, 0x248e, 0x248f,
-0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497,
-0x2498, 0x2499, 0x249a, 0x249b, 0x2474, 0x2475, 0x2476, 0x2477,
-0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f,
-0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487,
-0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467,
-0x2468, 0x2469,
-10, 0x2265,
-0x3220, 0x3221, 0x3222, 0x3223, 0x3224, 0x3225, 0x3226, 0x3227,
-0x3228, 0x3229,
-12, 0x2271,
-0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
-0x2168, 0x2169, 0x216a, 0x216b,
-94, 0x2321,
-0xff01, 0xff02, 0xff03, 0xffe5, 0xff05, 0xff06, 0xff07, 0xff08,
-0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10,
-0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18,
-0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20,
-0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
-0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
-0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
-0xff39, 0xff3a, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff3f, 0xff40,
-0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48,
-0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50,
-0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58,
-0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xffe3,
-83, 0x2421,
-0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048,
-0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050,
-0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
-0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
-0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
-0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
-0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
-0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
-0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
-0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
-0x3091, 0x3092, 0x3093,
-86, 0x2521,
-0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8,
-0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0,
-0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8,
-0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
-0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8,
-0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0,
-0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8,
-0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0,
-0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8,
-0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0,
-0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6,
-24, 0x2621,
-0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
-0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0,
-0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
-24, 0x2641,
-0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8,
-0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0,
-0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,
-33, 0x2721,
-0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416,
-0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
-0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426,
-0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e,
-0x042f,
-33, 0x2751,
-0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436,
-0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
-0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446,
-0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e,
-0x044f,
-26, 0x2821,
-0x0101, 0x00e1, 0x01ce, 0x00e0, 0x0113, 0x00e9, 0x011b, 0x00e8,
-0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, 0x00f2,
-0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, 0x01dc,
-0x00fc, 0x00ea,
-37, 0x2845,
-0x3105, 0x3106, 0x3107, 0x3108, 0x3109, 0x310a, 0x310b, 0x310c,
-0x310d, 0x310e, 0x310f, 0x3110, 0x3111, 0x3112, 0x3113, 0x3114,
-0x3115, 0x3116, 0x3117, 0x3118, 0x3119, 0x311a, 0x311b, 0x311c,
-0x311d, 0x311e, 0x311f, 0x3120, 0x3121, 0x3122, 0x3123, 0x3124,
-0x3125, 0x3126, 0x3127, 0x3128, 0x3129,
-76, 0x2924,
-0x2500, 0x2501, 0x2502, 0x2503, 0x2504, 0x2505, 0x2506, 0x2507,
-0x2508, 0x2509, 0x250a, 0x250b, 0x250c, 0x250d, 0x250e, 0x250f,
-0x2510, 0x2511, 0x2512, 0x2513, 0x2514, 0x2515, 0x2516, 0x2517,
-0x2518, 0x2519, 0x251a, 0x251b, 0x251c, 0x251d, 0x251e, 0x251f,
-0x2520, 0x2521, 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, 0x2527,
-0x2528, 0x2529, 0x252a, 0x252b, 0x252c, 0x252d, 0x252e, 0x252f,
-0x2530, 0x2531, 0x2532, 0x2533, 0x2534, 0x2535, 0x2536, 0x2537,
-0x2538, 0x2539, 0x253a, 0x253b, 0x253c, 0x253d, 0x253e, 0x253f,
-0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, 0x2547,
-0x2548, 0x2549, 0x254a, 0x254b,
-94, 0x3021,
-0x554a, 0x963f, 0x57c3, 0x6328, 0x54ce, 0x5509, 0x54c0, 0x7691,
-0x764c, 0x853c, 0x77ee, 0x827e, 0x788d, 0x7231, 0x9698, 0x978d,
-0x6c28, 0x5b89, 0x4ffa, 0x6309, 0x6697, 0x5cb8, 0x80fa, 0x6848,
-0x80ae, 0x6602, 0x76ce, 0x51f9, 0x6556, 0x71ac, 0x7ff1, 0x8884,
-0x50b2, 0x5965, 0x61ca, 0x6fb3, 0x82ad, 0x634c, 0x6252, 0x53ed,
-0x5427, 0x7b06, 0x516b, 0x75a4, 0x5df4, 0x62d4, 0x8dcb, 0x9776,
-0x628a, 0x8019, 0x575d, 0x9738, 0x7f62, 0x7238, 0x767d, 0x67cf,
-0x767e, 0x6446, 0x4f70, 0x8d25, 0x62dc, 0x7a17, 0x6591, 0x73ed,
-0x642c, 0x6273, 0x822c, 0x9881, 0x677f, 0x7248, 0x626e, 0x62cc,
-0x4f34, 0x74e3, 0x534a, 0x529e, 0x7eca, 0x90a6, 0x5e2e, 0x6886,
-0x699c, 0x8180, 0x7ed1, 0x68d2, 0x78c5, 0x868c, 0x9551, 0x508d,
-0x8c24, 0x82de, 0x80de, 0x5305, 0x8912, 0x5265,
-94, 0x3121,
-0x8584, 0x96f9, 0x4fdd, 0x5821, 0x9971, 0x5b9d, 0x62b1, 0x62a5,
-0x66b4, 0x8c79, 0x9c8d, 0x7206, 0x676f, 0x7891, 0x60b2, 0x5351,
-0x5317, 0x8f88, 0x80cc, 0x8d1d, 0x94a1, 0x500d, 0x72c8, 0x5907,
-0x60eb, 0x7119, 0x88ab, 0x5954, 0x82ef, 0x672c, 0x7b28, 0x5d29,
-0x7ef7, 0x752d, 0x6cf5, 0x8e66, 0x8ff8, 0x903c, 0x9f3b, 0x6bd4,
-0x9119, 0x7b14, 0x5f7c, 0x78a7, 0x84d6, 0x853d, 0x6bd5, 0x6bd9,
-0x6bd6, 0x5e01, 0x5e87, 0x75f9, 0x95ed, 0x655d, 0x5f0a, 0x5fc5,
-0x8f9f, 0x58c1, 0x81c2, 0x907f, 0x965b, 0x97ad, 0x8fb9, 0x7f16,
-0x8d2c, 0x6241, 0x4fbf, 0x53d8, 0x535e, 0x8fa8, 0x8fa9, 0x8fab,
-0x904d, 0x6807, 0x5f6a, 0x8198, 0x8868, 0x9cd6, 0x618b, 0x522b,
-0x762a, 0x5f6c, 0x658c, 0x6fd2, 0x6ee8, 0x5bbe, 0x6448, 0x5175,
-0x51b0, 0x67c4, 0x4e19, 0x79c9, 0x997c, 0x70b3,
-94, 0x3221,
-0x75c5, 0x5e76, 0x73bb, 0x83e0, 0x64ad, 0x62e8, 0x94b5, 0x6ce2,
-0x535a, 0x52c3, 0x640f, 0x94c2, 0x7b94, 0x4f2f, 0x5e1b, 0x8236,
-0x8116, 0x818a, 0x6e24, 0x6cca, 0x9a73, 0x6355, 0x535c, 0x54fa,
-0x8865, 0x57e0, 0x4e0d, 0x5e03, 0x6b65, 0x7c3f, 0x90e8, 0x6016,
-0x64e6, 0x731c, 0x88c1, 0x6750, 0x624d, 0x8d22, 0x776c, 0x8e29,
-0x91c7, 0x5f69, 0x83dc, 0x8521, 0x9910, 0x53c2, 0x8695, 0x6b8b,
-0x60ed, 0x60e8, 0x707f, 0x82cd, 0x8231, 0x4ed3, 0x6ca7, 0x85cf,
-0x64cd, 0x7cd9, 0x69fd, 0x66f9, 0x8349, 0x5395, 0x7b56, 0x4fa7,
-0x518c, 0x6d4b, 0x5c42, 0x8e6d, 0x63d2, 0x53c9, 0x832c, 0x8336,
-0x67e5, 0x78b4, 0x643d, 0x5bdf, 0x5c94, 0x5dee, 0x8be7, 0x62c6,
-0x67f4, 0x8c7a, 0x6400, 0x63ba, 0x8749, 0x998b, 0x8c17, 0x7f20,
-0x94f2, 0x4ea7, 0x9610, 0x98a4, 0x660c, 0x7316,
-94, 0x3321,
-0x573a, 0x5c1d, 0x5e38, 0x957f, 0x507f, 0x80a0, 0x5382, 0x655e,
-0x7545, 0x5531, 0x5021, 0x8d85, 0x6284, 0x949e, 0x671d, 0x5632,
-0x6f6e, 0x5de2, 0x5435, 0x7092, 0x8f66, 0x626f, 0x64a4, 0x63a3,
-0x5f7b, 0x6f88, 0x90f4, 0x81e3, 0x8fb0, 0x5c18, 0x6668, 0x5ff1,
-0x6c89, 0x9648, 0x8d81, 0x886c, 0x6491, 0x79f0, 0x57ce, 0x6a59,
-0x6210, 0x5448, 0x4e58, 0x7a0b, 0x60e9, 0x6f84, 0x8bda, 0x627f,
-0x901e, 0x9a8b, 0x79e4, 0x5403, 0x75f4, 0x6301, 0x5319, 0x6c60,
-0x8fdf, 0x5f1b, 0x9a70, 0x803b, 0x9f7f, 0x4f88, 0x5c3a, 0x8d64,
-0x7fc5, 0x65a5, 0x70bd, 0x5145, 0x51b2, 0x866b, 0x5d07, 0x5ba0,
-0x62bd, 0x916c, 0x7574, 0x8e0c, 0x7a20, 0x6101, 0x7b79, 0x4ec7,
-0x7ef8, 0x7785, 0x4e11, 0x81ed, 0x521d, 0x51fa, 0x6a71, 0x53a8,
-0x8e87, 0x9504, 0x96cf, 0x6ec1, 0x9664, 0x695a,
-94, 0x3421,
-0x7840, 0x50a8, 0x77d7, 0x6410, 0x89e6, 0x5904, 0x63e3, 0x5ddd,
-0x7a7f, 0x693d, 0x4f20, 0x8239, 0x5598, 0x4e32, 0x75ae, 0x7a97,
-0x5e62, 0x5e8a, 0x95ef, 0x521b, 0x5439, 0x708a, 0x6376, 0x9524,
-0x5782, 0x6625, 0x693f, 0x9187, 0x5507, 0x6df3, 0x7eaf, 0x8822,
-0x6233, 0x7ef0, 0x75b5, 0x8328, 0x78c1, 0x96cc, 0x8f9e, 0x6148,
-0x74f7, 0x8bcd, 0x6b64, 0x523a, 0x8d50, 0x6b21, 0x806a, 0x8471,
-0x56f1, 0x5306, 0x4ece, 0x4e1b, 0x51d1, 0x7c97, 0x918b, 0x7c07,
-0x4fc3, 0x8e7f, 0x7be1, 0x7a9c, 0x6467, 0x5d14, 0x50ac, 0x8106,
-0x7601, 0x7cb9, 0x6dec, 0x7fe0, 0x6751, 0x5b58, 0x5bf8, 0x78cb,
-0x64ae, 0x6413, 0x63aa, 0x632b, 0x9519, 0x642d, 0x8fbe, 0x7b54,
-0x7629, 0x6253, 0x5927, 0x5446, 0x6b79, 0x50a3, 0x6234, 0x5e26,
-0x6b86, 0x4ee3, 0x8d37, 0x888b, 0x5f85, 0x902e,
-94, 0x3521,
-0x6020, 0x803d, 0x62c5, 0x4e39, 0x5355, 0x90f8, 0x63b8, 0x80c6,
-0x65e6, 0x6c2e, 0x4f46, 0x60ee, 0x6de1, 0x8bde, 0x5f39, 0x86cb,
-0x5f53, 0x6321, 0x515a, 0x8361, 0x6863, 0x5200, 0x6363, 0x8e48,
-0x5012, 0x5c9b, 0x7977, 0x5bfc, 0x5230, 0x7a3b, 0x60bc, 0x9053,
-0x76d7, 0x5fb7, 0x5f97, 0x7684, 0x8e6c, 0x706f, 0x767b, 0x7b49,
-0x77aa, 0x51f3, 0x9093, 0x5824, 0x4f4e, 0x6ef4, 0x8fea, 0x654c,
-0x7b1b, 0x72c4, 0x6da4, 0x7fdf, 0x5ae1, 0x62b5, 0x5e95, 0x5730,
-0x8482, 0x7b2c, 0x5e1d, 0x5f1f, 0x9012, 0x7f14, 0x98a0, 0x6382,
-0x6ec7, 0x7898, 0x70b9, 0x5178, 0x975b, 0x57ab, 0x7535, 0x4f43,
-0x7538, 0x5e97, 0x60e6, 0x5960, 0x6dc0, 0x6bbf, 0x7889, 0x53fc,
-0x96d5, 0x51cb, 0x5201, 0x6389, 0x540a, 0x9493, 0x8c03, 0x8dcc,
-0x7239, 0x789f, 0x8776, 0x8fed, 0x8c0d, 0x53e0,
-94, 0x3621,
-0x4e01, 0x76ef, 0x53ee, 0x9489, 0x9876, 0x9f0e, 0x952d, 0x5b9a,
-0x8ba2, 0x4e22, 0x4e1c, 0x51ac, 0x8463, 0x61c2, 0x52a8, 0x680b,
-0x4f97, 0x606b, 0x51bb, 0x6d1e, 0x515c, 0x6296, 0x6597, 0x9661,
-0x8c46, 0x9017, 0x75d8, 0x90fd, 0x7763, 0x6bd2, 0x728a, 0x72ec,
-0x8bfb, 0x5835, 0x7779, 0x8d4c, 0x675c, 0x9540, 0x809a, 0x5ea6,
-0x6e21, 0x5992, 0x7aef, 0x77ed, 0x953b, 0x6bb5, 0x65ad, 0x7f0e,
-0x5806, 0x5151, 0x961f, 0x5bf9, 0x58a9, 0x5428, 0x8e72, 0x6566,
-0x987f, 0x56e4, 0x949d, 0x76fe, 0x9041, 0x6387, 0x54c6, 0x591a,
-0x593a, 0x579b, 0x8eb2, 0x6735, 0x8dfa, 0x8235, 0x5241, 0x60f0,
-0x5815, 0x86fe, 0x5ce8, 0x9e45, 0x4fc4, 0x989d, 0x8bb9, 0x5a25,
-0x6076, 0x5384, 0x627c, 0x904f, 0x9102, 0x997f, 0x6069, 0x800c,
-0x513f, 0x8033, 0x5c14, 0x9975, 0x6d31, 0x4e8c,
-94, 0x3721,
-0x8d30, 0x53d1, 0x7f5a, 0x7b4f, 0x4f10, 0x4e4f, 0x9600, 0x6cd5,
-0x73d0, 0x85e9, 0x5e06, 0x756a, 0x7ffb, 0x6a0a, 0x77fe, 0x9492,
-0x7e41, 0x51e1, 0x70e6, 0x53cd, 0x8fd4, 0x8303, 0x8d29, 0x72af,
-0x996d, 0x6cdb, 0x574a, 0x82b3, 0x65b9, 0x80aa, 0x623f, 0x9632,
-0x59a8, 0x4eff, 0x8bbf, 0x7eba, 0x653e, 0x83f2, 0x975e, 0x5561,
-0x98de, 0x80a5, 0x532a, 0x8bfd, 0x5420, 0x80ba, 0x5e9f, 0x6cb8,
-0x8d39, 0x82ac, 0x915a, 0x5429, 0x6c1b, 0x5206, 0x7eb7, 0x575f,
-0x711a, 0x6c7e, 0x7c89, 0x594b, 0x4efd, 0x5fff, 0x6124, 0x7caa,
-0x4e30, 0x5c01, 0x67ab, 0x8702, 0x5cf0, 0x950b, 0x98ce, 0x75af,
-0x70fd, 0x9022, 0x51af, 0x7f1d, 0x8bbd, 0x5949, 0x51e4, 0x4f5b,
-0x5426, 0x592b, 0x6577, 0x80a4, 0x5b75, 0x6276, 0x62c2, 0x8f90,
-0x5e45, 0x6c1f, 0x7b26, 0x4f0f, 0x4fd8, 0x670d,
-94, 0x3821,
-0x6d6e, 0x6daa, 0x798f, 0x88b1, 0x5f17, 0x752b, 0x629a, 0x8f85,
-0x4fef, 0x91dc, 0x65a7, 0x812f, 0x8151, 0x5e9c, 0x8150, 0x8d74,
-0x526f, 0x8986, 0x8d4b, 0x590d, 0x5085, 0x4ed8, 0x961c, 0x7236,
-0x8179, 0x8d1f, 0x5bcc, 0x8ba3, 0x9644, 0x5987, 0x7f1a, 0x5490,
-0x5676, 0x560e, 0x8be5, 0x6539, 0x6982, 0x9499, 0x76d6, 0x6e89,
-0x5e72, 0x7518, 0x6746, 0x67d1, 0x7aff, 0x809d, 0x8d76, 0x611f,
-0x79c6, 0x6562, 0x8d63, 0x5188, 0x521a, 0x94a2, 0x7f38, 0x809b,
-0x7eb2, 0x5c97, 0x6e2f, 0x6760, 0x7bd9, 0x768b, 0x9ad8, 0x818f,
-0x7f94, 0x7cd5, 0x641e, 0x9550, 0x7a3f, 0x544a, 0x54e5, 0x6b4c,
-0x6401, 0x6208, 0x9e3d, 0x80f3, 0x7599, 0x5272, 0x9769, 0x845b,
-0x683c, 0x86e4, 0x9601, 0x9694, 0x94ec, 0x4e2a, 0x5404, 0x7ed9,
-0x6839, 0x8ddf, 0x8015, 0x66f4, 0x5e9a, 0x7fb9,
-94, 0x3921,
-0x57c2, 0x803f, 0x6897, 0x5de5, 0x653b, 0x529f, 0x606d, 0x9f9a,
-0x4f9b, 0x8eac, 0x516c, 0x5bab, 0x5f13, 0x5de9, 0x6c5e, 0x62f1,
-0x8d21, 0x5171, 0x94a9, 0x52fe, 0x6c9f, 0x82df, 0x72d7, 0x57a2,
-0x6784, 0x8d2d, 0x591f, 0x8f9c, 0x83c7, 0x5495, 0x7b8d, 0x4f30,
-0x6cbd, 0x5b64, 0x59d1, 0x9f13, 0x53e4, 0x86ca, 0x9aa8, 0x8c37,
-0x80a1, 0x6545, 0x987e, 0x56fa, 0x96c7, 0x522e, 0x74dc, 0x5250,
-0x5be1, 0x6302, 0x8902, 0x4e56, 0x62d0, 0x602a, 0x68fa, 0x5173,
-0x5b98, 0x51a0, 0x89c2, 0x7ba1, 0x9986, 0x7f50, 0x60ef, 0x704c,
-0x8d2f, 0x5149, 0x5e7f, 0x901b, 0x7470, 0x89c4, 0x572d, 0x7845,
-0x5f52, 0x9f9f, 0x95fa, 0x8f68, 0x9b3c, 0x8be1, 0x7678, 0x6842,
-0x67dc, 0x8dea, 0x8d35, 0x523d, 0x8f8a, 0x6eda, 0x68cd, 0x9505,
-0x90ed, 0x56fd, 0x679c, 0x88f9, 0x8fc7, 0x54c8,
-94, 0x3a21,
-0x9ab8, 0x5b69, 0x6d77, 0x6c26, 0x4ea5, 0x5bb3, 0x9a87, 0x9163,
-0x61a8, 0x90af, 0x97e9, 0x542b, 0x6db5, 0x5bd2, 0x51fd, 0x558a,
-0x7f55, 0x7ff0, 0x64bc, 0x634d, 0x65f1, 0x61be, 0x608d, 0x710a,
-0x6c57, 0x6c49, 0x592f, 0x676d, 0x822a, 0x58d5, 0x568e, 0x8c6a,
-0x6beb, 0x90dd, 0x597d, 0x8017, 0x53f7, 0x6d69, 0x5475, 0x559d,
-0x8377, 0x83cf, 0x6838, 0x79be, 0x548c, 0x4f55, 0x5408, 0x76d2,
-0x8c89, 0x9602, 0x6cb3, 0x6db8, 0x8d6b, 0x8910, 0x9e64, 0x8d3a,
-0x563f, 0x9ed1, 0x75d5, 0x5f88, 0x72e0, 0x6068, 0x54fc, 0x4ea8,
-0x6a2a, 0x8861, 0x6052, 0x8f70, 0x54c4, 0x70d8, 0x8679, 0x9e3f,
-0x6d2a, 0x5b8f, 0x5f18, 0x7ea2, 0x5589, 0x4faf, 0x7334, 0x543c,
-0x539a, 0x5019, 0x540e, 0x547c, 0x4e4e, 0x5ffd, 0x745a, 0x58f6,
-0x846b, 0x80e1, 0x8774, 0x72d0, 0x7cca, 0x6e56,
-94, 0x3b21,
-0x5f27, 0x864e, 0x552c, 0x62a4, 0x4e92, 0x6caa, 0x6237, 0x82b1,
-0x54d7, 0x534e, 0x733e, 0x6ed1, 0x753b, 0x5212, 0x5316, 0x8bdd,
-0x69d0, 0x5f8a, 0x6000, 0x6dee, 0x574f, 0x6b22, 0x73af, 0x6853,
-0x8fd8, 0x7f13, 0x6362, 0x60a3, 0x5524, 0x75ea, 0x8c62, 0x7115,
-0x6da3, 0x5ba6, 0x5e7b, 0x8352, 0x614c, 0x9ec4, 0x78fa, 0x8757,
-0x7c27, 0x7687, 0x51f0, 0x60f6, 0x714c, 0x6643, 0x5e4c, 0x604d,
-0x8c0e, 0x7070, 0x6325, 0x8f89, 0x5fbd, 0x6062, 0x86d4, 0x56de,
-0x6bc1, 0x6094, 0x6167, 0x5349, 0x60e0, 0x6666, 0x8d3f, 0x79fd,
-0x4f1a, 0x70e9, 0x6c47, 0x8bb3, 0x8bf2, 0x7ed8, 0x8364, 0x660f,
-0x5a5a, 0x9b42, 0x6d51, 0x6df7, 0x8c41, 0x6d3b, 0x4f19, 0x706b,
-0x83b7, 0x6216, 0x60d1, 0x970d, 0x8d27, 0x7978, 0x51fb, 0x573e,
-0x57fa, 0x673a, 0x7578, 0x7a3d, 0x79ef, 0x7b95,
-94, 0x3c21,
-0x808c, 0x9965, 0x8ff9, 0x6fc0, 0x8ba5, 0x9e21, 0x59ec, 0x7ee9,
-0x7f09, 0x5409, 0x6781, 0x68d8, 0x8f91, 0x7c4d, 0x96c6, 0x53ca,
-0x6025, 0x75be, 0x6c72, 0x5373, 0x5ac9, 0x7ea7, 0x6324, 0x51e0,
-0x810a, 0x5df1, 0x84df, 0x6280, 0x5180, 0x5b63, 0x4f0e, 0x796d,
-0x5242, 0x60b8, 0x6d4e, 0x5bc4, 0x5bc2, 0x8ba1, 0x8bb0, 0x65e2,
-0x5fcc, 0x9645, 0x5993, 0x7ee7, 0x7eaa, 0x5609, 0x67b7, 0x5939,
-0x4f73, 0x5bb6, 0x52a0, 0x835a, 0x988a, 0x8d3e, 0x7532, 0x94be,
-0x5047, 0x7a3c, 0x4ef7, 0x67b6, 0x9a7e, 0x5ac1, 0x6b7c, 0x76d1,
-0x575a, 0x5c16, 0x7b3a, 0x95f4, 0x714e, 0x517c, 0x80a9, 0x8270,
-0x5978, 0x7f04, 0x8327, 0x68c0, 0x67ec, 0x78b1, 0x7877, 0x62e3,
-0x6361, 0x7b80, 0x4fed, 0x526a, 0x51cf, 0x8350, 0x69db, 0x9274,
-0x8df5, 0x8d31, 0x89c1, 0x952e, 0x7bad, 0x4ef6,
-94, 0x3d21,
-0x5065, 0x8230, 0x5251, 0x996f, 0x6e10, 0x6e85, 0x6da7, 0x5efa,
-0x50f5, 0x59dc, 0x5c06, 0x6d46, 0x6c5f, 0x7586, 0x848b, 0x6868,
-0x5956, 0x8bb2, 0x5320, 0x9171, 0x964d, 0x8549, 0x6912, 0x7901,
-0x7126, 0x80f6, 0x4ea4, 0x90ca, 0x6d47, 0x9a84, 0x5a07, 0x56bc,
-0x6405, 0x94f0, 0x77eb, 0x4fa5, 0x811a, 0x72e1, 0x89d2, 0x997a,
-0x7f34, 0x7ede, 0x527f, 0x6559, 0x9175, 0x8f7f, 0x8f83, 0x53eb,
-0x7a96, 0x63ed, 0x63a5, 0x7686, 0x79f8, 0x8857, 0x9636, 0x622a,
-0x52ab, 0x8282, 0x6854, 0x6770, 0x6377, 0x776b, 0x7aed, 0x6d01,
-0x7ed3, 0x89e3, 0x59d0, 0x6212, 0x85c9, 0x82a5, 0x754c, 0x501f,
-0x4ecb, 0x75a5, 0x8beb, 0x5c4a, 0x5dfe, 0x7b4b, 0x65a4, 0x91d1,
-0x4eca, 0x6d25, 0x895f, 0x7d27, 0x9526, 0x4ec5, 0x8c28, 0x8fdb,
-0x9773, 0x664b, 0x7981, 0x8fd1, 0x70ec, 0x6d78,
-94, 0x3e21,
-0x5c3d, 0x52b2, 0x8346, 0x5162, 0x830e, 0x775b, 0x6676, 0x9cb8,
-0x4eac, 0x60ca, 0x7cbe, 0x7cb3, 0x7ecf, 0x4e95, 0x8b66, 0x666f,
-0x9888, 0x9759, 0x5883, 0x656c, 0x955c, 0x5f84, 0x75c9, 0x9756,
-0x7adf, 0x7ade, 0x51c0, 0x70af, 0x7a98, 0x63ea, 0x7a76, 0x7ea0,
-0x7396, 0x97ed, 0x4e45, 0x7078, 0x4e5d, 0x9152, 0x53a9, 0x6551,
-0x65e7, 0x81fc, 0x8205, 0x548e, 0x5c31, 0x759a, 0x97a0, 0x62d8,
-0x72d9, 0x75bd, 0x5c45, 0x9a79, 0x83ca, 0x5c40, 0x5480, 0x77e9,
-0x4e3e, 0x6cae, 0x805a, 0x62d2, 0x636e, 0x5de8, 0x5177, 0x8ddd,
-0x8e1e, 0x952f, 0x4ff1, 0x53e5, 0x60e7, 0x70ac, 0x5267, 0x6350,
-0x9e43, 0x5a1f, 0x5026, 0x7737, 0x5377, 0x7ee2, 0x6485, 0x652b,
-0x6289, 0x6398, 0x5014, 0x7235, 0x89c9, 0x51b3, 0x8bc0, 0x7edd,
-0x5747, 0x83cc, 0x94a7, 0x519b, 0x541b, 0x5cfb,
-94, 0x3f21,
-0x4fca, 0x7ae3, 0x6d5a, 0x90e1, 0x9a8f, 0x5580, 0x5496, 0x5361,
-0x54af, 0x5f00, 0x63e9, 0x6977, 0x51ef, 0x6168, 0x520a, 0x582a,
-0x52d8, 0x574e, 0x780d, 0x770b, 0x5eb7, 0x6177, 0x7ce0, 0x625b,
-0x6297, 0x4ea2, 0x7095, 0x8003, 0x62f7, 0x70e4, 0x9760, 0x5777,
-0x82db, 0x67ef, 0x68f5, 0x78d5, 0x9897, 0x79d1, 0x58f3, 0x54b3,
-0x53ef, 0x6e34, 0x514b, 0x523b, 0x5ba2, 0x8bfe, 0x80af, 0x5543,
-0x57a6, 0x6073, 0x5751, 0x542d, 0x7a7a, 0x6050, 0x5b54, 0x63a7,
-0x62a0, 0x53e3, 0x6263, 0x5bc7, 0x67af, 0x54ed, 0x7a9f, 0x82e6,
-0x9177, 0x5e93, 0x88e4, 0x5938, 0x57ae, 0x630e, 0x8de8, 0x80ef,
-0x5757, 0x7b77, 0x4fa9, 0x5feb, 0x5bbd, 0x6b3e, 0x5321, 0x7b50,
-0x72c2, 0x6846, 0x77ff, 0x7736, 0x65f7, 0x51b5, 0x4e8f, 0x76d4,
-0x5cbf, 0x7aa5, 0x8475, 0x594e, 0x9b41, 0x5080,
-94, 0x4021,
-0x9988, 0x6127, 0x6e83, 0x5764, 0x6606, 0x6346, 0x56f0, 0x62ec,
-0x6269, 0x5ed3, 0x9614, 0x5783, 0x62c9, 0x5587, 0x8721, 0x814a,
-0x8fa3, 0x5566, 0x83b1, 0x6765, 0x8d56, 0x84dd, 0x5a6a, 0x680f,
-0x62e6, 0x7bee, 0x9611, 0x5170, 0x6f9c, 0x8c30, 0x63fd, 0x89c8,
-0x61d2, 0x7f06, 0x70c2, 0x6ee5, 0x7405, 0x6994, 0x72fc, 0x5eca,
-0x90ce, 0x6717, 0x6d6a, 0x635e, 0x52b3, 0x7262, 0x8001, 0x4f6c,
-0x59e5, 0x916a, 0x70d9, 0x6d9d, 0x52d2, 0x4e50, 0x96f7, 0x956d,
-0x857e, 0x78ca, 0x7d2f, 0x5121, 0x5792, 0x64c2, 0x808b, 0x7c7b,
-0x6cea, 0x68f1, 0x695e, 0x51b7, 0x5398, 0x68a8, 0x7281, 0x9ece,
-0x7bf1, 0x72f8, 0x79bb, 0x6f13, 0x7406, 0x674e, 0x91cc, 0x9ca4,
-0x793c, 0x8389, 0x8354, 0x540f, 0x6817, 0x4e3d, 0x5389, 0x52b1,
-0x783e, 0x5386, 0x5229, 0x5088, 0x4f8b, 0x4fd0,
-94, 0x4121,
-0x75e2, 0x7acb, 0x7c92, 0x6ca5, 0x96b6, 0x529b, 0x7483, 0x54e9,
-0x4fe9, 0x8054, 0x83b2, 0x8fde, 0x9570, 0x5ec9, 0x601c, 0x6d9f,
-0x5e18, 0x655b, 0x8138, 0x94fe, 0x604b, 0x70bc, 0x7ec3, 0x7cae,
-0x51c9, 0x6881, 0x7cb1, 0x826f, 0x4e24, 0x8f86, 0x91cf, 0x667e,
-0x4eae, 0x8c05, 0x64a9, 0x804a, 0x50da, 0x7597, 0x71ce, 0x5be5,
-0x8fbd, 0x6f66, 0x4e86, 0x6482, 0x9563, 0x5ed6, 0x6599, 0x5217,
-0x88c2, 0x70c8, 0x52a3, 0x730e, 0x7433, 0x6797, 0x78f7, 0x9716,
-0x4e34, 0x90bb, 0x9cde, 0x6dcb, 0x51db, 0x8d41, 0x541d, 0x62ce,
-0x73b2, 0x83f1, 0x96f6, 0x9f84, 0x94c3, 0x4f36, 0x7f9a, 0x51cc,
-0x7075, 0x9675, 0x5cad, 0x9886, 0x53e6, 0x4ee4, 0x6e9c, 0x7409,
-0x69b4, 0x786b, 0x998f, 0x7559, 0x5218, 0x7624, 0x6d41, 0x67f3,
-0x516d, 0x9f99, 0x804b, 0x5499, 0x7b3c, 0x7abf,
-94, 0x4221,
-0x9686, 0x5784, 0x62e2, 0x9647, 0x697c, 0x5a04, 0x6402, 0x7bd3,
-0x6f0f, 0x964b, 0x82a6, 0x5362, 0x9885, 0x5e90, 0x7089, 0x63b3,
-0x5364, 0x864f, 0x9c81, 0x9e93, 0x788c, 0x9732, 0x8def, 0x8d42,
-0x9e7f, 0x6f5e, 0x7984, 0x5f55, 0x9646, 0x622e, 0x9a74, 0x5415,
-0x94dd, 0x4fa3, 0x65c5, 0x5c65, 0x5c61, 0x7f15, 0x8651, 0x6c2f,
-0x5f8b, 0x7387, 0x6ee4, 0x7eff, 0x5ce6, 0x631b, 0x5b6a, 0x6ee6,
-0x5375, 0x4e71, 0x63a0, 0x7565, 0x62a1, 0x8f6e, 0x4f26, 0x4ed1,
-0x6ca6, 0x7eb6, 0x8bba, 0x841d, 0x87ba, 0x7f57, 0x903b, 0x9523,
-0x7ba9, 0x9aa1, 0x88f8, 0x843d, 0x6d1b, 0x9a86, 0x7edc, 0x5988,
-0x9ebb, 0x739b, 0x7801, 0x8682, 0x9a6c, 0x9a82, 0x561b, 0x5417,
-0x57cb, 0x4e70, 0x9ea6, 0x5356, 0x8fc8, 0x8109, 0x7792, 0x9992,
-0x86ee, 0x6ee1, 0x8513, 0x66fc, 0x6162, 0x6f2b,
-94, 0x4321,
-0x8c29, 0x8292, 0x832b, 0x76f2, 0x6c13, 0x5fd9, 0x83bd, 0x732b,
-0x8305, 0x951a, 0x6bdb, 0x77db, 0x94c6, 0x536f, 0x8302, 0x5192,
-0x5e3d, 0x8c8c, 0x8d38, 0x4e48, 0x73ab, 0x679a, 0x6885, 0x9176,
-0x9709, 0x7164, 0x6ca1, 0x7709, 0x5a92, 0x9541, 0x6bcf, 0x7f8e,
-0x6627, 0x5bd0, 0x59b9, 0x5a9a, 0x95e8, 0x95f7, 0x4eec, 0x840c,
-0x8499, 0x6aac, 0x76df, 0x9530, 0x731b, 0x68a6, 0x5b5f, 0x772f,
-0x919a, 0x9761, 0x7cdc, 0x8ff7, 0x8c1c, 0x5f25, 0x7c73, 0x79d8,
-0x89c5, 0x6ccc, 0x871c, 0x5bc6, 0x5e42, 0x68c9, 0x7720, 0x7ef5,
-0x5195, 0x514d, 0x52c9, 0x5a29, 0x7f05, 0x9762, 0x82d7, 0x63cf,
-0x7784, 0x85d0, 0x79d2, 0x6e3a, 0x5e99, 0x5999, 0x8511, 0x706d,
-0x6c11, 0x62bf, 0x76bf, 0x654f, 0x60af, 0x95fd, 0x660e, 0x879f,
-0x9e23, 0x94ed, 0x540d, 0x547d, 0x8c2c, 0x6478,
-94, 0x4421,
-0x6479, 0x8611, 0x6a21, 0x819c, 0x78e8, 0x6469, 0x9b54, 0x62b9,
-0x672b, 0x83ab, 0x58a8, 0x9ed8, 0x6cab, 0x6f20, 0x5bde, 0x964c,
-0x8c0b, 0x725f, 0x67d0, 0x62c7, 0x7261, 0x4ea9, 0x59c6, 0x6bcd,
-0x5893, 0x66ae, 0x5e55, 0x52df, 0x6155, 0x6728, 0x76ee, 0x7766,
-0x7267, 0x7a46, 0x62ff, 0x54ea, 0x5450, 0x94a0, 0x90a3, 0x5a1c,
-0x7eb3, 0x6c16, 0x4e43, 0x5976, 0x8010, 0x5948, 0x5357, 0x7537,
-0x96be, 0x56ca, 0x6320, 0x8111, 0x607c, 0x95f9, 0x6dd6, 0x5462,
-0x9981, 0x5185, 0x5ae9, 0x80fd, 0x59ae, 0x9713, 0x502a, 0x6ce5,
-0x5c3c, 0x62df, 0x4f60, 0x533f, 0x817b, 0x9006, 0x6eba, 0x852b,
-0x62c8, 0x5e74, 0x78be, 0x64b5, 0x637b, 0x5ff5, 0x5a18, 0x917f,
-0x9e1f, 0x5c3f, 0x634f, 0x8042, 0x5b7d, 0x556e, 0x954a, 0x954d,
-0x6d85, 0x60a8, 0x67e0, 0x72de, 0x51dd, 0x5b81,
-94, 0x4521,
-0x62e7, 0x6cde, 0x725b, 0x626d, 0x94ae, 0x7ebd, 0x8113, 0x6d53,
-0x519c, 0x5f04, 0x5974, 0x52aa, 0x6012, 0x5973, 0x6696, 0x8650,
-0x759f, 0x632a, 0x61e6, 0x7cef, 0x8bfa, 0x54e6, 0x6b27, 0x9e25,
-0x6bb4, 0x85d5, 0x5455, 0x5076, 0x6ca4, 0x556a, 0x8db4, 0x722c,
-0x5e15, 0x6015, 0x7436, 0x62cd, 0x6392, 0x724c, 0x5f98, 0x6e43,
-0x6d3e, 0x6500, 0x6f58, 0x76d8, 0x78d0, 0x76fc, 0x7554, 0x5224,
-0x53db, 0x4e53, 0x5e9e, 0x65c1, 0x802a, 0x80d6, 0x629b, 0x5486,
-0x5228, 0x70ae, 0x888d, 0x8dd1, 0x6ce1, 0x5478, 0x80da, 0x57f9,
-0x88f4, 0x8d54, 0x966a, 0x914d, 0x4f69, 0x6c9b, 0x55b7, 0x76c6,
-0x7830, 0x62a8, 0x70f9, 0x6f8e, 0x5f6d, 0x84ec, 0x68da, 0x787c,
-0x7bf7, 0x81a8, 0x670b, 0x9e4f, 0x6367, 0x78b0, 0x576f, 0x7812,
-0x9739, 0x6279, 0x62ab, 0x5288, 0x7435, 0x6bd7,
-94, 0x4621,
-0x5564, 0x813e, 0x75b2, 0x76ae, 0x5339, 0x75de, 0x50fb, 0x5c41,
-0x8b6c, 0x7bc7, 0x504f, 0x7247, 0x9a97, 0x98d8, 0x6f02, 0x74e2,
-0x7968, 0x6487, 0x77a5, 0x62fc, 0x9891, 0x8d2b, 0x54c1, 0x8058,
-0x4e52, 0x576a, 0x82f9, 0x840d, 0x5e73, 0x51ed, 0x74f6, 0x8bc4,
-0x5c4f, 0x5761, 0x6cfc, 0x9887, 0x5a46, 0x7834, 0x9b44, 0x8feb,
-0x7c95, 0x5256, 0x6251, 0x94fa, 0x4ec6, 0x8386, 0x8461, 0x83e9,
-0x84b2, 0x57d4, 0x6734, 0x5703, 0x666e, 0x6d66, 0x8c31, 0x66dd,
-0x7011, 0x671f, 0x6b3a, 0x6816, 0x621a, 0x59bb, 0x4e03, 0x51c4,
-0x6f06, 0x67d2, 0x6c8f, 0x5176, 0x68cb, 0x5947, 0x6b67, 0x7566,
-0x5d0e, 0x8110, 0x9f50, 0x65d7, 0x7948, 0x7941, 0x9a91, 0x8d77,
-0x5c82, 0x4e5e, 0x4f01, 0x542f, 0x5951, 0x780c, 0x5668, 0x6c14,
-0x8fc4, 0x5f03, 0x6c7d, 0x6ce3, 0x8bab, 0x6390,
-94, 0x4721,
-0x6070, 0x6d3d, 0x7275, 0x6266, 0x948e, 0x94c5, 0x5343, 0x8fc1,
-0x7b7e, 0x4edf, 0x8c26, 0x4e7e, 0x9ed4, 0x94b1, 0x94b3, 0x524d,
-0x6f5c, 0x9063, 0x6d45, 0x8c34, 0x5811, 0x5d4c, 0x6b20, 0x6b49,
-0x67aa, 0x545b, 0x8154, 0x7f8c, 0x5899, 0x8537, 0x5f3a, 0x62a2,
-0x6a47, 0x9539, 0x6572, 0x6084, 0x6865, 0x77a7, 0x4e54, 0x4fa8,
-0x5de7, 0x9798, 0x64ac, 0x7fd8, 0x5ced, 0x4fcf, 0x7a8d, 0x5207,
-0x8304, 0x4e14, 0x602f, 0x7a83, 0x94a6, 0x4fb5, 0x4eb2, 0x79e6,
-0x7434, 0x52e4, 0x82b9, 0x64d2, 0x79bd, 0x5bdd, 0x6c81, 0x9752,
-0x8f7b, 0x6c22, 0x503e, 0x537f, 0x6e05, 0x64ce, 0x6674, 0x6c30,
-0x60c5, 0x9877, 0x8bf7, 0x5e86, 0x743c, 0x7a77, 0x79cb, 0x4e18,
-0x90b1, 0x7403, 0x6c42, 0x56da, 0x914b, 0x6cc5, 0x8d8b, 0x533a,
-0x86c6, 0x66f2, 0x8eaf, 0x5c48, 0x9a71, 0x6e20,
-94, 0x4821,
-0x53d6, 0x5a36, 0x9f8b, 0x8da3, 0x53bb, 0x5708, 0x98a7, 0x6743,
-0x919b, 0x6cc9, 0x5168, 0x75ca, 0x62f3, 0x72ac, 0x5238, 0x529d,
-0x7f3a, 0x7094, 0x7638, 0x5374, 0x9e4a, 0x69b7, 0x786e, 0x96c0,
-0x88d9, 0x7fa4, 0x7136, 0x71c3, 0x5189, 0x67d3, 0x74e4, 0x58e4,
-0x6518, 0x56b7, 0x8ba9, 0x9976, 0x6270, 0x7ed5, 0x60f9, 0x70ed,
-0x58ec, 0x4ec1, 0x4eba, 0x5fcd, 0x97e7, 0x4efb, 0x8ba4, 0x5203,
-0x598a, 0x7eab, 0x6254, 0x4ecd, 0x65e5, 0x620e, 0x8338, 0x84c9,
-0x8363, 0x878d, 0x7194, 0x6eb6, 0x5bb9, 0x7ed2, 0x5197, 0x63c9,
-0x67d4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5b7a, 0x5982, 0x8fb1,
-0x4e73, 0x6c5d, 0x5165, 0x8925, 0x8f6f, 0x962e, 0x854a, 0x745e,
-0x9510, 0x95f0, 0x6da6, 0x82e5, 0x5f31, 0x6492, 0x6d12, 0x8428,
-0x816e, 0x9cc3, 0x585e, 0x8d5b, 0x4e09, 0x53c1,
-94, 0x4921,
-0x4f1e, 0x6563, 0x6851, 0x55d3, 0x4e27, 0x6414, 0x9a9a, 0x626b,
-0x5ac2, 0x745f, 0x8272, 0x6da9, 0x68ee, 0x50e7, 0x838e, 0x7802,
-0x6740, 0x5239, 0x6c99, 0x7eb1, 0x50bb, 0x5565, 0x715e, 0x7b5b,
-0x6652, 0x73ca, 0x82eb, 0x6749, 0x5c71, 0x5220, 0x717d, 0x886b,
-0x95ea, 0x9655, 0x64c5, 0x8d61, 0x81b3, 0x5584, 0x6c55, 0x6247,
-0x7f2e, 0x5892, 0x4f24, 0x5546, 0x8d4f, 0x664c, 0x4e0a, 0x5c1a,
-0x88f3, 0x68a2, 0x634e, 0x7a0d, 0x70e7, 0x828d, 0x52fa, 0x97f6,
-0x5c11, 0x54e8, 0x90b5, 0x7ecd, 0x5962, 0x8d4a, 0x86c7, 0x820c,
-0x820d, 0x8d66, 0x6444, 0x5c04, 0x6151, 0x6d89, 0x793e, 0x8bbe,
-0x7837, 0x7533, 0x547b, 0x4f38, 0x8eab, 0x6df1, 0x5a20, 0x7ec5,
-0x795e, 0x6c88, 0x5ba1, 0x5a76, 0x751a, 0x80be, 0x614e, 0x6e17,
-0x58f0, 0x751f, 0x7525, 0x7272, 0x5347, 0x7ef3,
-94, 0x4a21,
-0x7701, 0x76db, 0x5269, 0x80dc, 0x5723, 0x5e08, 0x5931, 0x72ee,
-0x65bd, 0x6e7f, 0x8bd7, 0x5c38, 0x8671, 0x5341, 0x77f3, 0x62fe,
-0x65f6, 0x4ec0, 0x98df, 0x8680, 0x5b9e, 0x8bc6, 0x53f2, 0x77e2,
-0x4f7f, 0x5c4e, 0x9a76, 0x59cb, 0x5f0f, 0x793a, 0x58eb, 0x4e16,
-0x67ff, 0x4e8b, 0x62ed, 0x8a93, 0x901d, 0x52bf, 0x662f, 0x55dc,
-0x566c, 0x9002, 0x4ed5, 0x4f8d, 0x91ca, 0x9970, 0x6c0f, 0x5e02,
-0x6043, 0x5ba4, 0x89c6, 0x8bd5, 0x6536, 0x624b, 0x9996, 0x5b88,
-0x5bff, 0x6388, 0x552e, 0x53d7, 0x7626, 0x517d, 0x852c, 0x67a2,
-0x68b3, 0x6b8a, 0x6292, 0x8f93, 0x53d4, 0x8212, 0x6dd1, 0x758f,
-0x4e66, 0x8d4e, 0x5b70, 0x719f, 0x85af, 0x6691, 0x66d9, 0x7f72,
-0x8700, 0x9ecd, 0x9f20, 0x5c5e, 0x672f, 0x8ff0, 0x6811, 0x675f,
-0x620d, 0x7ad6, 0x5885, 0x5eb6, 0x6570, 0x6f31,
-94, 0x4b21,
-0x6055, 0x5237, 0x800d, 0x6454, 0x8870, 0x7529, 0x5e05, 0x6813,
-0x62f4, 0x971c, 0x53cc, 0x723d, 0x8c01, 0x6c34, 0x7761, 0x7a0e,
-0x542e, 0x77ac, 0x987a, 0x821c, 0x8bf4, 0x7855, 0x6714, 0x70c1,
-0x65af, 0x6495, 0x5636, 0x601d, 0x79c1, 0x53f8, 0x4e1d, 0x6b7b,
-0x8086, 0x5bfa, 0x55e3, 0x56db, 0x4f3a, 0x4f3c, 0x9972, 0x5df3,
-0x677e, 0x8038, 0x6002, 0x9882, 0x9001, 0x5b8b, 0x8bbc, 0x8bf5,
-0x641c, 0x8258, 0x64de, 0x55fd, 0x82cf, 0x9165, 0x4fd7, 0x7d20,
-0x901f, 0x7c9f, 0x50f3, 0x5851, 0x6eaf, 0x5bbf, 0x8bc9, 0x8083,
-0x9178, 0x849c, 0x7b97, 0x867d, 0x968b, 0x968f, 0x7ee5, 0x9ad3,
-0x788e, 0x5c81, 0x7a57, 0x9042, 0x96a7, 0x795f, 0x5b59, 0x635f,
-0x7b0b, 0x84d1, 0x68ad, 0x5506, 0x7f29, 0x7410, 0x7d22, 0x9501,
-0x6240, 0x584c, 0x4ed6, 0x5b83, 0x5979, 0x5854,
-94, 0x4c21,
-0x736d, 0x631e, 0x8e4b, 0x8e0f, 0x80ce, 0x82d4, 0x62ac, 0x53f0,
-0x6cf0, 0x915e, 0x592a, 0x6001, 0x6c70, 0x574d, 0x644a, 0x8d2a,
-0x762b, 0x6ee9, 0x575b, 0x6a80, 0x75f0, 0x6f6d, 0x8c2d, 0x8c08,
-0x5766, 0x6bef, 0x8892, 0x78b3, 0x63a2, 0x53f9, 0x70ad, 0x6c64,
-0x5858, 0x642a, 0x5802, 0x68e0, 0x819b, 0x5510, 0x7cd6, 0x5018,
-0x8eba, 0x6dcc, 0x8d9f, 0x70eb, 0x638f, 0x6d9b, 0x6ed4, 0x7ee6,
-0x8404, 0x6843, 0x9003, 0x6dd8, 0x9676, 0x8ba8, 0x5957, 0x7279,
-0x85e4, 0x817e, 0x75bc, 0x8a8a, 0x68af, 0x5254, 0x8e22, 0x9511,
-0x63d0, 0x9898, 0x8e44, 0x557c, 0x4f53, 0x66ff, 0x568f, 0x60d5,
-0x6d95, 0x5243, 0x5c49, 0x5929, 0x6dfb, 0x586b, 0x7530, 0x751c,
-0x606c, 0x8214, 0x8146, 0x6311, 0x6761, 0x8fe2, 0x773a, 0x8df3,
-0x8d34, 0x94c1, 0x5e16, 0x5385, 0x542c, 0x70c3,
-94, 0x4d21,
-0x6c40, 0x5ef7, 0x505c, 0x4ead, 0x5ead, 0x633a, 0x8247, 0x901a,
-0x6850, 0x916e, 0x77b3, 0x540c, 0x94dc, 0x5f64, 0x7ae5, 0x6876,
-0x6345, 0x7b52, 0x7edf, 0x75db, 0x5077, 0x6295, 0x5934, 0x900f,
-0x51f8, 0x79c3, 0x7a81, 0x56fe, 0x5f92, 0x9014, 0x6d82, 0x5c60,
-0x571f, 0x5410, 0x5154, 0x6e4d, 0x56e2, 0x63a8, 0x9893, 0x817f,
-0x8715, 0x892a, 0x9000, 0x541e, 0x5c6f, 0x81c0, 0x62d6, 0x6258,
-0x8131, 0x9e35, 0x9640, 0x9a6e, 0x9a7c, 0x692d, 0x59a5, 0x62d3,
-0x553e, 0x6316, 0x54c7, 0x86d9, 0x6d3c, 0x5a03, 0x74e6, 0x889c,
-0x6b6a, 0x5916, 0x8c4c, 0x5f2f, 0x6e7e, 0x73a9, 0x987d, 0x4e38,
-0x70f7, 0x5b8c, 0x7897, 0x633d, 0x665a, 0x7696, 0x60cb, 0x5b9b,
-0x5a49, 0x4e07, 0x8155, 0x6c6a, 0x738b, 0x4ea1, 0x6789, 0x7f51,
-0x5f80, 0x65fa, 0x671b, 0x5fd8, 0x5984, 0x5a01,
-94, 0x4e21,
-0x5dcd, 0x5fae, 0x5371, 0x97e6, 0x8fdd, 0x6845, 0x56f4, 0x552f,
-0x60df, 0x4e3a, 0x6f4d, 0x7ef4, 0x82c7, 0x840e, 0x59d4, 0x4f1f,
-0x4f2a, 0x5c3e, 0x7eac, 0x672a, 0x851a, 0x5473, 0x754f, 0x80c3,
-0x5582, 0x9b4f, 0x4f4d, 0x6e2d, 0x8c13, 0x5c09, 0x6170, 0x536b,
-0x761f, 0x6e29, 0x868a, 0x6587, 0x95fb, 0x7eb9, 0x543b, 0x7a33,
-0x7d0a, 0x95ee, 0x55e1, 0x7fc1, 0x74ee, 0x631d, 0x8717, 0x6da1,
-0x7a9d, 0x6211, 0x65a1, 0x5367, 0x63e1, 0x6c83, 0x5deb, 0x545c,
-0x94a8, 0x4e4c, 0x6c61, 0x8bec, 0x5c4b, 0x65e0, 0x829c, 0x68a7,
-0x543e, 0x5434, 0x6bcb, 0x6b66, 0x4e94, 0x6342, 0x5348, 0x821e,
-0x4f0d, 0x4fae, 0x575e, 0x620a, 0x96fe, 0x6664, 0x7269, 0x52ff,
-0x52a1, 0x609f, 0x8bef, 0x6614, 0x7199, 0x6790, 0x897f, 0x7852,
-0x77fd, 0x6670, 0x563b, 0x5438, 0x9521, 0x727a,
-94, 0x4f21,
-0x7a00, 0x606f, 0x5e0c, 0x6089, 0x819d, 0x5915, 0x60dc, 0x7184,
-0x70ef, 0x6eaa, 0x6c50, 0x7280, 0x6a84, 0x88ad, 0x5e2d, 0x4e60,
-0x5ab3, 0x559c, 0x94e3, 0x6d17, 0x7cfb, 0x9699, 0x620f, 0x7ec6,
-0x778e, 0x867e, 0x5323, 0x971e, 0x8f96, 0x6687, 0x5ce1, 0x4fa0,
-0x72ed, 0x4e0b, 0x53a6, 0x590f, 0x5413, 0x6380, 0x9528, 0x5148,
-0x4ed9, 0x9c9c, 0x7ea4, 0x54b8, 0x8d24, 0x8854, 0x8237, 0x95f2,
-0x6d8e, 0x5f26, 0x5acc, 0x663e, 0x9669, 0x73b0, 0x732e, 0x53bf,
-0x817a, 0x9985, 0x7fa1, 0x5baa, 0x9677, 0x9650, 0x7ebf, 0x76f8,
-0x53a2, 0x9576, 0x9999, 0x7bb1, 0x8944, 0x6e58, 0x4e61, 0x7fd4,
-0x7965, 0x8be6, 0x60f3, 0x54cd, 0x4eab, 0x9879, 0x5df7, 0x6a61,
-0x50cf, 0x5411, 0x8c61, 0x8427, 0x785d, 0x9704, 0x524a, 0x54ee,
-0x56a3, 0x9500, 0x6d88, 0x5bb5, 0x6dc6, 0x6653,
-94, 0x5021,
-0x5c0f, 0x5b5d, 0x6821, 0x8096, 0x5578, 0x7b11, 0x6548, 0x6954,
-0x4e9b, 0x6b47, 0x874e, 0x978b, 0x534f, 0x631f, 0x643a, 0x90aa,
-0x659c, 0x80c1, 0x8c10, 0x5199, 0x68b0, 0x5378, 0x87f9, 0x61c8,
-0x6cc4, 0x6cfb, 0x8c22, 0x5c51, 0x85aa, 0x82af, 0x950c, 0x6b23,
-0x8f9b, 0x65b0, 0x5ffb, 0x5fc3, 0x4fe1, 0x8845, 0x661f, 0x8165,
-0x7329, 0x60fa, 0x5174, 0x5211, 0x578b, 0x5f62, 0x90a2, 0x884c,
-0x9192, 0x5e78, 0x674f, 0x6027, 0x59d3, 0x5144, 0x51f6, 0x80f8,
-0x5308, 0x6c79, 0x96c4, 0x718a, 0x4f11, 0x4fee, 0x7f9e, 0x673d,
-0x55c5, 0x9508, 0x79c0, 0x8896, 0x7ee3, 0x589f, 0x620c, 0x9700,
-0x865a, 0x5618, 0x987b, 0x5f90, 0x8bb8, 0x84c4, 0x9157, 0x53d9,
-0x65ed, 0x5e8f, 0x755c, 0x6064, 0x7d6e, 0x5a7f, 0x7eea, 0x7eed,
-0x8f69, 0x55a7, 0x5ba3, 0x60ac, 0x65cb, 0x7384,
-94, 0x5121,
-0x9009, 0x7663, 0x7729, 0x7eda, 0x9774, 0x859b, 0x5b66, 0x7a74,
-0x96ea, 0x8840, 0x52cb, 0x718f, 0x5faa, 0x65ec, 0x8be2, 0x5bfb,
-0x9a6f, 0x5de1, 0x6b89, 0x6c5b, 0x8bad, 0x8baf, 0x900a, 0x8fc5,
-0x538b, 0x62bc, 0x9e26, 0x9e2d, 0x5440, 0x4e2b, 0x82bd, 0x7259,
-0x869c, 0x5d16, 0x8859, 0x6daf, 0x96c5, 0x54d1, 0x4e9a, 0x8bb6,
-0x7109, 0x54bd, 0x9609, 0x70df, 0x6df9, 0x76d0, 0x4e25, 0x7814,
-0x8712, 0x5ca9, 0x5ef6, 0x8a00, 0x989c, 0x960e, 0x708e, 0x6cbf,
-0x5944, 0x63a9, 0x773c, 0x884d, 0x6f14, 0x8273, 0x5830, 0x71d5,
-0x538c, 0x781a, 0x96c1, 0x5501, 0x5f66, 0x7130, 0x5bb4, 0x8c1a,
-0x9a8c, 0x6b83, 0x592e, 0x9e2f, 0x79e7, 0x6768, 0x626c, 0x4f6f,
-0x75a1, 0x7f8a, 0x6d0b, 0x9633, 0x6c27, 0x4ef0, 0x75d2, 0x517b,
-0x6837, 0x6f3e, 0x9080, 0x8170, 0x5996, 0x7476,
-94, 0x5221,
-0x6447, 0x5c27, 0x9065, 0x7a91, 0x8c23, 0x59da, 0x54ac, 0x8200,
-0x836f, 0x8981, 0x8000, 0x6930, 0x564e, 0x8036, 0x7237, 0x91ce,
-0x51b6, 0x4e5f, 0x9875, 0x6396, 0x4e1a, 0x53f6, 0x66f3, 0x814b,
-0x591c, 0x6db2, 0x4e00, 0x58f9, 0x533b, 0x63d6, 0x94f1, 0x4f9d,
-0x4f0a, 0x8863, 0x9890, 0x5937, 0x9057, 0x79fb, 0x4eea, 0x80f0,
-0x7591, 0x6c82, 0x5b9c, 0x59e8, 0x5f5d, 0x6905, 0x8681, 0x501a,
-0x5df2, 0x4e59, 0x77e3, 0x4ee5, 0x827a, 0x6291, 0x6613, 0x9091,
-0x5c79, 0x4ebf, 0x5f79, 0x81c6, 0x9038, 0x8084, 0x75ab, 0x4ea6,
-0x88d4, 0x610f, 0x6bc5, 0x5fc6, 0x4e49, 0x76ca, 0x6ea2, 0x8be3,
-0x8bae, 0x8c0a, 0x8bd1, 0x5f02, 0x7ffc, 0x7fcc, 0x7ece, 0x8335,
-0x836b, 0x56e0, 0x6bb7, 0x97f3, 0x9634, 0x59fb, 0x541f, 0x94f6,
-0x6deb, 0x5bc5, 0x996e, 0x5c39, 0x5f15, 0x9690,
-94, 0x5321,
-0x5370, 0x82f1, 0x6a31, 0x5a74, 0x9e70, 0x5e94, 0x7f28, 0x83b9,
-0x8424, 0x8425, 0x8367, 0x8747, 0x8fce, 0x8d62, 0x76c8, 0x5f71,
-0x9896, 0x786c, 0x6620, 0x54df, 0x62e5, 0x4f63, 0x81c3, 0x75c8,
-0x5eb8, 0x96cd, 0x8e0a, 0x86f9, 0x548f, 0x6cf3, 0x6d8c, 0x6c38,
-0x607f, 0x52c7, 0x7528, 0x5e7d, 0x4f18, 0x60a0, 0x5fe7, 0x5c24,
-0x7531, 0x90ae, 0x94c0, 0x72b9, 0x6cb9, 0x6e38, 0x9149, 0x6709,
-0x53cb, 0x53f3, 0x4f51, 0x91c9, 0x8bf1, 0x53c8, 0x5e7c, 0x8fc2,
-0x6de4, 0x4e8e, 0x76c2, 0x6986, 0x865e, 0x611a, 0x8206, 0x4f59,
-0x4fde, 0x903e, 0x9c7c, 0x6109, 0x6e1d, 0x6e14, 0x9685, 0x4e88,
-0x5a31, 0x96e8, 0x4e0e, 0x5c7f, 0x79b9, 0x5b87, 0x8bed, 0x7fbd,
-0x7389, 0x57df, 0x828b, 0x90c1, 0x5401, 0x9047, 0x55bb, 0x5cea,
-0x5fa1, 0x6108, 0x6b32, 0x72f1, 0x80b2, 0x8a89,
-94, 0x5421,
-0x6d74, 0x5bd3, 0x88d5, 0x9884, 0x8c6b, 0x9a6d, 0x9e33, 0x6e0a,
-0x51a4, 0x5143, 0x57a3, 0x8881, 0x539f, 0x63f4, 0x8f95, 0x56ed,
-0x5458, 0x5706, 0x733f, 0x6e90, 0x7f18, 0x8fdc, 0x82d1, 0x613f,
-0x6028, 0x9662, 0x66f0, 0x7ea6, 0x8d8a, 0x8dc3, 0x94a5, 0x5cb3,
-0x7ca4, 0x6708, 0x60a6, 0x9605, 0x8018, 0x4e91, 0x90e7, 0x5300,
-0x9668, 0x5141, 0x8fd0, 0x8574, 0x915d, 0x6655, 0x97f5, 0x5b55,
-0x531d, 0x7838, 0x6742, 0x683d, 0x54c9, 0x707e, 0x5bb0, 0x8f7d,
-0x518d, 0x5728, 0x54b1, 0x6512, 0x6682, 0x8d5e, 0x8d43, 0x810f,
-0x846c, 0x906d, 0x7cdf, 0x51ff, 0x85fb, 0x67a3, 0x65e9, 0x6fa1,
-0x86a4, 0x8e81, 0x566a, 0x9020, 0x7682, 0x7076, 0x71e5, 0x8d23,
-0x62e9, 0x5219, 0x6cfd, 0x8d3c, 0x600e, 0x589e, 0x618e, 0x66fe,
-0x8d60, 0x624e, 0x55b3, 0x6e23, 0x672d, 0x8f67,
-94, 0x5521,
-0x94e1, 0x95f8, 0x7728, 0x6805, 0x69a8, 0x548b, 0x4e4d, 0x70b8,
-0x8bc8, 0x6458, 0x658b, 0x5b85, 0x7a84, 0x503a, 0x5be8, 0x77bb,
-0x6be1, 0x8a79, 0x7c98, 0x6cbe, 0x76cf, 0x65a9, 0x8f97, 0x5d2d,
-0x5c55, 0x8638, 0x6808, 0x5360, 0x6218, 0x7ad9, 0x6e5b, 0x7efd,
-0x6a1f, 0x7ae0, 0x5f70, 0x6f33, 0x5f20, 0x638c, 0x6da8, 0x6756,
-0x4e08, 0x5e10, 0x8d26, 0x4ed7, 0x80c0, 0x7634, 0x969c, 0x62db,
-0x662d, 0x627e, 0x6cbc, 0x8d75, 0x7167, 0x7f69, 0x5146, 0x8087,
-0x53ec, 0x906e, 0x6298, 0x54f2, 0x86f0, 0x8f99, 0x8005, 0x9517,
-0x8517, 0x8fd9, 0x6d59, 0x73cd, 0x659f, 0x771f, 0x7504, 0x7827,
-0x81fb, 0x8d1e, 0x9488, 0x4fa6, 0x6795, 0x75b9, 0x8bca, 0x9707,
-0x632f, 0x9547, 0x9635, 0x84b8, 0x6323, 0x7741, 0x5f81, 0x72f0,
-0x4e89, 0x6014, 0x6574, 0x62ef, 0x6b63, 0x653f,
-94, 0x5621,
-0x5e27, 0x75c7, 0x90d1, 0x8bc1, 0x829d, 0x679d, 0x652f, 0x5431,
-0x8718, 0x77e5, 0x80a2, 0x8102, 0x6c41, 0x4e4b, 0x7ec7, 0x804c,
-0x76f4, 0x690d, 0x6b96, 0x6267, 0x503c, 0x4f84, 0x5740, 0x6307,
-0x6b62, 0x8dbe, 0x53ea, 0x65e8, 0x7eb8, 0x5fd7, 0x631a, 0x63b7,
-0x81f3, 0x81f4, 0x7f6e, 0x5e1c, 0x5cd9, 0x5236, 0x667a, 0x79e9,
-0x7a1a, 0x8d28, 0x7099, 0x75d4, 0x6ede, 0x6cbb, 0x7a92, 0x4e2d,
-0x76c5, 0x5fe0, 0x949f, 0x8877, 0x7ec8, 0x79cd, 0x80bf, 0x91cd,
-0x4ef2, 0x4f17, 0x821f, 0x5468, 0x5dde, 0x6d32, 0x8bcc, 0x7ca5,
-0x8f74, 0x8098, 0x5e1a, 0x5492, 0x76b1, 0x5b99, 0x663c, 0x9aa4,
-0x73e0, 0x682a, 0x86db, 0x6731, 0x732a, 0x8bf8, 0x8bdb, 0x9010,
-0x7af9, 0x70db, 0x716e, 0x62c4, 0x77a9, 0x5631, 0x4e3b, 0x8457,
-0x67f1, 0x52a9, 0x86c0, 0x8d2e, 0x94f8, 0x7b51,
-89, 0x5721,
-0x4f4f, 0x6ce8, 0x795d, 0x9a7b, 0x6293, 0x722a, 0x62fd, 0x4e13,
-0x7816, 0x8f6c, 0x64b0, 0x8d5a, 0x7bc6, 0x6869, 0x5e84, 0x88c5,
-0x5986, 0x649e, 0x58ee, 0x72b6, 0x690e, 0x9525, 0x8ffd, 0x8d58,
-0x5760, 0x7f00, 0x8c06, 0x51c6, 0x6349, 0x62d9, 0x5353, 0x684c,
-0x7422, 0x8301, 0x914c, 0x5544, 0x7740, 0x707c, 0x6d4a, 0x5179,
-0x54a8, 0x8d44, 0x59ff, 0x6ecb, 0x6dc4, 0x5b5c, 0x7d2b, 0x4ed4,
-0x7c7d, 0x6ed3, 0x5b50, 0x81ea, 0x6e0d, 0x5b57, 0x9b03, 0x68d5,
-0x8e2a, 0x5b97, 0x7efc, 0x603b, 0x7eb5, 0x90b9, 0x8d70, 0x594f,
-0x63cd, 0x79df, 0x8db3, 0x5352, 0x65cf, 0x7956, 0x8bc5, 0x963b,
-0x7ec4, 0x94bb, 0x7e82, 0x5634, 0x9189, 0x6700, 0x7f6a, 0x5c0a,
-0x9075, 0x6628, 0x5de6, 0x4f50, 0x67de, 0x505a, 0x4f5c, 0x5750,
-0x5ea7,
-94, 0x5821,
-0x4e8d, 0x4e0c, 0x5140, 0x4e10, 0x5eff, 0x5345, 0x4e15, 0x4e98,
-0x4e1e, 0x9b32, 0x5b6c, 0x5669, 0x4e28, 0x79ba, 0x4e3f, 0x5315,
-0x4e47, 0x592d, 0x723b, 0x536e, 0x6c10, 0x56df, 0x80e4, 0x9997,
-0x6bd3, 0x777e, 0x9f17, 0x4e36, 0x4e9f, 0x9f10, 0x4e5c, 0x4e69,
-0x4e93, 0x8288, 0x5b5b, 0x556c, 0x560f, 0x4ec4, 0x538d, 0x539d,
-0x53a3, 0x53a5, 0x53ae, 0x9765, 0x8d5d, 0x531a, 0x53f5, 0x5326,
-0x532e, 0x533e, 0x8d5c, 0x5366, 0x5363, 0x5202, 0x5208, 0x520e,
-0x522d, 0x5233, 0x523f, 0x5240, 0x524c, 0x525e, 0x5261, 0x525c,
-0x84af, 0x527d, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, 0x7f54,
-0x4ebb, 0x4ec3, 0x4ec9, 0x4ec2, 0x4ee8, 0x4ee1, 0x4eeb, 0x4ede,
-0x4f1b, 0x4ef3, 0x4f22, 0x4f64, 0x4ef5, 0x4f25, 0x4f27, 0x4f09,
-0x4f2b, 0x4f5e, 0x4f67, 0x6538, 0x4f5a, 0x4f5d,
-94, 0x5921,
-0x4f5f, 0x4f57, 0x4f32, 0x4f3d, 0x4f76, 0x4f74, 0x4f91, 0x4f89,
-0x4f83, 0x4f8f, 0x4f7e, 0x4f7b, 0x4faa, 0x4f7c, 0x4fac, 0x4f94,
-0x4fe6, 0x4fe8, 0x4fea, 0x4fc5, 0x4fda, 0x4fe3, 0x4fdc, 0x4fd1,
-0x4fdf, 0x4ff8, 0x5029, 0x504c, 0x4ff3, 0x502c, 0x500f, 0x502e,
-0x502d, 0x4ffe, 0x501c, 0x500c, 0x5025, 0x5028, 0x507e, 0x5043,
-0x5055, 0x5048, 0x504e, 0x506c, 0x507b, 0x50a5, 0x50a7, 0x50a9,
-0x50ba, 0x50d6, 0x5106, 0x50ed, 0x50ec, 0x50e6, 0x50ee, 0x5107,
-0x510b, 0x4edd, 0x6c3d, 0x4f58, 0x4f65, 0x4fce, 0x9fa0, 0x6c46,
-0x7c74, 0x516e, 0x5dfd, 0x9ec9, 0x9998, 0x5181, 0x5914, 0x52f9,
-0x530d, 0x8a07, 0x5310, 0x51eb, 0x5919, 0x5155, 0x4ea0, 0x5156,
-0x4eb3, 0x886e, 0x88a4, 0x4eb5, 0x8114, 0x88d2, 0x7980, 0x5b34,
-0x8803, 0x7fb8, 0x51ab, 0x51b1, 0x51bd, 0x51bc,
-94, 0x5a21,
-0x51c7, 0x5196, 0x51a2, 0x51a5, 0x8ba0, 0x8ba6, 0x8ba7, 0x8baa,
-0x8bb4, 0x8bb5, 0x8bb7, 0x8bc2, 0x8bc3, 0x8bcb, 0x8bcf, 0x8bce,
-0x8bd2, 0x8bd3, 0x8bd4, 0x8bd6, 0x8bd8, 0x8bd9, 0x8bdc, 0x8bdf,
-0x8be0, 0x8be4, 0x8be8, 0x8be9, 0x8bee, 0x8bf0, 0x8bf3, 0x8bf6,
-0x8bf9, 0x8bfc, 0x8bff, 0x8c00, 0x8c02, 0x8c04, 0x8c07, 0x8c0c,
-0x8c0f, 0x8c11, 0x8c12, 0x8c14, 0x8c15, 0x8c16, 0x8c19, 0x8c1b,
-0x8c18, 0x8c1d, 0x8c1f, 0x8c20, 0x8c21, 0x8c25, 0x8c27, 0x8c2a,
-0x8c2b, 0x8c2e, 0x8c2f, 0x8c32, 0x8c33, 0x8c35, 0x8c36, 0x5369,
-0x537a, 0x961d, 0x9622, 0x9621, 0x9631, 0x962a, 0x963d, 0x963c,
-0x9642, 0x9649, 0x9654, 0x965f, 0x9667, 0x966c, 0x9672, 0x9674,
-0x9688, 0x968d, 0x9697, 0x96b0, 0x9097, 0x909b, 0x909d, 0x9099,
-0x90ac, 0x90a1, 0x90b4, 0x90b3, 0x90b6, 0x90ba,
-94, 0x5b21,
-0x90b8, 0x90b0, 0x90cf, 0x90c5, 0x90be, 0x90d0, 0x90c4, 0x90c7,
-0x90d3, 0x90e6, 0x90e2, 0x90dc, 0x90d7, 0x90db, 0x90eb, 0x90ef,
-0x90fe, 0x9104, 0x9122, 0x911e, 0x9123, 0x9131, 0x912f, 0x9139,
-0x9143, 0x9146, 0x520d, 0x5942, 0x52a2, 0x52ac, 0x52ad, 0x52be,
-0x54ff, 0x52d0, 0x52d6, 0x52f0, 0x53df, 0x71ee, 0x77cd, 0x5ef4,
-0x51f5, 0x51fc, 0x9b2f, 0x53b6, 0x5f01, 0x755a, 0x5def, 0x574c,
-0x57a9, 0x57a1, 0x587e, 0x58bc, 0x58c5, 0x58d1, 0x5729, 0x572c,
-0x572a, 0x5733, 0x5739, 0x572e, 0x572f, 0x575c, 0x573b, 0x5742,
-0x5769, 0x5785, 0x576b, 0x5786, 0x577c, 0x577b, 0x5768, 0x576d,
-0x5776, 0x5773, 0x57ad, 0x57a4, 0x578c, 0x57b2, 0x57cf, 0x57a7,
-0x57b4, 0x5793, 0x57a0, 0x57d5, 0x57d8, 0x57da, 0x57d9, 0x57d2,
-0x57b8, 0x57f4, 0x57ef, 0x57f8, 0x57e4, 0x57dd,
-94, 0x5c21,
-0x580b, 0x580d, 0x57fd, 0x57ed, 0x5800, 0x581e, 0x5819, 0x5844,
-0x5820, 0x5865, 0x586c, 0x5881, 0x5889, 0x589a, 0x5880, 0x99a8,
-0x9f19, 0x61ff, 0x8279, 0x827d, 0x827f, 0x828f, 0x828a, 0x82a8,
-0x8284, 0x828e, 0x8291, 0x8297, 0x8299, 0x82ab, 0x82b8, 0x82be,
-0x82b0, 0x82c8, 0x82ca, 0x82e3, 0x8298, 0x82b7, 0x82ae, 0x82cb,
-0x82cc, 0x82c1, 0x82a9, 0x82b4, 0x82a1, 0x82aa, 0x829f, 0x82c4,
-0x82ce, 0x82a4, 0x82e1, 0x8309, 0x82f7, 0x82e4, 0x830f, 0x8307,
-0x82dc, 0x82f4, 0x82d2, 0x82d8, 0x830c, 0x82fb, 0x82d3, 0x8311,
-0x831a, 0x8306, 0x8314, 0x8315, 0x82e0, 0x82d5, 0x831c, 0x8351,
-0x835b, 0x835c, 0x8308, 0x8392, 0x833c, 0x8334, 0x8331, 0x839b,
-0x835e, 0x832f, 0x834f, 0x8347, 0x8343, 0x835f, 0x8340, 0x8317,
-0x8360, 0x832d, 0x833a, 0x8333, 0x8366, 0x8365,
-94, 0x5d21,
-0x8368, 0x831b, 0x8369, 0x836c, 0x836a, 0x836d, 0x836e, 0x83b0,
-0x8378, 0x83b3, 0x83b4, 0x83a0, 0x83aa, 0x8393, 0x839c, 0x8385,
-0x837c, 0x83b6, 0x83a9, 0x837d, 0x83b8, 0x837b, 0x8398, 0x839e,
-0x83a8, 0x83ba, 0x83bc, 0x83c1, 0x8401, 0x83e5, 0x83d8, 0x5807,
-0x8418, 0x840b, 0x83dd, 0x83fd, 0x83d6, 0x841c, 0x8438, 0x8411,
-0x8406, 0x83d4, 0x83df, 0x840f, 0x8403, 0x83f8, 0x83f9, 0x83ea,
-0x83c5, 0x83c0, 0x8426, 0x83f0, 0x83e1, 0x845c, 0x8451, 0x845a,
-0x8459, 0x8473, 0x8487, 0x8488, 0x847a, 0x8489, 0x8478, 0x843c,
-0x8446, 0x8469, 0x8476, 0x848c, 0x848e, 0x8431, 0x846d, 0x84c1,
-0x84cd, 0x84d0, 0x84e6, 0x84bd, 0x84d3, 0x84ca, 0x84bf, 0x84ba,
-0x84e0, 0x84a1, 0x84b9, 0x84b4, 0x8497, 0x84e5, 0x84e3, 0x850c,
-0x750d, 0x8538, 0x84f0, 0x8539, 0x851f, 0x853a,
-94, 0x5e21,
-0x8556, 0x853b, 0x84ff, 0x84fc, 0x8559, 0x8548, 0x8568, 0x8564,
-0x855e, 0x857a, 0x77a2, 0x8543, 0x8572, 0x857b, 0x85a4, 0x85a8,
-0x8587, 0x858f, 0x8579, 0x85ae, 0x859c, 0x8585, 0x85b9, 0x85b7,
-0x85b0, 0x85d3, 0x85c1, 0x85dc, 0x85ff, 0x8627, 0x8605, 0x8629,
-0x8616, 0x863c, 0x5efe, 0x5f08, 0x593c, 0x5941, 0x8037, 0x5955,
-0x595a, 0x5958, 0x530f, 0x5c22, 0x5c25, 0x5c2c, 0x5c34, 0x624c,
-0x626a, 0x629f, 0x62bb, 0x62ca, 0x62da, 0x62d7, 0x62ee, 0x6322,
-0x62f6, 0x6339, 0x634b, 0x6343, 0x63ad, 0x63f6, 0x6371, 0x637a,
-0x638e, 0x63b4, 0x636d, 0x63ac, 0x638a, 0x6369, 0x63ae, 0x63bc,
-0x63f2, 0x63f8, 0x63e0, 0x63ff, 0x63c4, 0x63de, 0x63ce, 0x6452,
-0x63c6, 0x63be, 0x6445, 0x6441, 0x640b, 0x641b, 0x6420, 0x640c,
-0x6426, 0x6421, 0x645e, 0x6484, 0x646d, 0x6496,
-94, 0x5f21,
-0x647a, 0x64b7, 0x64b8, 0x6499, 0x64ba, 0x64c0, 0x64d0, 0x64d7,
-0x64e4, 0x64e2, 0x6509, 0x6525, 0x652e, 0x5f0b, 0x5fd2, 0x7519,
-0x5f11, 0x535f, 0x53f1, 0x53fd, 0x53e9, 0x53e8, 0x53fb, 0x5412,
-0x5416, 0x5406, 0x544b, 0x5452, 0x5453, 0x5454, 0x5456, 0x5443,
-0x5421, 0x5457, 0x5459, 0x5423, 0x5432, 0x5482, 0x5494, 0x5477,
-0x5471, 0x5464, 0x549a, 0x549b, 0x5484, 0x5476, 0x5466, 0x549d,
-0x54d0, 0x54ad, 0x54c2, 0x54b4, 0x54d2, 0x54a7, 0x54a6, 0x54d3,
-0x54d4, 0x5472, 0x54a3, 0x54d5, 0x54bb, 0x54bf, 0x54cc, 0x54d9,
-0x54da, 0x54dc, 0x54a9, 0x54aa, 0x54a4, 0x54dd, 0x54cf, 0x54de,
-0x551b, 0x54e7, 0x5520, 0x54fd, 0x5514, 0x54f3, 0x5522, 0x5523,
-0x550f, 0x5511, 0x5527, 0x552a, 0x5567, 0x558f, 0x55b5, 0x5549,
-0x556d, 0x5541, 0x5555, 0x553f, 0x5550, 0x553c,
-94, 0x6021,
-0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, 0x555c,
-0x558b, 0x55d2, 0x5583, 0x55b1, 0x55b9, 0x5588, 0x5581, 0x559f,
-0x557e, 0x55d6, 0x5591, 0x557b, 0x55df, 0x55bd, 0x55be, 0x5594,
-0x5599, 0x55ea, 0x55f7, 0x55c9, 0x561f, 0x55d1, 0x55eb, 0x55ec,
-0x55d4, 0x55e6, 0x55dd, 0x55c4, 0x55ef, 0x55e5, 0x55f2, 0x55f3,
-0x55cc, 0x55cd, 0x55e8, 0x55f5, 0x55e4, 0x8f94, 0x561e, 0x5608,
-0x560c, 0x5601, 0x5624, 0x5623, 0x55fe, 0x5600, 0x5627, 0x562d,
-0x5658, 0x5639, 0x5657, 0x562c, 0x564d, 0x5662, 0x5659, 0x565c,
-0x564c, 0x5654, 0x5686, 0x5664, 0x5671, 0x566b, 0x567b, 0x567c,
-0x5685, 0x5693, 0x56af, 0x56d4, 0x56d7, 0x56dd, 0x56e1, 0x56f5,
-0x56eb, 0x56f9, 0x56ff, 0x5704, 0x570a, 0x5709, 0x571c, 0x5e0f,
-0x5e19, 0x5e14, 0x5e11, 0x5e31, 0x5e3b, 0x5e3c,
-94, 0x6121,
-0x5e37, 0x5e44, 0x5e54, 0x5e5b, 0x5e5e, 0x5e61, 0x5c8c, 0x5c7a,
-0x5c8d, 0x5c90, 0x5c96, 0x5c88, 0x5c98, 0x5c99, 0x5c91, 0x5c9a,
-0x5c9c, 0x5cb5, 0x5ca2, 0x5cbd, 0x5cac, 0x5cab, 0x5cb1, 0x5ca3,
-0x5cc1, 0x5cb7, 0x5cc4, 0x5cd2, 0x5ce4, 0x5ccb, 0x5ce5, 0x5d02,
-0x5d03, 0x5d27, 0x5d26, 0x5d2e, 0x5d24, 0x5d1e, 0x5d06, 0x5d1b,
-0x5d58, 0x5d3e, 0x5d34, 0x5d3d, 0x5d6c, 0x5d5b, 0x5d6f, 0x5d5d,
-0x5d6b, 0x5d4b, 0x5d4a, 0x5d69, 0x5d74, 0x5d82, 0x5d99, 0x5d9d,
-0x8c73, 0x5db7, 0x5dc5, 0x5f73, 0x5f77, 0x5f82, 0x5f87, 0x5f89,
-0x5f8c, 0x5f95, 0x5f99, 0x5f9c, 0x5fa8, 0x5fad, 0x5fb5, 0x5fbc,
-0x8862, 0x5f61, 0x72ad, 0x72b0, 0x72b4, 0x72b7, 0x72b8, 0x72c3,
-0x72c1, 0x72ce, 0x72cd, 0x72d2, 0x72e8, 0x72ef, 0x72e9, 0x72f2,
-0x72f4, 0x72f7, 0x7301, 0x72f3, 0x7303, 0x72fa,
-94, 0x6221,
-0x72fb, 0x7317, 0x7313, 0x7321, 0x730a, 0x731e, 0x731d, 0x7315,
-0x7322, 0x7339, 0x7325, 0x732c, 0x7338, 0x7331, 0x7350, 0x734d,
-0x7357, 0x7360, 0x736c, 0x736f, 0x737e, 0x821b, 0x5925, 0x98e7,
-0x5924, 0x5902, 0x9963, 0x9967, 0x9968, 0x9969, 0x996a, 0x996b,
-0x996c, 0x9974, 0x9977, 0x997d, 0x9980, 0x9984, 0x9987, 0x998a,
-0x998d, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, 0x5e80, 0x5e91,
-0x5e8b, 0x5e96, 0x5ea5, 0x5ea0, 0x5eb9, 0x5eb5, 0x5ebe, 0x5eb3,
-0x8d53, 0x5ed2, 0x5ed1, 0x5edb, 0x5ee8, 0x5eea, 0x81ba, 0x5fc4,
-0x5fc9, 0x5fd6, 0x5fcf, 0x6003, 0x5fee, 0x6004, 0x5fe1, 0x5fe4,
-0x5ffe, 0x6005, 0x6006, 0x5fea, 0x5fed, 0x5ff8, 0x6019, 0x6035,
-0x6026, 0x601b, 0x600f, 0x600d, 0x6029, 0x602b, 0x600a, 0x603f,
-0x6021, 0x6078, 0x6079, 0x607b, 0x607a, 0x6042,
-94, 0x6321,
-0x606a, 0x607d, 0x6096, 0x609a, 0x60ad, 0x609d, 0x6083, 0x6092,
-0x608c, 0x609b, 0x60ec, 0x60bb, 0x60b1, 0x60dd, 0x60d8, 0x60c6,
-0x60da, 0x60b4, 0x6120, 0x6126, 0x6115, 0x6123, 0x60f4, 0x6100,
-0x610e, 0x612b, 0x614a, 0x6175, 0x61ac, 0x6194, 0x61a7, 0x61b7,
-0x61d4, 0x61f5, 0x5fdd, 0x96b3, 0x95e9, 0x95eb, 0x95f1, 0x95f3,
-0x95f5, 0x95f6, 0x95fc, 0x95fe, 0x9603, 0x9604, 0x9606, 0x9608,
-0x960a, 0x960b, 0x960c, 0x960d, 0x960f, 0x9612, 0x9615, 0x9616,
-0x9617, 0x9619, 0x961a, 0x4e2c, 0x723f, 0x6215, 0x6c35, 0x6c54,
-0x6c5c, 0x6c4a, 0x6ca3, 0x6c85, 0x6c90, 0x6c94, 0x6c8c, 0x6c68,
-0x6c69, 0x6c74, 0x6c76, 0x6c86, 0x6ca9, 0x6cd0, 0x6cd4, 0x6cad,
-0x6cf7, 0x6cf8, 0x6cf1, 0x6cd7, 0x6cb2, 0x6ce0, 0x6cd6, 0x6cfa,
-0x6ceb, 0x6cee, 0x6cb1, 0x6cd3, 0x6cef, 0x6cfe,
-94, 0x6421,
-0x6d39, 0x6d27, 0x6d0c, 0x6d43, 0x6d48, 0x6d07, 0x6d04, 0x6d19,
-0x6d0e, 0x6d2b, 0x6d4d, 0x6d2e, 0x6d35, 0x6d1a, 0x6d4f, 0x6d52,
-0x6d54, 0x6d33, 0x6d91, 0x6d6f, 0x6d9e, 0x6da0, 0x6d5e, 0x6d93,
-0x6d94, 0x6d5c, 0x6d60, 0x6d7c, 0x6d63, 0x6e1a, 0x6dc7, 0x6dc5,
-0x6dde, 0x6e0e, 0x6dbf, 0x6de0, 0x6e11, 0x6de6, 0x6ddd, 0x6dd9,
-0x6e16, 0x6dab, 0x6e0c, 0x6dae, 0x6e2b, 0x6e6e, 0x6e4e, 0x6e6b,
-0x6eb2, 0x6e5f, 0x6e86, 0x6e53, 0x6e54, 0x6e32, 0x6e25, 0x6e44,
-0x6edf, 0x6eb1, 0x6e98, 0x6ee0, 0x6f2d, 0x6ee2, 0x6ea5, 0x6ea7,
-0x6ebd, 0x6ebb, 0x6eb7, 0x6ed7, 0x6eb4, 0x6ecf, 0x6e8f, 0x6ec2,
-0x6e9f, 0x6f62, 0x6f46, 0x6f47, 0x6f24, 0x6f15, 0x6ef9, 0x6f2f,
-0x6f36, 0x6f4b, 0x6f74, 0x6f2a, 0x6f09, 0x6f29, 0x6f89, 0x6f8d,
-0x6f8c, 0x6f78, 0x6f72, 0x6f7c, 0x6f7a, 0x6fd1,
-94, 0x6521,
-0x6fc9, 0x6fa7, 0x6fb9, 0x6fb6, 0x6fc2, 0x6fe1, 0x6fee, 0x6fde,
-0x6fe0, 0x6fef, 0x701a, 0x7023, 0x701b, 0x7039, 0x7035, 0x704f,
-0x705e, 0x5b80, 0x5b84, 0x5b95, 0x5b93, 0x5ba5, 0x5bb8, 0x752f,
-0x9a9e, 0x6434, 0x5be4, 0x5bee, 0x8930, 0x5bf0, 0x8e47, 0x8b07,
-0x8fb6, 0x8fd3, 0x8fd5, 0x8fe5, 0x8fee, 0x8fe4, 0x8fe9, 0x8fe6,
-0x8ff3, 0x8fe8, 0x9005, 0x9004, 0x900b, 0x9026, 0x9011, 0x900d,
-0x9016, 0x9021, 0x9035, 0x9036, 0x902d, 0x902f, 0x9044, 0x9051,
-0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905b, 0x66b9, 0x9074,
-0x907d, 0x9082, 0x9088, 0x9083, 0x908b, 0x5f50, 0x5f57, 0x5f56,
-0x5f58, 0x5c3b, 0x54ab, 0x5c50, 0x5c59, 0x5b71, 0x5c63, 0x5c66,
-0x7fbc, 0x5f2a, 0x5f29, 0x5f2d, 0x8274, 0x5f3c, 0x9b3b, 0x5c6e,
-0x5981, 0x5983, 0x598d, 0x59a9, 0x59aa, 0x59a3,
-94, 0x6621,
-0x5997, 0x59ca, 0x59ab, 0x599e, 0x59a4, 0x59d2, 0x59b2, 0x59af,
-0x59d7, 0x59be, 0x5a05, 0x5a06, 0x59dd, 0x5a08, 0x59e3, 0x59d8,
-0x59f9, 0x5a0c, 0x5a09, 0x5a32, 0x5a34, 0x5a11, 0x5a23, 0x5a13,
-0x5a40, 0x5a67, 0x5a4a, 0x5a55, 0x5a3c, 0x5a62, 0x5a75, 0x80ec,
-0x5aaa, 0x5a9b, 0x5a77, 0x5a7a, 0x5abe, 0x5aeb, 0x5ab2, 0x5ad2,
-0x5ad4, 0x5ab8, 0x5ae0, 0x5ae3, 0x5af1, 0x5ad6, 0x5ae6, 0x5ad8,
-0x5adc, 0x5b09, 0x5b17, 0x5b16, 0x5b32, 0x5b37, 0x5b40, 0x5c15,
-0x5c1c, 0x5b5a, 0x5b65, 0x5b73, 0x5b51, 0x5b53, 0x5b62, 0x9a75,
-0x9a77, 0x9a78, 0x9a7a, 0x9a7f, 0x9a7d, 0x9a80, 0x9a81, 0x9a85,
-0x9a88, 0x9a8a, 0x9a90, 0x9a92, 0x9a93, 0x9a96, 0x9a98, 0x9a9b,
-0x9a9c, 0x9a9d, 0x9a9f, 0x9aa0, 0x9aa2, 0x9aa3, 0x9aa5, 0x9aa7,
-0x7e9f, 0x7ea1, 0x7ea3, 0x7ea5, 0x7ea8, 0x7ea9,
-94, 0x6721,
-0x7ead, 0x7eb0, 0x7ebe, 0x7ec0, 0x7ec1, 0x7ec2, 0x7ec9, 0x7ecb,
-0x7ecc, 0x7ed0, 0x7ed4, 0x7ed7, 0x7edb, 0x7ee0, 0x7ee1, 0x7ee8,
-0x7eeb, 0x7eee, 0x7eef, 0x7ef1, 0x7ef2, 0x7f0d, 0x7ef6, 0x7efa,
-0x7efb, 0x7efe, 0x7f01, 0x7f02, 0x7f03, 0x7f07, 0x7f08, 0x7f0b,
-0x7f0c, 0x7f0f, 0x7f11, 0x7f12, 0x7f17, 0x7f19, 0x7f1c, 0x7f1b,
-0x7f1f, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27,
-0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2f, 0x7f30, 0x7f31, 0x7f32,
-0x7f33, 0x7f35, 0x5e7a, 0x757f, 0x5ddb, 0x753e, 0x9095, 0x738e,
-0x7391, 0x73ae, 0x73a2, 0x739f, 0x73cf, 0x73c2, 0x73d1, 0x73b7,
-0x73b3, 0x73c0, 0x73c9, 0x73c8, 0x73e5, 0x73d9, 0x987c, 0x740a,
-0x73e9, 0x73e7, 0x73de, 0x73ba, 0x73f2, 0x740f, 0x742a, 0x745b,
-0x7426, 0x7425, 0x7428, 0x7430, 0x742e, 0x742c,
-94, 0x6821,
-0x741b, 0x741a, 0x7441, 0x745c, 0x7457, 0x7455, 0x7459, 0x7477,
-0x746d, 0x747e, 0x749c, 0x748e, 0x7480, 0x7481, 0x7487, 0x748b,
-0x749e, 0x74a8, 0x74a9, 0x7490, 0x74a7, 0x74d2, 0x74ba, 0x97ea,
-0x97eb, 0x97ec, 0x674c, 0x6753, 0x675e, 0x6748, 0x6769, 0x67a5,
-0x6787, 0x676a, 0x6773, 0x6798, 0x67a7, 0x6775, 0x67a8, 0x679e,
-0x67ad, 0x678b, 0x6777, 0x677c, 0x67f0, 0x6809, 0x67d8, 0x680a,
-0x67e9, 0x67b0, 0x680c, 0x67d9, 0x67b5, 0x67da, 0x67b3, 0x67dd,
-0x6800, 0x67c3, 0x67b8, 0x67e2, 0x680e, 0x67c1, 0x67fd, 0x6832,
-0x6833, 0x6860, 0x6861, 0x684e, 0x6862, 0x6844, 0x6864, 0x6883,
-0x681d, 0x6855, 0x6866, 0x6841, 0x6867, 0x6840, 0x683e, 0x684a,
-0x6849, 0x6829, 0x68b5, 0x688f, 0x6874, 0x6877, 0x6893, 0x686b,
-0x68c2, 0x696e, 0x68fc, 0x691f, 0x6920, 0x68f9,
-94, 0x6921,
-0x6924, 0x68f0, 0x690b, 0x6901, 0x6957, 0x68e3, 0x6910, 0x6971,
-0x6939, 0x6960, 0x6942, 0x695d, 0x6984, 0x696b, 0x6980, 0x6998,
-0x6978, 0x6934, 0x69cc, 0x6987, 0x6988, 0x69ce, 0x6989, 0x6966,
-0x6963, 0x6979, 0x699b, 0x69a7, 0x69bb, 0x69ab, 0x69ad, 0x69d4,
-0x69b1, 0x69c1, 0x69ca, 0x69df, 0x6995, 0x69e0, 0x698d, 0x69ff,
-0x6a2f, 0x69ed, 0x6a17, 0x6a18, 0x6a65, 0x69f2, 0x6a44, 0x6a3e,
-0x6aa0, 0x6a50, 0x6a5b, 0x6a35, 0x6a8e, 0x6a79, 0x6a3d, 0x6a28,
-0x6a58, 0x6a7c, 0x6a91, 0x6a90, 0x6aa9, 0x6a97, 0x6aab, 0x7337,
-0x7352, 0x6b81, 0x6b82, 0x6b87, 0x6b84, 0x6b92, 0x6b93, 0x6b8d,
-0x6b9a, 0x6b9b, 0x6ba1, 0x6baa, 0x8f6b, 0x8f6d, 0x8f71, 0x8f72,
-0x8f73, 0x8f75, 0x8f76, 0x8f78, 0x8f77, 0x8f79, 0x8f7a, 0x8f7c,
-0x8f7e, 0x8f81, 0x8f82, 0x8f84, 0x8f87, 0x8f8b,
-94, 0x6a21,
-0x8f8d, 0x8f8e, 0x8f8f, 0x8f98, 0x8f9a, 0x8ece, 0x620b, 0x6217,
-0x621b, 0x621f, 0x6222, 0x6221, 0x6225, 0x6224, 0x622c, 0x81e7,
-0x74ef, 0x74f4, 0x74ff, 0x750f, 0x7511, 0x7513, 0x6534, 0x65ee,
-0x65ef, 0x65f0, 0x660a, 0x6619, 0x6772, 0x6603, 0x6615, 0x6600,
-0x7085, 0x66f7, 0x661d, 0x6634, 0x6631, 0x6636, 0x6635, 0x8006,
-0x665f, 0x6654, 0x6641, 0x664f, 0x6656, 0x6661, 0x6657, 0x6677,
-0x6684, 0x668c, 0x66a7, 0x669d, 0x66be, 0x66db, 0x66dc, 0x66e6,
-0x66e9, 0x8d32, 0x8d33, 0x8d36, 0x8d3b, 0x8d3d, 0x8d40, 0x8d45,
-0x8d46, 0x8d48, 0x8d49, 0x8d47, 0x8d4d, 0x8d55, 0x8d59, 0x89c7,
-0x89ca, 0x89cb, 0x89cc, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x726e,
-0x729f, 0x725d, 0x7266, 0x726f, 0x727e, 0x727f, 0x7284, 0x728b,
-0x728d, 0x728f, 0x7292, 0x6308, 0x6332, 0x63b0,
-94, 0x6b21,
-0x643f, 0x64d8, 0x8004, 0x6bea, 0x6bf3, 0x6bfd, 0x6bf5, 0x6bf9,
-0x6c05, 0x6c07, 0x6c06, 0x6c0d, 0x6c15, 0x6c18, 0x6c19, 0x6c1a,
-0x6c21, 0x6c29, 0x6c24, 0x6c2a, 0x6c32, 0x6535, 0x6555, 0x656b,
-0x724d, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809f, 0x809c,
-0x8093, 0x80bc, 0x670a, 0x80bd, 0x80b1, 0x80ab, 0x80ad, 0x80b4,
-0x80b7, 0x80e7, 0x80e8, 0x80e9, 0x80ea, 0x80db, 0x80c2, 0x80c4,
-0x80d9, 0x80cd, 0x80d7, 0x6710, 0x80dd, 0x80eb, 0x80f1, 0x80f4,
-0x80ed, 0x810d, 0x810e, 0x80f2, 0x80fc, 0x6715, 0x8112, 0x8c5a,
-0x8136, 0x811e, 0x812c, 0x8118, 0x8132, 0x8148, 0x814c, 0x8153,
-0x8174, 0x8159, 0x815a, 0x8171, 0x8160, 0x8169, 0x817c, 0x817d,
-0x816d, 0x8167, 0x584d, 0x5ab5, 0x8188, 0x8182, 0x8191, 0x6ed5,
-0x81a3, 0x81aa, 0x81cc, 0x6726, 0x81ca, 0x81bb,
-94, 0x6c21,
-0x81c1, 0x81a6, 0x6b24, 0x6b37, 0x6b39, 0x6b43, 0x6b46, 0x6b59,
-0x98d1, 0x98d2, 0x98d3, 0x98d5, 0x98d9, 0x98da, 0x6bb3, 0x5f40,
-0x6bc2, 0x89f3, 0x6590, 0x9f51, 0x6593, 0x65bc, 0x65c6, 0x65c4,
-0x65c3, 0x65cc, 0x65ce, 0x65d2, 0x65d6, 0x7080, 0x709c, 0x7096,
-0x709d, 0x70bb, 0x70c0, 0x70b7, 0x70ab, 0x70b1, 0x70e8, 0x70ca,
-0x7110, 0x7113, 0x7116, 0x712f, 0x7131, 0x7173, 0x715c, 0x7168,
-0x7145, 0x7172, 0x714a, 0x7178, 0x717a, 0x7198, 0x71b3, 0x71b5,
-0x71a8, 0x71a0, 0x71e0, 0x71d4, 0x71e7, 0x71f9, 0x721d, 0x7228,
-0x706c, 0x7118, 0x7166, 0x71b9, 0x623e, 0x623d, 0x6243, 0x6248,
-0x6249, 0x793b, 0x7940, 0x7946, 0x7949, 0x795b, 0x795c, 0x7953,
-0x795a, 0x7962, 0x7957, 0x7960, 0x796f, 0x7967, 0x797a, 0x7985,
-0x798a, 0x799a, 0x79a7, 0x79b3, 0x5fd1, 0x5fd0,
-94, 0x6d21,
-0x603c, 0x605d, 0x605a, 0x6067, 0x6041, 0x6059, 0x6063, 0x60ab,
-0x6106, 0x610d, 0x615d, 0x61a9, 0x619d, 0x61cb, 0x61d1, 0x6206,
-0x8080, 0x807f, 0x6c93, 0x6cf6, 0x6dfc, 0x77f6, 0x77f8, 0x7800,
-0x7809, 0x7817, 0x7818, 0x7811, 0x65ab, 0x782d, 0x781c, 0x781d,
-0x7839, 0x783a, 0x783b, 0x781f, 0x783c, 0x7825, 0x782c, 0x7823,
-0x7829, 0x784e, 0x786d, 0x7856, 0x7857, 0x7826, 0x7850, 0x7847,
-0x784c, 0x786a, 0x789b, 0x7893, 0x789a, 0x7887, 0x789c, 0x78a1,
-0x78a3, 0x78b2, 0x78b9, 0x78a5, 0x78d4, 0x78d9, 0x78c9, 0x78ec,
-0x78f2, 0x7905, 0x78f4, 0x7913, 0x7924, 0x791e, 0x7934, 0x9f9b,
-0x9ef9, 0x9efb, 0x9efc, 0x76f1, 0x7704, 0x770d, 0x76f9, 0x7707,
-0x7708, 0x771a, 0x7722, 0x7719, 0x772d, 0x7726, 0x7735, 0x7738,
-0x7750, 0x7751, 0x7747, 0x7743, 0x775a, 0x7768,
-94, 0x6e21,
-0x7762, 0x7765, 0x777f, 0x778d, 0x777d, 0x7780, 0x778c, 0x7791,
-0x779f, 0x77a0, 0x77b0, 0x77b5, 0x77bd, 0x753a, 0x7540, 0x754e,
-0x754b, 0x7548, 0x755b, 0x7572, 0x7579, 0x7583, 0x7f58, 0x7f61,
-0x7f5f, 0x8a48, 0x7f68, 0x7f74, 0x7f71, 0x7f79, 0x7f81, 0x7f7e,
-0x76cd, 0x76e5, 0x8832, 0x9485, 0x9486, 0x9487, 0x948b, 0x948a,
-0x948c, 0x948d, 0x948f, 0x9490, 0x9494, 0x9497, 0x9495, 0x949a,
-0x949b, 0x949c, 0x94a3, 0x94a4, 0x94ab, 0x94aa, 0x94ad, 0x94ac,
-0x94af, 0x94b0, 0x94b2, 0x94b4, 0x94b6, 0x94b7, 0x94b8, 0x94b9,
-0x94ba, 0x94bc, 0x94bd, 0x94bf, 0x94c4, 0x94c8, 0x94c9, 0x94ca,
-0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94d0, 0x94d1, 0x94d2, 0x94d5,
-0x94d6, 0x94d7, 0x94d9, 0x94d8, 0x94db, 0x94de, 0x94df, 0x94e0,
-0x94e2, 0x94e4, 0x94e5, 0x94e7, 0x94e8, 0x94ea,
-94, 0x6f21,
-0x94e9, 0x94eb, 0x94ee, 0x94ef, 0x94f3, 0x94f4, 0x94f5, 0x94f7,
-0x94f9, 0x94fc, 0x94fd, 0x94ff, 0x9503, 0x9502, 0x9506, 0x9507,
-0x9509, 0x950a, 0x950d, 0x950e, 0x950f, 0x9512, 0x9513, 0x9514,
-0x9515, 0x9516, 0x9518, 0x951b, 0x951d, 0x951e, 0x951f, 0x9522,
-0x952a, 0x952b, 0x9529, 0x952c, 0x9531, 0x9532, 0x9534, 0x9536,
-0x9537, 0x9538, 0x953c, 0x953e, 0x953f, 0x9542, 0x9535, 0x9544,
-0x9545, 0x9546, 0x9549, 0x954c, 0x954e, 0x954f, 0x9552, 0x9553,
-0x9554, 0x9556, 0x9557, 0x9558, 0x9559, 0x955b, 0x955e, 0x955f,
-0x955d, 0x9561, 0x9562, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568,
-0x9569, 0x956a, 0x956b, 0x956c, 0x956f, 0x9571, 0x9572, 0x9573,
-0x953a, 0x77e7, 0x77ec, 0x96c9, 0x79d5, 0x79ed, 0x79e3, 0x79eb,
-0x7a06, 0x5d47, 0x7a03, 0x7a02, 0x7a1e, 0x7a14,
-94, 0x7021,
-0x7a39, 0x7a37, 0x7a51, 0x9ecf, 0x99a5, 0x7a70, 0x7688, 0x768e,
-0x7693, 0x7699, 0x76a4, 0x74de, 0x74e0, 0x752c, 0x9e20, 0x9e22,
-0x9e28, 0x9e29, 0x9e2a, 0x9e2b, 0x9e2c, 0x9e32, 0x9e31, 0x9e36,
-0x9e38, 0x9e37, 0x9e39, 0x9e3a, 0x9e3e, 0x9e41, 0x9e42, 0x9e44,
-0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4b, 0x9e4c, 0x9e4e, 0x9e51,
-0x9e55, 0x9e57, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5e, 0x9e63, 0x9e66,
-0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e71, 0x9e6d,
-0x9e73, 0x7592, 0x7594, 0x7596, 0x75a0, 0x759d, 0x75ac, 0x75a3,
-0x75b3, 0x75b4, 0x75b8, 0x75c4, 0x75b1, 0x75b0, 0x75c3, 0x75c2,
-0x75d6, 0x75cd, 0x75e3, 0x75e8, 0x75e6, 0x75e4, 0x75eb, 0x75e7,
-0x7603, 0x75f1, 0x75fc, 0x75ff, 0x7610, 0x7600, 0x7605, 0x760c,
-0x7617, 0x760a, 0x7625, 0x7618, 0x7615, 0x7619,
-94, 0x7121,
-0x761b, 0x763c, 0x7622, 0x7620, 0x7640, 0x762d, 0x7630, 0x763f,
-0x7635, 0x7643, 0x763e, 0x7633, 0x764d, 0x765e, 0x7654, 0x765c,
-0x7656, 0x766b, 0x766f, 0x7fca, 0x7ae6, 0x7a78, 0x7a79, 0x7a80,
-0x7a86, 0x7a88, 0x7a95, 0x7aa6, 0x7aa0, 0x7aac, 0x7aa8, 0x7aad,
-0x7ab3, 0x8864, 0x8869, 0x8872, 0x887d, 0x887f, 0x8882, 0x88a2,
-0x88c6, 0x88b7, 0x88bc, 0x88c9, 0x88e2, 0x88ce, 0x88e3, 0x88e5,
-0x88f1, 0x891a, 0x88fc, 0x88e8, 0x88fe, 0x88f0, 0x8921, 0x8919,
-0x8913, 0x891b, 0x890a, 0x8934, 0x892b, 0x8936, 0x8941, 0x8966,
-0x897b, 0x758b, 0x80e5, 0x76b2, 0x76b4, 0x77dc, 0x8012, 0x8014,
-0x8016, 0x801c, 0x8020, 0x8022, 0x8025, 0x8026, 0x8027, 0x8029,
-0x8028, 0x8031, 0x800b, 0x8035, 0x8043, 0x8046, 0x804d, 0x8052,
-0x8069, 0x8071, 0x8983, 0x9878, 0x9880, 0x9883,
-94, 0x7221,
-0x9889, 0x988c, 0x988d, 0x988f, 0x9894, 0x989a, 0x989b, 0x989e,
-0x989f, 0x98a1, 0x98a2, 0x98a5, 0x98a6, 0x864d, 0x8654, 0x866c,
-0x866e, 0x867f, 0x867a, 0x867c, 0x867b, 0x86a8, 0x868d, 0x868b,
-0x86ac, 0x869d, 0x86a7, 0x86a3, 0x86aa, 0x8693, 0x86a9, 0x86b6,
-0x86c4, 0x86b5, 0x86ce, 0x86b0, 0x86ba, 0x86b1, 0x86af, 0x86c9,
-0x86cf, 0x86b4, 0x86e9, 0x86f1, 0x86f2, 0x86ed, 0x86f3, 0x86d0,
-0x8713, 0x86de, 0x86f4, 0x86df, 0x86d8, 0x86d1, 0x8703, 0x8707,
-0x86f8, 0x8708, 0x870a, 0x870d, 0x8709, 0x8723, 0x873b, 0x871e,
-0x8725, 0x872e, 0x871a, 0x873e, 0x8748, 0x8734, 0x8731, 0x8729,
-0x8737, 0x873f, 0x8782, 0x8722, 0x877d, 0x877e, 0x877b, 0x8760,
-0x8770, 0x874c, 0x876e, 0x878b, 0x8753, 0x8763, 0x877c, 0x8764,
-0x8759, 0x8765, 0x8793, 0x87af, 0x87a8, 0x87d2,
-94, 0x7321,
-0x87c6, 0x8788, 0x8785, 0x87ad, 0x8797, 0x8783, 0x87ab, 0x87e5,
-0x87ac, 0x87b5, 0x87b3, 0x87cb, 0x87d3, 0x87bd, 0x87d1, 0x87c0,
-0x87ca, 0x87db, 0x87ea, 0x87e0, 0x87ee, 0x8816, 0x8813, 0x87fe,
-0x880a, 0x881b, 0x8821, 0x8839, 0x883c, 0x7f36, 0x7f42, 0x7f44,
-0x7f45, 0x8210, 0x7afa, 0x7afd, 0x7b08, 0x7b03, 0x7b04, 0x7b15,
-0x7b0a, 0x7b2b, 0x7b0f, 0x7b47, 0x7b38, 0x7b2a, 0x7b19, 0x7b2e,
-0x7b31, 0x7b20, 0x7b25, 0x7b24, 0x7b33, 0x7b3e, 0x7b1e, 0x7b58,
-0x7b5a, 0x7b45, 0x7b75, 0x7b4c, 0x7b5d, 0x7b60, 0x7b6e, 0x7b7b,
-0x7b62, 0x7b72, 0x7b71, 0x7b90, 0x7ba6, 0x7ba7, 0x7bb8, 0x7bac,
-0x7b9d, 0x7ba8, 0x7b85, 0x7baa, 0x7b9c, 0x7ba2, 0x7bab, 0x7bb4,
-0x7bd1, 0x7bc1, 0x7bcc, 0x7bdd, 0x7bda, 0x7be5, 0x7be6, 0x7bea,
-0x7c0c, 0x7bfe, 0x7bfc, 0x7c0f, 0x7c16, 0x7c0b,
-94, 0x7421,
-0x7c1f, 0x7c2a, 0x7c26, 0x7c38, 0x7c41, 0x7c40, 0x81fe, 0x8201,
-0x8202, 0x8204, 0x81ec, 0x8844, 0x8221, 0x8222, 0x8223, 0x822d,
-0x822f, 0x8228, 0x822b, 0x8238, 0x823b, 0x8233, 0x8234, 0x823e,
-0x8244, 0x8249, 0x824b, 0x824f, 0x825a, 0x825f, 0x8268, 0x887e,
-0x8885, 0x8888, 0x88d8, 0x88df, 0x895e, 0x7f9d, 0x7f9f, 0x7fa7,
-0x7faf, 0x7fb0, 0x7fb2, 0x7c7c, 0x6549, 0x7c91, 0x7c9d, 0x7c9c,
-0x7c9e, 0x7ca2, 0x7cb2, 0x7cbc, 0x7cbd, 0x7cc1, 0x7cc7, 0x7ccc,
-0x7ccd, 0x7cc8, 0x7cc5, 0x7cd7, 0x7ce8, 0x826e, 0x66a8, 0x7fbf,
-0x7fce, 0x7fd5, 0x7fe5, 0x7fe1, 0x7fe6, 0x7fe9, 0x7fee, 0x7ff3,
-0x7cf8, 0x7d77, 0x7da6, 0x7dae, 0x7e47, 0x7e9b, 0x9eb8, 0x9eb4,
-0x8d73, 0x8d84, 0x8d94, 0x8d91, 0x8db1, 0x8d67, 0x8d6d, 0x8c47,
-0x8c49, 0x914a, 0x9150, 0x914e, 0x914f, 0x9164,
-94, 0x7521,
-0x9162, 0x9161, 0x9170, 0x9169, 0x916f, 0x917d, 0x917e, 0x9172,
-0x9174, 0x9179, 0x918c, 0x9185, 0x9190, 0x918d, 0x9191, 0x91a2,
-0x91a3, 0x91aa, 0x91ad, 0x91ae, 0x91af, 0x91b5, 0x91b4, 0x91ba,
-0x8c55, 0x9e7e, 0x8db8, 0x8deb, 0x8e05, 0x8e59, 0x8e69, 0x8db5,
-0x8dbf, 0x8dbc, 0x8dba, 0x8dc4, 0x8dd6, 0x8dd7, 0x8dda, 0x8dde,
-0x8dce, 0x8dcf, 0x8ddb, 0x8dc6, 0x8dec, 0x8df7, 0x8df8, 0x8de3,
-0x8df9, 0x8dfb, 0x8de4, 0x8e09, 0x8dfd, 0x8e14, 0x8e1d, 0x8e1f,
-0x8e2c, 0x8e2e, 0x8e23, 0x8e2f, 0x8e3a, 0x8e40, 0x8e39, 0x8e35,
-0x8e3d, 0x8e31, 0x8e49, 0x8e41, 0x8e42, 0x8e51, 0x8e52, 0x8e4a,
-0x8e70, 0x8e76, 0x8e7c, 0x8e6f, 0x8e74, 0x8e85, 0x8e8f, 0x8e94,
-0x8e90, 0x8e9c, 0x8e9e, 0x8c78, 0x8c82, 0x8c8a, 0x8c85, 0x8c98,
-0x8c94, 0x659b, 0x89d6, 0x89de, 0x89da, 0x89dc,
-94, 0x7621,
-0x89e5, 0x89eb, 0x89ef, 0x8a3e, 0x8b26, 0x9753, 0x96e9, 0x96f3,
-0x96ef, 0x9706, 0x9701, 0x9708, 0x970f, 0x970e, 0x972a, 0x972d,
-0x9730, 0x973e, 0x9f80, 0x9f83, 0x9f85, 0x9f86, 0x9f87, 0x9f88,
-0x9f89, 0x9f8a, 0x9f8c, 0x9efe, 0x9f0b, 0x9f0d, 0x96b9, 0x96bc,
-0x96bd, 0x96ce, 0x96d2, 0x77bf, 0x96e0, 0x928e, 0x92ae, 0x92c8,
-0x933e, 0x936a, 0x93ca, 0x938f, 0x943e, 0x946b, 0x9c7f, 0x9c82,
-0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x7a23, 0x9c8b, 0x9c8e, 0x9c90,
-0x9c91, 0x9c92, 0x9c94, 0x9c95, 0x9c9a, 0x9c9b, 0x9c9e, 0x9c9f,
-0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8,
-0x9ca9, 0x9cab, 0x9cad, 0x9cae, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3,
-0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd,
-0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cca, 0x9ccb,
-94, 0x7721,
-0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, 0x9cd3, 0x9cd4, 0x9cd5,
-0x9cd7, 0x9cd8, 0x9cd9, 0x9cdc, 0x9cdd, 0x9cdf, 0x9ce2, 0x977c,
-0x9785, 0x9791, 0x9792, 0x9794, 0x97af, 0x97ab, 0x97a3, 0x97b2,
-0x97b4, 0x9ab1, 0x9ab0, 0x9ab7, 0x9e58, 0x9ab6, 0x9aba, 0x9abc,
-0x9ac1, 0x9ac0, 0x9ac5, 0x9ac2, 0x9acb, 0x9acc, 0x9ad1, 0x9b45,
-0x9b43, 0x9b47, 0x9b49, 0x9b48, 0x9b4d, 0x9b51, 0x98e8, 0x990d,
-0x992e, 0x9955, 0x9954, 0x9adf, 0x9ae1, 0x9ae6, 0x9aef, 0x9aeb,
-0x9afb, 0x9aed, 0x9af9, 0x9b08, 0x9b0f, 0x9b13, 0x9b1f, 0x9b23,
-0x9ebd, 0x9ebe, 0x7e3b, 0x9e82, 0x9e87, 0x9e88, 0x9e8b, 0x9e92,
-0x93d6, 0x9e9d, 0x9e9f, 0x9edb, 0x9edc, 0x9edd, 0x9ee0, 0x9edf,
-0x9ee2, 0x9ee9, 0x9ee7, 0x9ee5, 0x9eea, 0x9eef, 0x9f22, 0x9f2c,
-0x9f2f, 0x9f39, 0x9f37, 0x9f3d, 0x9f3e, 0x9f44,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/instmac.m4	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-dnl Copyright (c) 1994 James Clark
-dnl See the file COPYING for copying permission.
-dnl M4 macros for template instantiation.
-define(`__undefine', defn(`undefine'))dnl
-define(`__define', defn(`define'))dnl
-define(`__changequote', defn(`changequote'))dnl
-define(`__include', defn(`include'))dnl
-define(`__ifdef', defn(`ifdef'))dnl
-define(`__divert', defn(`divert'))dnl
-define(`__dnl', defn(`dnl'))dnl
-define(`__incr', defn(`incr'))dnl
-define(`__index', 0)dnl
-define(`__concat', $1$2)dnl
-define(`__instantiate',`#ifdef __DECCXX
-#pragma define_template $1
-#else
-#ifdef __xlC__
-#pragma define($1)
-#else
-#ifdef SP_ANSI_CLASS_INST
-template class $1;
-#else
-typedef $1 __concat(Dummy_,__index);
-#endif
-#endif
-#endif
-__define(`__index',__incr(__index))__dnl')dnl
-define(`__func_index', 0)dnl
-define(`__instantiate_func3',
-`#ifdef __GNUG__
-template void $1($2, $3, $4);
-#else
-static
-void  __concat(func_,__func_index) ($2 arg1, $3 arg2, $4 arg3) {
-(void)$1(arg1, arg2, arg3);
-}
-#endif
-__define(`__func_index',__incr(__func_index))__dnl')dnl
-dnl we want __p to be expanded even inside comments
-changecom()__dnl
-__undefine(`changecom')__dnl
-__undefine(`changequote')__dnl
-__undefine(`decr')__dnl
-__undefine(`define')__dnl
-__undefine(`defn')__dnl
-__undefine(`divert')__dnl
-__undefine(`divnum')__dnl
-__undefine(`dnl')__dnl
-__undefine(`dumpdef')__dnl
-__undefine(`errprint')__dnl
-__undefine(`eval')__dnl
-__undefine(`ifdef')__dnl
-__undefine(`ifelse')__dnl
-__undefine(`include')__dnl
-__undefine(`incr')__dnl
-__undefine(`index')__dnl
-__undefine(`len')__dnl
-__undefine(`m4exit')__dnl
-__undefine(`m4wrap')__dnl
-__undefine(`maketemp')__dnl
-__undefine(`popdef')__dnl
-__undefine(`pushdef')__dnl
-__undefine(`shift')__dnl
-__undefine(`sinclude')__dnl
-__undefine(`substr')__dnl
-__undefine(`syscmd')__dnl
-__undefine(`sysval')__dnl
-__undefine(`traceoff')__dnl
-__undefine(`traceon')__dnl
-__undefine(`translit')__dnl
-__undefine(`undefine')__dnl
-__undefine(`undivert')__dnl
-__undefine(`unix')__dnl
-__dnl __changequote(,)__dnl disable quoting
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/iso646-jis.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-96, 0x0020,
-0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-0x0058, 0x0059, 0x005a, 0x005b, 0x00a5, 0x005d, 0x005e, 0x005f,
-0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
-0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x203e, 0x007f,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-2.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-/* ISO 8859-2 */
-96, 0x0020,
-0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7,
-0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b,
-0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7,
-0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c,
-0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7,
-0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e,
-0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7,
-0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df,
-0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7,
-0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f,
-0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7,
-0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-3.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/* ISO 8859-3 */
-5, 0x0020,
-0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4,
-8, 0x0026,
-0x0124, 0x00a7, 0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad,
-15, 0x002f,
-0x017b, 0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125,
-0x00b7, 0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd,
-4, 0x003f,
-0x017c, 0x00c0, 0x00c1, 0x00c2,
-12, 0x0044,
-0x00c4, 0x010a, 0x0108, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb,
-0x00cc, 0x00cd, 0x00ce, 0x00cf,
-18, 0x0051,
-0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7, 0x011c,
-0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df, 0x00e0,
-0x00e1, 0x00e2,
-12, 0x0064,
-0x00e4, 0x010b, 0x0109, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb,
-0x00ec, 0x00ed, 0x00ee, 0x00ef,
-15, 0x0071,
-0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7, 0x011d,
-0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-4.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-/* ISO 8859-4 */
-96, 0x0020,
-0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7,
-0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af,
-0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7,
-0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b,
-0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e,
-0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a,
-0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
-0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df,
-0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f,
-0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b,
-0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
-0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-5.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-/* ISO 8859-5 */
-96, 0x0020,
-0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
-0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f,
-0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
-0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-6.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-/* ISO 8859-6 */
-1, 0x0020,
-0x00a0,
-1, 0x0024,
-0x00a4,
-2, 0x002c,
-0x060c, 0x00ad,
-1, 0x003b,
-0x061b,
-1, 0x003f,
-0x061f,
-26, 0x0041,
-0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628,
-0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, 0x0630,
-0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638,
-0x0639, 0x063a,
-19, 0x0060,
-0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,
-0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f,
-0x0650, 0x0651, 0x0652,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-7.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-/* ISO 8859-7 */
-4, 0x0020,
-0x00a0, 0x02bd, 0x02bc, 0x00a3,
-4, 0x0026,
-0x00a6, 0x00a7, 0x00a8, 0x00a9,
-3, 0x002b,
-0x00ab, 0x00ac, 0x00ad,
-35, 0x002f,
-0x2015, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386,
-0x00b7, 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e,
-0x038f, 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396,
-0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e,
-0x039f, 0x03a0, 0x03a1,
-44, 0x0053,
-0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa,
-0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03b0, 0x03b1, 0x03b2,
-0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba,
-0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c2,
-0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x03ca,
-0x03cb, 0x03cc, 0x03cd, 0x03ce,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-8.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-/* ISO 8859-8 */
-1, 0x0020,
-0x00a0,
-29, 0x0022,
-0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9,
-0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x203e, 0x00b0, 0x00b1,
-0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9,
-0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be,
-28, 0x005f,
-0x2017, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6,
-0x05d7, 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de,
-0x05df, 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6,
-0x05e7, 0x05e8, 0x05e9, 0x05ea,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/iso8859-9.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-/* ISO 8859-9 */
-96, 0x0020,
-0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
-0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
-0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
-0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
-0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
-0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
-0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
-0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df,
-0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
-0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
-0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
-0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/jis0201.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-63, 0x0021,
-0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, 0xff68,
-0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0xff70,
-0xff71, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, 0xff78,
-0xff79, 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80,
-0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88,
-0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, 0xff8f, 0xff90,
-0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98,
-0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/jis0208.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,971 +0,0 @@
-94, 0x2121,
-0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b,
-0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e,
-0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd,
-0x3005, 0x3006, 0x3007, 0x30fc, 0x2015, 0x2010, 0xff0f, 0x005c,
-0x301c, 0x2016, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c,
-0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b,
-0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e,
-0x300f, 0x3010, 0x3011, 0xff0b, 0x2212, 0x00b1, 0x00d7, 0x00f7,
-0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e, 0x2234,
-0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5, 0xff04,
-0x00a2, 0x00a3, 0xff05, 0xff03, 0xff06, 0xff0a, 0xff20, 0x00a7,
-0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7,
-14, 0x2221,
-0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b,
-0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013,
-8, 0x223a,
-0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, 0x2229,
-7, 0x224a,
-0x2227, 0x2228, 0x00ac, 0x21d2, 0x21d4, 0x2200, 0x2203,
-15, 0x225c,
-0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x226a,
-0x226b, 0x221a, 0x223d, 0x221d, 0x2235, 0x222b, 0x222c,
-8, 0x2272,
-0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, 0x2021, 0x00b6,
-1, 0x227e,
-0x25ef,
-10, 0x2330,
-0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17,
-0xff18, 0xff19,
-26, 0x2341,
-0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
-0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
-0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
-0xff39, 0xff3a,
-26, 0x2361,
-0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48,
-0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50,
-0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58,
-0xff59, 0xff5a,
-83, 0x2421,
-0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048,
-0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050,
-0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
-0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
-0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
-0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
-0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
-0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
-0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
-0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
-0x3091, 0x3092, 0x3093,
-86, 0x2521,
-0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8,
-0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0,
-0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8,
-0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
-0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8,
-0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0,
-0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8,
-0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0,
-0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8,
-0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0,
-0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6,
-24, 0x2621,
-0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
-0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0,
-0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
-24, 0x2641,
-0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8,
-0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0,
-0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,
-33, 0x2721,
-0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416,
-0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
-0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426,
-0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e,
-0x042f,
-33, 0x2751,
-0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436,
-0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
-0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446,
-0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e,
-0x044f,
-32, 0x2821,
-0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c,
-0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b,
-0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f,
-0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542,
-94, 0x3021,
-0x4e9c, 0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6,
-0x9022, 0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed,
-0x8466, 0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b,
-0x59d0, 0x867b, 0x98f4, 0x7d62, 0x7dbe, 0x9b8e, 0x6216, 0x7c9f,
-0x88b7, 0x5b89, 0x5eb5, 0x6309, 0x6697, 0x6848, 0x95c7, 0x978d,
-0x674f, 0x4ee5, 0x4f0a, 0x4f4d, 0x4f9d, 0x5049, 0x56f2, 0x5937,
-0x59d4, 0x5a01, 0x5c09, 0x60df, 0x610f, 0x6170, 0x6613, 0x6905,
-0x70ba, 0x754f, 0x7570, 0x79fb, 0x7dad, 0x7def, 0x80c3, 0x840e,
-0x8863, 0x8b02, 0x9055, 0x907a, 0x533b, 0x4e95, 0x4ea5, 0x57df,
-0x80b2, 0x90c1, 0x78ef, 0x4e00, 0x58f1, 0x6ea2, 0x9038, 0x7a32,
-0x8328, 0x828b, 0x9c2f, 0x5141, 0x5370, 0x54bd, 0x54e1, 0x56e0,
-0x59fb, 0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d,
-94, 0x3121,
-0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf,
-0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893,
-0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5,
-0x53a9, 0x6d66, 0x74dc, 0x958f, 0x5642, 0x4e91, 0x904b, 0x96f2,
-0x834f, 0x990c, 0x53e1, 0x55b6, 0x5b30, 0x5f71, 0x6620, 0x66f3,
-0x6804, 0x6c38, 0x6cf3, 0x6d29, 0x745b, 0x76c8, 0x7a4e, 0x9834,
-0x82f1, 0x885b, 0x8a60, 0x92ed, 0x6db2, 0x75ab, 0x76ca, 0x99c5,
-0x60a6, 0x8b01, 0x8d8a, 0x95b2, 0x698e, 0x53ad, 0x5186, 0x5712,
-0x5830, 0x5944, 0x5bb4, 0x5ef6, 0x6028, 0x63a9, 0x63f4, 0x6cbf,
-0x6f14, 0x708e, 0x7114, 0x7159, 0x71d5, 0x733f, 0x7e01, 0x8276,
-0x82d1, 0x8597, 0x9060, 0x925b, 0x9d1b, 0x5869, 0x65bc, 0x6c5a,
-0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc,
-94, 0x3221,
-0x62bc, 0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956,
-0x9d2c, 0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b,
-0x61b6, 0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069,
-0x6e29, 0x7a4f, 0x97f3, 0x4e0b, 0x5316, 0x4eee, 0x4f55, 0x4f3d,
-0x4fa1, 0x4f73, 0x52a0, 0x53ef, 0x5609, 0x590f, 0x5ac1, 0x5bb6,
-0x5be1, 0x79d1, 0x6687, 0x679c, 0x67b6, 0x6b4c, 0x6cb3, 0x706b,
-0x73c2, 0x798d, 0x79be, 0x7a3c, 0x7b87, 0x82b1, 0x82db, 0x8304,
-0x8377, 0x83ef, 0x83d3, 0x8766, 0x8ab2, 0x5629, 0x8ca8, 0x8fe6,
-0x904e, 0x971e, 0x868a, 0x4fc4, 0x5ce8, 0x6211, 0x7259, 0x753b,
-0x81e5, 0x82bd, 0x86fe, 0x8cc0, 0x96c5, 0x9913, 0x99d5, 0x4ecb,
-0x4f1a, 0x89e3, 0x56de, 0x584a, 0x58ca, 0x5efb, 0x5feb, 0x602a,
-0x6094, 0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539,
-94, 0x3321,
-0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75,
-0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916,
-0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb,
-0x8857, 0x8a72, 0x93a7, 0x9ab8, 0x6d6c, 0x99a8, 0x86d9, 0x57a3,
-0x67ff, 0x86ce, 0x920e, 0x5283, 0x5687, 0x5404, 0x5ed3, 0x62e1,
-0x64b9, 0x683c, 0x6838, 0x6bbb, 0x7372, 0x78ba, 0x7a6b, 0x899a,
-0x89d2, 0x8d6b, 0x8f03, 0x90ed, 0x95a3, 0x9694, 0x9769, 0x5b66,
-0x5cb3, 0x697d, 0x984d, 0x984e, 0x639b, 0x7b20, 0x6a2b, 0x6a7f,
-0x68b6, 0x9c0d, 0x6f5f, 0x5272, 0x559d, 0x6070, 0x62ec, 0x6d3b,
-0x6e07, 0x6ed1, 0x845b, 0x8910, 0x8f44, 0x4e14, 0x9c39, 0x53f6,
-0x691b, 0x6a3a, 0x9784, 0x682a, 0x515c, 0x7ac3, 0x84b2, 0x91dc,
-0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431,
-94, 0x3421,
-0x7ca5, 0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2,
-0x520a, 0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c,
-0x5b98, 0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be,
-0x63db, 0x6562, 0x67d1, 0x6853, 0x68fa, 0x6b3e, 0x6b53, 0x6c57,
-0x6f22, 0x6f97, 0x6f45, 0x74b0, 0x7518, 0x76e3, 0x770b, 0x7aff,
-0x7ba1, 0x7c21, 0x7de9, 0x7f36, 0x7ff0, 0x809d, 0x8266, 0x839e,
-0x89b3, 0x8acc, 0x8cab, 0x9084, 0x9451, 0x9593, 0x9591, 0x95a2,
-0x9665, 0x97d3, 0x9928, 0x8218, 0x4e38, 0x542b, 0x5cb8, 0x5dcc,
-0x73a9, 0x764c, 0x773c, 0x5ca9, 0x7feb, 0x8d0b, 0x96c1, 0x9811,
-0x9854, 0x9858, 0x4f01, 0x4f0e, 0x5371, 0x559c, 0x5668, 0x57fa,
-0x5947, 0x5b09, 0x5bc4, 0x5c90, 0x5e0c, 0x5e7e, 0x5fcc, 0x63ee,
-0x673a, 0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4,
-94, 0x3521,
-0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63,
-0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc,
-0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993,
-0x5b9c, 0x622f, 0x6280, 0x64ec, 0x6b3a, 0x72a0, 0x7591, 0x7947,
-0x7fa9, 0x87fb, 0x8abc, 0x8b70, 0x63ac, 0x83ca, 0x97a0, 0x5409,
-0x5403, 0x55ab, 0x6854, 0x6a58, 0x8a70, 0x7827, 0x6775, 0x9ecd,
-0x5374, 0x5ba2, 0x811a, 0x8650, 0x9006, 0x4e18, 0x4e45, 0x4ec7,
-0x4f11, 0x53ca, 0x5438, 0x5bae, 0x5f13, 0x6025, 0x6551, 0x673d,
-0x6c42, 0x6c72, 0x6ce3, 0x7078, 0x7403, 0x7a76, 0x7aae, 0x7b08,
-0x7d1a, 0x7cfe, 0x7d66, 0x65e7, 0x725b, 0x53bb, 0x5c45, 0x5de8,
-0x62d2, 0x62e0, 0x6319, 0x6e20, 0x865a, 0x8a31, 0x8ddd, 0x92f8,
-0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac,
-94, 0x3621,
-0x4f9b, 0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354,
-0x5321, 0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a,
-0x602f, 0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2,
-0x72ed, 0x77ef, 0x80f8, 0x8105, 0x8208, 0x854e, 0x90f7, 0x93e1,
-0x97ff, 0x9957, 0x9a5a, 0x4ef0, 0x51dd, 0x5c2d, 0x6681, 0x696d,
-0x5c40, 0x66f2, 0x6975, 0x7389, 0x6850, 0x7c81, 0x50c5, 0x52e4,
-0x5747, 0x5dfe, 0x9326, 0x65a4, 0x6b23, 0x6b3d, 0x7434, 0x7981,
-0x79bd, 0x7b4b, 0x7dca, 0x82b9, 0x83cc, 0x887f, 0x895f, 0x8b39,
-0x8fd1, 0x91d1, 0x541f, 0x9280, 0x4e5d, 0x5036, 0x53e5, 0x533a,
-0x72d7, 0x7396, 0x77e9, 0x82e6, 0x8eaf, 0x99c6, 0x99c8, 0x99d2,
-0x5177, 0x611a, 0x865e, 0x55b0, 0x7a7a, 0x5076, 0x5bd3, 0x9047,
-0x9685, 0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48,
-94, 0x3721,
-0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688,
-0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab,
-0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2,
-0x50be, 0x5211, 0x5144, 0x5553, 0x572d, 0x73ea, 0x578b, 0x5951,
-0x5f62, 0x5f84, 0x6075, 0x6176, 0x6167, 0x61a9, 0x63b2, 0x643a,
-0x656c, 0x666f, 0x6842, 0x6e13, 0x7566, 0x7a3d, 0x7cfb, 0x7d4c,
-0x7d99, 0x7e4b, 0x7f6b, 0x830e, 0x834a, 0x86cd, 0x8a08, 0x8a63,
-0x8b66, 0x8efd, 0x981a, 0x9d8f, 0x82b8, 0x8fce, 0x9be8, 0x5287,
-0x621f, 0x6483, 0x6fc0, 0x9699, 0x6841, 0x5091, 0x6b20, 0x6c7a,
-0x6f54, 0x7a74, 0x7d50, 0x8840, 0x8a23, 0x6708, 0x4ef6, 0x5039,
-0x5026, 0x5065, 0x517c, 0x5238, 0x5263, 0x55a7, 0x570f, 0x5805,
-0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372,
-94, 0x3821,
-0x691c, 0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79,
-0x770c, 0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375,
-0x967a, 0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b,
-0x5f26, 0x6e1b, 0x6e90, 0x7384, 0x73fe, 0x7d43, 0x8237, 0x8a00,
-0x8afa, 0x9650, 0x4e4e, 0x500b, 0x53e4, 0x547c, 0x56fa, 0x59d1,
-0x5b64, 0x5df1, 0x5eab, 0x5f27, 0x6238, 0x6545, 0x67af, 0x6e56,
-0x72d0, 0x7cca, 0x88b4, 0x80a1, 0x80e1, 0x83f0, 0x864e, 0x8a87,
-0x8de8, 0x9237, 0x96c7, 0x9867, 0x9f13, 0x4e94, 0x4e92, 0x4f0d,
-0x5348, 0x5449, 0x543e, 0x5a2f, 0x5f8c, 0x5fa1, 0x609f, 0x68a7,
-0x6a8e, 0x745a, 0x7881, 0x8a9e, 0x8aa4, 0x8b77, 0x9190, 0x4e5e,
-0x9bc9, 0x4ea4, 0x4f7c, 0x4faf, 0x5019, 0x5016, 0x5149, 0x516c,
-0x529f, 0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411,
-94, 0x3921,
-0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f,
-0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18,
-0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643,
-0x66f4, 0x676d, 0x6821, 0x6897, 0x69cb, 0x6c5f, 0x6d2a, 0x6d69,
-0x6e2f, 0x6e9d, 0x7532, 0x7687, 0x786c, 0x7a3f, 0x7ce0, 0x7d05,
-0x7d18, 0x7d5e, 0x7db1, 0x8015, 0x8003, 0x80af, 0x80b1, 0x8154,
-0x818f, 0x822a, 0x8352, 0x884c, 0x8861, 0x8b1b, 0x8ca2, 0x8cfc,
-0x90ca, 0x9175, 0x9271, 0x783f, 0x92fc, 0x95a4, 0x964d, 0x9805,
-0x9999, 0x9ad8, 0x9d3b, 0x525b, 0x52ab, 0x53f7, 0x5408, 0x58d5,
-0x62f7, 0x6fe0, 0x8c6a, 0x8f5f, 0x9eb9, 0x514b, 0x523b, 0x544a,
-0x56fd, 0x7a40, 0x9177, 0x9d60, 0x9ed2, 0x7344, 0x6f09, 0x8170,
-0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc,
-94, 0x3a21,
-0x6b64, 0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068,
-0x61c7, 0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a,
-0x826e, 0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6,
-0x5dee, 0x67fb, 0x6c99, 0x7473, 0x7802, 0x8a50, 0x9396, 0x88df,
-0x5750, 0x5ea7, 0x632b, 0x50b5, 0x50ac, 0x518d, 0x6700, 0x54c9,
-0x585e, 0x59bb, 0x5bb0, 0x5f69, 0x624d, 0x63a1, 0x683d, 0x6b73,
-0x6e08, 0x707d, 0x91c7, 0x7280, 0x7815, 0x7826, 0x796d, 0x658e,
-0x7d30, 0x83dc, 0x88c1, 0x8f09, 0x969b, 0x5264, 0x5728, 0x6750,
-0x7f6a, 0x8ca1, 0x51b4, 0x5742, 0x962a, 0x583a, 0x698a, 0x80b4,
-0x54b2, 0x5d0e, 0x57fc, 0x7895, 0x9dfa, 0x4f5c, 0x524a, 0x548b,
-0x643e, 0x6628, 0x6714, 0x67f5, 0x7a84, 0x7b56, 0x7d22, 0x932f,
-0x685c, 0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237,
-94, 0x3b21,
-0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1,
-0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09,
-0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6,
-0x73ca, 0x7523, 0x7b97, 0x7e82, 0x8695, 0x8b83, 0x8cdb, 0x9178,
-0x9910, 0x65ac, 0x66ab, 0x6b8b, 0x4ed5, 0x4ed4, 0x4f3a, 0x4f7f,
-0x523a, 0x53f8, 0x53f2, 0x55e3, 0x56db, 0x58eb, 0x59cb, 0x59c9,
-0x59ff, 0x5b50, 0x5c4d, 0x5e02, 0x5e2b, 0x5fd7, 0x601d, 0x6307,
-0x652f, 0x5b5c, 0x65af, 0x65bd, 0x65e8, 0x679d, 0x6b62, 0x6b7b,
-0x6c0f, 0x7345, 0x7949, 0x79c1, 0x7cf8, 0x7d19, 0x7d2b, 0x80a2,
-0x8102, 0x81f3, 0x8996, 0x8a5e, 0x8a69, 0x8a66, 0x8a8c, 0x8aee,
-0x8cc7, 0x8cdc, 0x96cc, 0x98fc, 0x6b6f, 0x4e8b, 0x4f3c, 0x4f8d,
-0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642,
-94, 0x3c21,
-0x6b21, 0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a,
-0x800c, 0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f,
-0x8b58, 0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1,
-0x57f7, 0x5931, 0x5ac9, 0x5ba4, 0x6089, 0x6e7f, 0x6f06, 0x75be,
-0x8cea, 0x5b9f, 0x8500, 0x7be0, 0x5072, 0x67f4, 0x829d, 0x5c61,
-0x854a, 0x7e1e, 0x820e, 0x5199, 0x5c04, 0x6368, 0x8d66, 0x659c,
-0x716e, 0x793e, 0x7d17, 0x8005, 0x8b1d, 0x8eca, 0x906e, 0x86c7,
-0x90aa, 0x501f, 0x52fa, 0x5c3a, 0x6753, 0x707c, 0x7235, 0x914c,
-0x91c8, 0x932b, 0x82e5, 0x5bc2, 0x5f31, 0x60f9, 0x4e3b, 0x53d6,
-0x5b88, 0x624b, 0x6731, 0x6b8a, 0x72e9, 0x73e0, 0x7a2e, 0x816b,
-0x8da3, 0x9152, 0x9996, 0x5112, 0x53d7, 0x546a, 0x5bff, 0x6388,
-0x6a39, 0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468,
-94, 0x3d21,
-0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0,
-0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846,
-0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6,
-0x919c, 0x4ec0, 0x4f4f, 0x5145, 0x5341, 0x5f93, 0x620e, 0x67d4,
-0x6c41, 0x6e0b, 0x7363, 0x7e26, 0x91cd, 0x9283, 0x53d4, 0x5919,
-0x5bbf, 0x6dd1, 0x795d, 0x7e2e, 0x7c9b, 0x587e, 0x719f, 0x51fa,
-0x8853, 0x8ff0, 0x4fca, 0x5cfb, 0x6625, 0x77ac, 0x7ae3, 0x821c,
-0x99ff, 0x51c6, 0x5faa, 0x65ec, 0x696f, 0x6b89, 0x6df3, 0x6e96,
-0x6f64, 0x76fe, 0x7d14, 0x5de1, 0x9075, 0x9187, 0x9806, 0x51e6,
-0x521d, 0x6240, 0x6691, 0x66d9, 0x6e1a, 0x5eb6, 0x7dd2, 0x7f72,
-0x66f8, 0x85af, 0x85f7, 0x8af8, 0x52a9, 0x53d9, 0x5973, 0x5e8f,
-0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f,
-94, 0x3e21,
-0x52dd, 0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617,
-0x5968, 0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a,
-0x5e84, 0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c,
-0x6377, 0x6607, 0x660c, 0x662d, 0x6676, 0x677e, 0x68a2, 0x6a1f,
-0x6a35, 0x6cbc, 0x6d88, 0x6e09, 0x6e58, 0x713c, 0x7126, 0x7167,
-0x75c7, 0x7701, 0x785d, 0x7901, 0x7965, 0x79f0, 0x7ae0, 0x7b11,
-0x7ca7, 0x7d39, 0x8096, 0x83d6, 0x848b, 0x8549, 0x885d, 0x88f3,
-0x8a1f, 0x8a3c, 0x8a54, 0x8a73, 0x8c61, 0x8cde, 0x91a4, 0x9266,
-0x937e, 0x9418, 0x969c, 0x9798, 0x4e0a, 0x4e08, 0x4e1e, 0x4e57,
-0x5197, 0x5270, 0x57ce, 0x5834, 0x58cc, 0x5b22, 0x5e38, 0x60c5,
-0x64fe, 0x6761, 0x6756, 0x6d44, 0x72b6, 0x7573, 0x7a63, 0x84b8,
-0x8b72, 0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe,
-94, 0x3f21,
-0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6,
-0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507,
-0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b,
-0x68ee, 0x699b, 0x6d78, 0x6df1, 0x7533, 0x75b9, 0x771f, 0x795e,
-0x79e6, 0x7d33, 0x81e3, 0x82af, 0x85aa, 0x89aa, 0x8a3a, 0x8eab,
-0x8f9b, 0x9032, 0x91dd, 0x9707, 0x4eba, 0x4ec1, 0x5203, 0x5875,
-0x58ec, 0x5c0b, 0x751a, 0x5c3d, 0x814e, 0x8a0a, 0x8fc5, 0x9663,
-0x976d, 0x7b25, 0x8acf, 0x9808, 0x9162, 0x56f3, 0x53a8, 0x9017,
-0x5439, 0x5782, 0x5e25, 0x63a8, 0x6c34, 0x708a, 0x7761, 0x7c8b,
-0x7fe0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968f, 0x745e,
-0x9ac4, 0x5d07, 0x5d69, 0x6570, 0x67a2, 0x8da8, 0x96db, 0x636e,
-0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe,
-94, 0x4021,
-0x6f84, 0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4,
-0x5236, 0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574,
-0x661f, 0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f,
-0x76db, 0x7cbe, 0x8056, 0x58f0, 0x88fd, 0x897f, 0x8aa0, 0x8a93,
-0x8acb, 0x901d, 0x9192, 0x9752, 0x9759, 0x6589, 0x7a0e, 0x8106,
-0x96bb, 0x5e2d, 0x60dc, 0x621a, 0x65a5, 0x6614, 0x6790, 0x77f3,
-0x7a4d, 0x7c4d, 0x7e3e, 0x810a, 0x8cac, 0x8d64, 0x8de1, 0x8e5f,
-0x78a9, 0x5207, 0x62d9, 0x63a5, 0x6442, 0x6298, 0x8a2d, 0x7a83,
-0x7bc0, 0x8aac, 0x96ea, 0x7d76, 0x820c, 0x8749, 0x4ed9, 0x5148,
-0x5343, 0x5360, 0x5ba3, 0x5c02, 0x5c16, 0x5ddd, 0x6226, 0x6247,
-0x64b0, 0x6813, 0x6834, 0x6cc9, 0x6d45, 0x6d17, 0x67d3, 0x6f5c,
-0x714e, 0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda,
-94, 0x4121,
-0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce,
-0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d,
-0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce,
-0x564c, 0x5851, 0x5ca8, 0x63aa, 0x66fe, 0x66fd, 0x695a, 0x72d9,
-0x758f, 0x758e, 0x790e, 0x7956, 0x79df, 0x7c97, 0x7d20, 0x7d44,
-0x8607, 0x8a34, 0x963b, 0x9061, 0x9f20, 0x50e7, 0x5275, 0x53cc,
-0x53e2, 0x5009, 0x55aa, 0x58ee, 0x594f, 0x723d, 0x5b8b, 0x5c64,
-0x531d, 0x60e3, 0x60f3, 0x635c, 0x6383, 0x633f, 0x63bb, 0x64cd,
-0x65e9, 0x66f9, 0x5de3, 0x69cd, 0x69fd, 0x6f15, 0x71e5, 0x4e89,
-0x75e9, 0x76f8, 0x7a93, 0x7cdf, 0x7dcf, 0x7d9c, 0x8061, 0x8349,
-0x8358, 0x846c, 0x84bc, 0x85fb, 0x88c5, 0x8d70, 0x9001, 0x906d,
-0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e,
-94, 0x4221,
-0x81d3, 0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373,
-0x606f, 0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e,
-0x8cca, 0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58,
-0x5b6b, 0x5c0a, 0x640d, 0x6751, 0x905c, 0x4ed6, 0x591a, 0x592a,
-0x6c70, 0x8a51, 0x553e, 0x5815, 0x59a5, 0x60f0, 0x6253, 0x67c1,
-0x8235, 0x6955, 0x9640, 0x99c4, 0x9a28, 0x4f53, 0x5806, 0x5bfe,
-0x8010, 0x5cb1, 0x5e2f, 0x5f85, 0x6020, 0x614b, 0x6234, 0x66ff,
-0x6cf0, 0x6ede, 0x80ce, 0x817f, 0x82d4, 0x888b, 0x8cb8, 0x9000,
-0x902e, 0x968a, 0x9edb, 0x9bdb, 0x4ee3, 0x53f0, 0x5927, 0x7b2c,
-0x918d, 0x984c, 0x9df9, 0x6edd, 0x7027, 0x5353, 0x5544, 0x5b85,
-0x6258, 0x629e, 0x62d3, 0x6ca2, 0x6fef, 0x7422, 0x8a17, 0x9438,
-0x6fc1, 0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea,
-94, 0x4321,
-0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea,
-0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39,
-0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1,
-0x6e5b, 0x70ad, 0x77ed, 0x7aef, 0x7baa, 0x7dbb, 0x803d, 0x80c6,
-0x86cb, 0x8a95, 0x935b, 0x56e3, 0x58c7, 0x5f3e, 0x65ad, 0x6696,
-0x6a80, 0x6bb5, 0x7537, 0x8ac7, 0x5024, 0x77e5, 0x5730, 0x5f1b,
-0x6065, 0x667a, 0x6c60, 0x75f4, 0x7a1a, 0x7f6e, 0x81f4, 0x8718,
-0x9045, 0x99b3, 0x7bc9, 0x755c, 0x7af9, 0x7b51, 0x84c4, 0x9010,
-0x79e9, 0x7a92, 0x8336, 0x5ae1, 0x7740, 0x4e2d, 0x4ef2, 0x5b99,
-0x5fe0, 0x62bd, 0x663c, 0x67f1, 0x6ce8, 0x866b, 0x8877, 0x8a3b,
-0x914e, 0x92f3, 0x99d0, 0x6a17, 0x7026, 0x732a, 0x82e7, 0x8457,
-0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5,
-94, 0x4421,
-0x5e16, 0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2,
-0x6311, 0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074,
-0x8139, 0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a,
-0x9577, 0x9802, 0x9ce5, 0x52c5, 0x6357, 0x76f4, 0x6715, 0x6c88,
-0x73cd, 0x8cc3, 0x93ae, 0x9673, 0x6d25, 0x589c, 0x690e, 0x69cc,
-0x8ffd, 0x939a, 0x75db, 0x901a, 0x585a, 0x6802, 0x63b4, 0x69fb,
-0x4f43, 0x6f2c, 0x67d8, 0x8fbb, 0x8526, 0x7db4, 0x9354, 0x693f,
-0x6f70, 0x576a, 0x58f7, 0x5b2c, 0x7d2c, 0x722a, 0x540a, 0x91e3,
-0x9db4, 0x4ead, 0x4f4e, 0x505c, 0x5075, 0x5243, 0x8c9e, 0x5448,
-0x5824, 0x5b9a, 0x5e1d, 0x5e95, 0x5ead, 0x5ef7, 0x5f1f, 0x608c,
-0x62b5, 0x633a, 0x63d0, 0x68af, 0x6c40, 0x7887, 0x798e, 0x7a0b,
-0x7de0, 0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013,
-94, 0x4521,
-0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575,
-0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9,
-0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55,
-0x5e97, 0x6dfb, 0x7e8f, 0x751c, 0x8cbc, 0x8ee2, 0x985b, 0x70b9,
-0x4f1d, 0x6bbf, 0x6fb1, 0x7530, 0x96fb, 0x514e, 0x5410, 0x5835,
-0x5857, 0x59ac, 0x5c60, 0x5f92, 0x6597, 0x675c, 0x6e21, 0x767b,
-0x83df, 0x8ced, 0x9014, 0x90fd, 0x934d, 0x7825, 0x783a, 0x52aa,
-0x5ea6, 0x571f, 0x5974, 0x6012, 0x5012, 0x515a, 0x51ac, 0x51cd,
-0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5b95, 0x5cf6, 0x5d8b,
-0x60bc, 0x6295, 0x642d, 0x6771, 0x6843, 0x68bc, 0x68df, 0x76d7,
-0x6dd8, 0x6e6f, 0x6d9b, 0x706f, 0x71c8, 0x5f53, 0x75d8, 0x7977,
-0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230,
-94, 0x4621,
-0x8463, 0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003,
-0x900f, 0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5,
-0x540c, 0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5,
-0x80f4, 0x8404, 0x9053, 0x9285, 0x5ce0, 0x9d07, 0x533f, 0x5f97,
-0x5fb3, 0x6d9c, 0x7279, 0x7763, 0x79bf, 0x7be4, 0x6bd2, 0x72ec,
-0x8aad, 0x6803, 0x6a61, 0x51f8, 0x7a81, 0x6934, 0x5c4a, 0x9cf6,
-0x82eb, 0x5bc5, 0x9149, 0x701e, 0x5678, 0x5c6f, 0x60c7, 0x6566,
-0x6c8c, 0x8c5a, 0x9041, 0x9813, 0x5451, 0x66c7, 0x920d, 0x5948,
-0x90a3, 0x5185, 0x4e4d, 0x51ea, 0x8599, 0x8b0e, 0x7058, 0x637a,
-0x934b, 0x6962, 0x99b4, 0x7e04, 0x7577, 0x5357, 0x6960, 0x8edf,
-0x96e3, 0x6c5d, 0x4e8c, 0x5c3c, 0x5f10, 0x8fe9, 0x5302, 0x8cd1,
-0x8089, 0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165,
-94, 0x4721,
-0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1,
-0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5,
-0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc,
-0x56a2, 0x60a9, 0x6fc3, 0x7d0d, 0x80fd, 0x8133, 0x81bf, 0x8fb2,
-0x8997, 0x86a4, 0x5df4, 0x628a, 0x64ad, 0x8987, 0x6777, 0x6ce2,
-0x6d3e, 0x7436, 0x7834, 0x5a46, 0x7f75, 0x82ad, 0x99ac, 0x4ff3,
-0x5ec3, 0x62dd, 0x6392, 0x6557, 0x676f, 0x76c3, 0x724c, 0x80cc,
-0x80ba, 0x8f29, 0x914d, 0x500d, 0x57f9, 0x5a92, 0x6885, 0x6973,
-0x7164, 0x72fd, 0x8cb7, 0x58f2, 0x8ce0, 0x966a, 0x9019, 0x877f,
-0x79e4, 0x77e7, 0x8429, 0x4f2f, 0x5265, 0x535a, 0x62cd, 0x67cf,
-0x6cca, 0x767d, 0x7b94, 0x7c95, 0x8236, 0x8584, 0x8feb, 0x66dd,
-0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6,
-94, 0x4821,
-0x51fd, 0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61,
-0x808c, 0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197,
-0x9aea, 0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a,
-0x5859, 0x86e4, 0x96bc, 0x4f34, 0x5224, 0x534a, 0x53cd, 0x53db,
-0x5e06, 0x642c, 0x6591, 0x677f, 0x6c3e, 0x6c4e, 0x7248, 0x72af,
-0x73ed, 0x7554, 0x7e41, 0x822c, 0x85e9, 0x8ca9, 0x7bc4, 0x91c6,
-0x7169, 0x9812, 0x98ef, 0x633d, 0x6669, 0x756a, 0x76e4, 0x78d0,
-0x8543, 0x86ee, 0x532a, 0x5351, 0x5426, 0x5983, 0x5e87, 0x5f7c,
-0x60b2, 0x6249, 0x6279, 0x62ab, 0x6590, 0x6bd4, 0x6ccc, 0x75b2,
-0x76ae, 0x7891, 0x79d8, 0x7dcb, 0x7f77, 0x80a5, 0x88ab, 0x8ab9,
-0x8cbb, 0x907f, 0x975e, 0x98db, 0x6a0b, 0x7c38, 0x5099, 0x5c3e,
-0x5fae, 0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e,
-94, 0x4921,
-0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d,
-0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867,
-0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19,
-0x6c37, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8a55, 0x8c79, 0x5edf,
-0x63cf, 0x75c5, 0x79d2, 0x82d7, 0x9328, 0x92f2, 0x849c, 0x86ed,
-0x9c2d, 0x54c1, 0x5f6c, 0x658c, 0x6d5c, 0x7015, 0x8ca7, 0x8cd3,
-0x983b, 0x654f, 0x74f6, 0x4e0d, 0x4ed8, 0x57e0, 0x592b, 0x5a66,
-0x5bcc, 0x51a8, 0x5e03, 0x5e9c, 0x6016, 0x6276, 0x6577, 0x65a7,
-0x666e, 0x6d6e, 0x7236, 0x7b26, 0x8150, 0x819a, 0x8299, 0x8b5c,
-0x8ca0, 0x8ce6, 0x8d74, 0x961c, 0x9644, 0x4fae, 0x64ab, 0x6b66,
-0x821e, 0x8461, 0x856a, 0x90e8, 0x5c01, 0x6953, 0x98a8, 0x847a,
-0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d,
-94, 0x4a21,
-0x798f, 0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8,
-0x4ecf, 0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4,
-0x626e, 0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587,
-0x805e, 0x4e19, 0x4f75, 0x5175, 0x5840, 0x5e63, 0x5e73, 0x5f0a,
-0x67c4, 0x4e26, 0x853d, 0x9589, 0x965b, 0x7c73, 0x9801, 0x50fb,
-0x58c1, 0x7656, 0x78a7, 0x5225, 0x77a5, 0x8511, 0x7b86, 0x504f,
-0x5909, 0x7247, 0x7bc7, 0x7de8, 0x8fba, 0x8fd4, 0x904d, 0x4fbf,
-0x52c9, 0x5a29, 0x5f01, 0x97ad, 0x4fdd, 0x8217, 0x92ea, 0x5703,
-0x6355, 0x6b69, 0x752b, 0x88dc, 0x8f14, 0x7a42, 0x52df, 0x5893,
-0x6155, 0x620a, 0x66ae, 0x6bcd, 0x7c3f, 0x83e9, 0x5023, 0x4ff8,
-0x5305, 0x5446, 0x5831, 0x5949, 0x5b9d, 0x5cf0, 0x5cef, 0x5d29,
-0x5e96, 0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b,
-94, 0x4b21,
-0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c,
-0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd,
-0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8,
-0x5e3d, 0x5fd8, 0x5fd9, 0x623f, 0x66b4, 0x671b, 0x67d0, 0x68d2,
-0x5192, 0x7d21, 0x80aa, 0x81a8, 0x8b00, 0x8c8c, 0x8cbf, 0x927e,
-0x9632, 0x5420, 0x982c, 0x5317, 0x50d5, 0x535c, 0x58a8, 0x64b2,
-0x6734, 0x7267, 0x7766, 0x7a46, 0x91e6, 0x52c3, 0x6ca1, 0x6b86,
-0x5800, 0x5e4c, 0x5954, 0x672c, 0x7ffb, 0x51e1, 0x76c6, 0x6469,
-0x78e8, 0x9b54, 0x9ebb, 0x57cb, 0x59b9, 0x6627, 0x679a, 0x6bce,
-0x54e9, 0x69d9, 0x5e55, 0x819c, 0x6795, 0x9baa, 0x67fe, 0x9c52,
-0x685d, 0x4ea6, 0x4fe3, 0x53c8, 0x62b9, 0x672b, 0x6cab, 0x8fc4,
-0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80,
-94, 0x4c21,
-0x6f2b, 0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac,
-0x5bc6, 0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d,
-0x6c11, 0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727,
-0x9d61, 0x690b, 0x5a7f, 0x5a18, 0x51a5, 0x540d, 0x547d, 0x660e,
-0x76df, 0x8ff7, 0x9298, 0x9cf4, 0x59ea, 0x725d, 0x6ec5, 0x514d,
-0x68c9, 0x7dbf, 0x7dec, 0x9762, 0x9eba, 0x6478, 0x6a21, 0x8302,
-0x5984, 0x5b5f, 0x6bdb, 0x731b, 0x76f2, 0x7db2, 0x8017, 0x8499,
-0x5132, 0x6728, 0x9ed9, 0x76ee, 0x6762, 0x52ff, 0x9905, 0x5c24,
-0x623b, 0x7c7e, 0x8cb0, 0x554f, 0x60b6, 0x7d0b, 0x9580, 0x5301,
-0x4e5f, 0x51b6, 0x591c, 0x723a, 0x8036, 0x91ce, 0x5f25, 0x77e2,
-0x5384, 0x5f79, 0x7d04, 0x85ac, 0x8a33, 0x8e8d, 0x9756, 0x67f3,
-0x85ae, 0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652,
-94, 0x4d21,
-0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5,
-0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c,
-0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091,
-0x90f5, 0x96c4, 0x878d, 0x5915, 0x4e88, 0x4f59, 0x4e0e, 0x8a89,
-0x8f3f, 0x9810, 0x50ad, 0x5e7c, 0x5996, 0x5bb9, 0x5eb8, 0x63da,
-0x63fa, 0x64c1, 0x66dc, 0x694a, 0x69d8, 0x6d0b, 0x6eb6, 0x7194,
-0x7528, 0x7aaf, 0x7f8a, 0x8000, 0x8449, 0x84c9, 0x8981, 0x8b21,
-0x8e0a, 0x9065, 0x967d, 0x990a, 0x617e, 0x6291, 0x6b32, 0x6c83,
-0x6d74, 0x7fcc, 0x7ffc, 0x6dc0, 0x7f85, 0x87ba, 0x88f8, 0x6765,
-0x83b1, 0x983c, 0x96f7, 0x6d1b, 0x7d61, 0x843d, 0x916a, 0x4e71,
-0x5375, 0x5d50, 0x6b04, 0x6feb, 0x85cd, 0x862d, 0x89a7, 0x5229,
-0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483,
-94, 0x4e21,
-0x75e2, 0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387,
-0x7acb, 0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409,
-0x7559, 0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e,
-0x65c5, 0x865c, 0x4e86, 0x4eae, 0x50da, 0x4e21, 0x51cc, 0x5bee,
-0x6599, 0x6881, 0x6dbc, 0x731f, 0x7642, 0x77ad, 0x7a1c, 0x7ce7,
-0x826f, 0x8ad2, 0x907c, 0x91cf, 0x9675, 0x9818, 0x529b, 0x7dd1,
-0x502b, 0x5398, 0x6797, 0x6dcb, 0x71d0, 0x7433, 0x81e8, 0x8f2a,
-0x96a3, 0x9c57, 0x9e9f, 0x7460, 0x5841, 0x6d99, 0x7d2f, 0x985e,
-0x4ee4, 0x4f36, 0x4f8b, 0x51b7, 0x52b1, 0x5dba, 0x601c, 0x73b2,
-0x793c, 0x82d3, 0x9234, 0x96b7, 0x96f6, 0x970a, 0x9e97, 0x9f62,
-0x66a6, 0x6b74, 0x5217, 0x52a3, 0x70c8, 0x88c2, 0x5ec9, 0x604b,
-0x6190, 0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f,
-51, 0x4f21,
-0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2,
-0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c,
-0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e,
-0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6,
-0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0,
-0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900,
-0x6e7e, 0x7897, 0x8155,
-94, 0x5021,
-0x5f0c, 0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f,
-0x4e42, 0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212,
-0x5f0d, 0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3,
-0x4eb6, 0x4ece, 0x4ecd, 0x4ec4, 0x4ec6, 0x4ec2, 0x4ed7, 0x4ede,
-0x4eed, 0x4edf, 0x4ef7, 0x4f09, 0x4f5a, 0x4f30, 0x4f5b, 0x4f5d,
-0x4f57, 0x4f47, 0x4f76, 0x4f88, 0x4f8f, 0x4f98, 0x4f7b, 0x4f69,
-0x4f70, 0x4f91, 0x4f6f, 0x4f86, 0x4f96, 0x5118, 0x4fd4, 0x4fdf,
-0x4fce, 0x4fd8, 0x4fdb, 0x4fd1, 0x4fda, 0x4fd0, 0x4fe4, 0x4fe5,
-0x501a, 0x5028, 0x5014, 0x502a, 0x5025, 0x5005, 0x4f1c, 0x4ff6,
-0x5021, 0x5029, 0x502c, 0x4ffe, 0x4fef, 0x5011, 0x5006, 0x5043,
-0x5047, 0x6703, 0x5055, 0x5050, 0x5048, 0x505a, 0x5056, 0x506c,
-0x5078, 0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2,
-94, 0x5121,
-0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed,
-0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116,
-0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b,
-0x513f, 0x5140, 0x5152, 0x514c, 0x5154, 0x5162, 0x7af8, 0x5169,
-0x516a, 0x516e, 0x5180, 0x5182, 0x56d8, 0x518c, 0x5189, 0x518f,
-0x5191, 0x5193, 0x5195, 0x5196, 0x51a4, 0x51a6, 0x51a2, 0x51a9,
-0x51aa, 0x51ab, 0x51b3, 0x51b1, 0x51b2, 0x51b0, 0x51b5, 0x51bd,
-0x51c5, 0x51c9, 0x51db, 0x51e0, 0x8655, 0x51e9, 0x51ed, 0x51f0,
-0x51f5, 0x51fe, 0x5204, 0x520b, 0x5214, 0x520e, 0x5227, 0x522a,
-0x522e, 0x5233, 0x5239, 0x524f, 0x5244, 0x524b, 0x524c, 0x525e,
-0x5254, 0x526a, 0x5274, 0x5269, 0x5273, 0x527f, 0x527d, 0x528d,
-0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8,
-94, 0x5221,
-0x8fa7, 0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7,
-0x52de, 0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8,
-0x52f9, 0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315,
-0x531a, 0x5323, 0x532f, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346,
-0x5345, 0x4e17, 0x5349, 0x534d, 0x51d6, 0x535e, 0x5369, 0x536e,
-0x5918, 0x537b, 0x5377, 0x5382, 0x5396, 0x53a0, 0x53a6, 0x53a5,
-0x53ae, 0x53b0, 0x53b6, 0x53c3, 0x7c12, 0x96d9, 0x53df, 0x66fc,
-0x71ee, 0x53ee, 0x53e8, 0x53ed, 0x53fa, 0x5401, 0x543d, 0x5440,
-0x542c, 0x542d, 0x543c, 0x542e, 0x5436, 0x5429, 0x541d, 0x544e,
-0x548f, 0x5475, 0x548e, 0x545f, 0x5471, 0x5477, 0x5470, 0x5492,
-0x547b, 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54c7, 0x54a2,
-0x54b8, 0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8,
-94, 0x5321,
-0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6,
-0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539,
-0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557,
-0x5538, 0x5533, 0x555d, 0x5599, 0x5580, 0x54af, 0x558a, 0x559f,
-0x557b, 0x557e, 0x5598, 0x559e, 0x55ae, 0x557c, 0x5583, 0x55a9,
-0x5587, 0x55a8, 0x55da, 0x55c5, 0x55df, 0x55c4, 0x55dc, 0x55e4,
-0x55d4, 0x5614, 0x55f7, 0x5616, 0x55fe, 0x55fd, 0x561b, 0x55f9,
-0x564e, 0x5650, 0x71df, 0x5634, 0x5636, 0x5632, 0x5638, 0x566b,
-0x5664, 0x562f, 0x566c, 0x566a, 0x5686, 0x5680, 0x568a, 0x56a0,
-0x5694, 0x568f, 0x56a5, 0x56ae, 0x56b6, 0x56b4, 0x56c2, 0x56bc,
-0x56c1, 0x56c3, 0x56c0, 0x56c8, 0x56ce, 0x56d1, 0x56d3, 0x56d7,
-0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709,
-94, 0x5421,
-0x5708, 0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c,
-0x5726, 0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769,
-0x57c0, 0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3,
-0x57a4, 0x57aa, 0x57b0, 0x57c3, 0x57c6, 0x57d4, 0x57d2, 0x57d3,
-0x580a, 0x57d6, 0x57e3, 0x580b, 0x5819, 0x581d, 0x5872, 0x5821,
-0x5862, 0x584b, 0x5870, 0x6bc0, 0x5852, 0x583d, 0x5879, 0x5885,
-0x58b9, 0x589f, 0x58ab, 0x58ba, 0x58de, 0x58bb, 0x58b8, 0x58ae,
-0x58c5, 0x58d3, 0x58d1, 0x58d7, 0x58d9, 0x58d8, 0x58e5, 0x58dc,
-0x58e4, 0x58df, 0x58ef, 0x58fa, 0x58f9, 0x58fb, 0x58fc, 0x58fd,
-0x5902, 0x590a, 0x5910, 0x591b, 0x68a6, 0x5925, 0x592c, 0x592d,
-0x5932, 0x5938, 0x593e, 0x7ad2, 0x5955, 0x5950, 0x594e, 0x595a,
-0x5958, 0x5962, 0x5960, 0x5967, 0x596c, 0x5969,
-94, 0x5521,
-0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6,
-0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11,
-0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36,
-0x5a62, 0x5a6a, 0x5a9a, 0x5abc, 0x5abe, 0x5acb, 0x5ac2, 0x5abd,
-0x5ae3, 0x5ad7, 0x5ae6, 0x5ae9, 0x5ad6, 0x5afa, 0x5afb, 0x5b0c,
-0x5b0b, 0x5b16, 0x5b32, 0x5ad0, 0x5b2a, 0x5b36, 0x5b3e, 0x5b43,
-0x5b45, 0x5b40, 0x5b51, 0x5b55, 0x5b5a, 0x5b5b, 0x5b65, 0x5b69,
-0x5b70, 0x5b73, 0x5b75, 0x5b78, 0x6588, 0x5b7a, 0x5b80, 0x5b83,
-0x5ba6, 0x5bb8, 0x5bc3, 0x5bc7, 0x5bc9, 0x5bd4, 0x5bd0, 0x5be4,
-0x5be6, 0x5be2, 0x5bde, 0x5be5, 0x5beb, 0x5bf0, 0x5bf6, 0x5bf3,
-0x5c05, 0x5c07, 0x5c08, 0x5c0d, 0x5c13, 0x5c20, 0x5c22, 0x5c28,
-0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53,
-94, 0x5621,
-0x5c50, 0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79,
-0x5c8c, 0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc,
-0x5cb7, 0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa,
-0x5ced, 0x5d8c, 0x5cea, 0x5d0b, 0x5d15, 0x5d17, 0x5d5c, 0x5d1f,
-0x5d1b, 0x5d11, 0x5d14, 0x5d22, 0x5d1a, 0x5d19, 0x5d18, 0x5d4c,
-0x5d52, 0x5d4e, 0x5d4b, 0x5d6c, 0x5d73, 0x5d76, 0x5d87, 0x5d84,
-0x5d82, 0x5da2, 0x5d9d, 0x5dac, 0x5dae, 0x5dbd, 0x5d90, 0x5db7,
-0x5dbc, 0x5dc9, 0x5dcd, 0x5dd3, 0x5dd2, 0x5dd6, 0x5ddb, 0x5deb,
-0x5df2, 0x5df5, 0x5e0b, 0x5e1a, 0x5e19, 0x5e11, 0x5e1b, 0x5e36,
-0x5e37, 0x5e44, 0x5e43, 0x5e40, 0x5e4e, 0x5e57, 0x5e54, 0x5e5f,
-0x5e62, 0x5e64, 0x5e47, 0x5e75, 0x5e76, 0x5e7a, 0x9ebc, 0x5e7f,
-0x5ea0, 0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf,
-94, 0x5721,
-0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8,
-0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe,
-0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29,
-0x5f2d, 0x5f38, 0x5f41, 0x5f48, 0x5f4c, 0x5f4e, 0x5f2f, 0x5f51,
-0x5f56, 0x5f57, 0x5f59, 0x5f61, 0x5f6d, 0x5f73, 0x5f77, 0x5f83,
-0x5f82, 0x5f7f, 0x5f8a, 0x5f88, 0x5f91, 0x5f87, 0x5f9e, 0x5f99,
-0x5f98, 0x5fa0, 0x5fa8, 0x5fad, 0x5fbc, 0x5fd6, 0x5ffb, 0x5fe4,
-0x5ff8, 0x5ff1, 0x5fdd, 0x60b3, 0x5fff, 0x6021, 0x6060, 0x6019,
-0x6010, 0x6029, 0x600e, 0x6031, 0x601b, 0x6015, 0x602b, 0x6026,
-0x600f, 0x603a, 0x605a, 0x6041, 0x606a, 0x6077, 0x605f, 0x604a,
-0x6046, 0x604d, 0x6063, 0x6043, 0x6064, 0x6042, 0x606c, 0x606b,
-0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a,
-94, 0x5821,
-0x6084, 0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1,
-0x60b8, 0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5,
-0x60d8, 0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4,
-0x60fa, 0x6103, 0x6121, 0x60fb, 0x60f1, 0x610d, 0x610e, 0x6147,
-0x613e, 0x6128, 0x6127, 0x614a, 0x613f, 0x613c, 0x612c, 0x6134,
-0x613d, 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615a,
-0x616b, 0x6174, 0x616f, 0x6165, 0x6171, 0x615f, 0x615d, 0x6153,
-0x6175, 0x6199, 0x6196, 0x6187, 0x61ac, 0x6194, 0x619a, 0x618a,
-0x6191, 0x61ab, 0x61ae, 0x61cc, 0x61ca, 0x61c9, 0x61f7, 0x61c8,
-0x61c3, 0x61c6, 0x61ba, 0x61cb, 0x7f79, 0x61cd, 0x61e6, 0x61e3,
-0x61f6, 0x61fa, 0x61f4, 0x61ff, 0x61fd, 0x61fc, 0x61fe, 0x6200,
-0x6208, 0x6209, 0x620d, 0x620c, 0x6214, 0x621b,
-94, 0x5921,
-0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241,
-0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282,
-0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294,
-0x62d7, 0x62d1, 0x62bb, 0x62cf, 0x62ff, 0x62c6, 0x64d4, 0x62c8,
-0x62dc, 0x62cc, 0x62ca, 0x62c2, 0x62c7, 0x629b, 0x62c9, 0x630c,
-0x62ee, 0x62f1, 0x6327, 0x6302, 0x6308, 0x62ef, 0x62f5, 0x6350,
-0x633e, 0x634d, 0x641c, 0x634f, 0x6396, 0x638e, 0x6380, 0x63ab,
-0x6376, 0x63a3, 0x638f, 0x6389, 0x639f, 0x63b5, 0x636b, 0x6369,
-0x63be, 0x63e9, 0x63c0, 0x63c6, 0x63e3, 0x63c9, 0x63d2, 0x63f6,
-0x63c4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, 0x651d,
-0x6417, 0x6428, 0x640f, 0x6467, 0x646f, 0x6476, 0x644e, 0x652a,
-0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc,
-94, 0x5a21,
-0x64da, 0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1,
-0x64e7, 0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c,
-0x64f6, 0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c,
-0x6505, 0x6524, 0x6523, 0x652b, 0x6534, 0x6535, 0x6537, 0x6536,
-0x6538, 0x754b, 0x6548, 0x6556, 0x6555, 0x654d, 0x6558, 0x655e,
-0x655d, 0x6572, 0x6578, 0x6582, 0x6583, 0x8b8a, 0x659b, 0x659f,
-0x65ab, 0x65b7, 0x65c3, 0x65c6, 0x65c1, 0x65c4, 0x65cc, 0x65d2,
-0x65db, 0x65d9, 0x65e0, 0x65e1, 0x65f1, 0x6772, 0x660a, 0x6603,
-0x65fb, 0x6773, 0x6635, 0x6636, 0x6634, 0x661c, 0x664f, 0x6644,
-0x6649, 0x6641, 0x665e, 0x665d, 0x6664, 0x6667, 0x6668, 0x665f,
-0x6662, 0x6670, 0x6683, 0x6688, 0x668e, 0x6689, 0x6684, 0x6698,
-0x669d, 0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc,
-94, 0x5b21,
-0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9,
-0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727,
-0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746,
-0x675e, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67a9,
-0x677c, 0x676a, 0x678c, 0x678b, 0x67a6, 0x67a1, 0x6785, 0x67b7,
-0x67ef, 0x67b4, 0x67ec, 0x67b3, 0x67e9, 0x67b8, 0x67e4, 0x67de,
-0x67dd, 0x67e2, 0x67ee, 0x67b9, 0x67ce, 0x67c6, 0x67e7, 0x6a9c,
-0x681e, 0x6846, 0x6829, 0x6840, 0x684d, 0x6832, 0x684e, 0x68b3,
-0x682b, 0x6859, 0x6863, 0x6877, 0x687f, 0x689f, 0x688f, 0x68ad,
-0x6894, 0x689d, 0x689b, 0x6883, 0x6aae, 0x68b9, 0x6874, 0x68b5,
-0x68a0, 0x68ba, 0x690f, 0x688d, 0x687e, 0x6901, 0x68ca, 0x6908,
-0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd,
-94, 0x5c21,
-0x68d4, 0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3,
-0x6925, 0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923,
-0x6921, 0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954,
-0x697e, 0x696e, 0x6939, 0x6974, 0x693d, 0x6959, 0x6930, 0x6961,
-0x695e, 0x695d, 0x6981, 0x696a, 0x69b2, 0x69ae, 0x69d0, 0x69bf,
-0x69c1, 0x69d3, 0x69be, 0x69ce, 0x5be8, 0x69ca, 0x69dd, 0x69bb,
-0x69c3, 0x69a7, 0x6a2e, 0x6991, 0x69a0, 0x699c, 0x6995, 0x69b4,
-0x69de, 0x69e8, 0x6a02, 0x6a1b, 0x69ff, 0x6b0a, 0x69f9, 0x69f2,
-0x69e7, 0x6a05, 0x69b1, 0x6a1e, 0x69ed, 0x6a14, 0x69eb, 0x6a0a,
-0x6a12, 0x6ac1, 0x6a23, 0x6a13, 0x6a44, 0x6a0c, 0x6a72, 0x6a36,
-0x6a78, 0x6a47, 0x6a62, 0x6a59, 0x6a66, 0x6a48, 0x6a38, 0x6a22,
-0x6a90, 0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3,
-94, 0x5d21,
-0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac,
-0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05,
-0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37,
-0x76dc, 0x6b39, 0x98ee, 0x6b47, 0x6b43, 0x6b49, 0x6b50, 0x6b59,
-0x6b54, 0x6b5b, 0x6b5f, 0x6b61, 0x6b78, 0x6b79, 0x6b7f, 0x6b80,
-0x6b84, 0x6b83, 0x6b8d, 0x6b98, 0x6b95, 0x6b9e, 0x6ba4, 0x6baa,
-0x6bab, 0x6baf, 0x6bb2, 0x6bb1, 0x6bb3, 0x6bb7, 0x6bbc, 0x6bc6,
-0x6bcb, 0x6bd3, 0x6bdf, 0x6bec, 0x6beb, 0x6bf3, 0x6bef, 0x9ebe,
-0x6c08, 0x6c13, 0x6c14, 0x6c1b, 0x6c24, 0x6c23, 0x6c5e, 0x6c55,
-0x6c62, 0x6c6a, 0x6c82, 0x6c8d, 0x6c9a, 0x6c81, 0x6c9b, 0x6c7e,
-0x6c68, 0x6c73, 0x6c92, 0x6c90, 0x6cc4, 0x6cf1, 0x6cd3, 0x6cbd,
-0x6cd7, 0x6cc5, 0x6cdd, 0x6cae, 0x6cb1, 0x6cbe,
-94, 0x5e21,
-0x6cba, 0x6cdb, 0x6cef, 0x6cd9, 0x6cea, 0x6d1f, 0x884d, 0x6d36,
-0x6d2b, 0x6d3d, 0x6d38, 0x6d19, 0x6d35, 0x6d33, 0x6d12, 0x6d0c,
-0x6d63, 0x6d93, 0x6d64, 0x6d5a, 0x6d79, 0x6d59, 0x6d8e, 0x6d95,
-0x6fe4, 0x6d85, 0x6df9, 0x6e15, 0x6e0a, 0x6db5, 0x6dc7, 0x6de6,
-0x6db8, 0x6dc6, 0x6dec, 0x6dde, 0x6dcc, 0x6de8, 0x6dd2, 0x6dc5,
-0x6dfa, 0x6dd9, 0x6de4, 0x6dd5, 0x6dea, 0x6dee, 0x6e2d, 0x6e6e,
-0x6e2e, 0x6e19, 0x6e72, 0x6e5f, 0x6e3e, 0x6e23, 0x6e6b, 0x6e2b,
-0x6e76, 0x6e4d, 0x6e1f, 0x6e43, 0x6e3a, 0x6e4e, 0x6e24, 0x6eff,
-0x6e1d, 0x6e38, 0x6e82, 0x6eaa, 0x6e98, 0x6ec9, 0x6eb7, 0x6ed3,
-0x6ebd, 0x6eaf, 0x6ec4, 0x6eb2, 0x6ed4, 0x6ed5, 0x6e8f, 0x6ea5,
-0x6ec2, 0x6e9f, 0x6f41, 0x6f11, 0x704c, 0x6eec, 0x6ef8, 0x6efe,
-0x6f3f, 0x6ef2, 0x6f31, 0x6eef, 0x6f32, 0x6ecc,
-94, 0x5f21,
-0x6f3e, 0x6f13, 0x6ef7, 0x6f86, 0x6f7a, 0x6f78, 0x6f81, 0x6f80,
-0x6f6f, 0x6f5b, 0x6ff3, 0x6f6d, 0x6f82, 0x6f7c, 0x6f58, 0x6f8e,
-0x6f91, 0x6fc2, 0x6f66, 0x6fb3, 0x6fa3, 0x6fa1, 0x6fa4, 0x6fb9,
-0x6fc6, 0x6faa, 0x6fdf, 0x6fd5, 0x6fec, 0x6fd4, 0x6fd8, 0x6ff1,
-0x6fee, 0x6fdb, 0x7009, 0x700b, 0x6ffa, 0x7011, 0x7001, 0x700f,
-0x6ffe, 0x701b, 0x701a, 0x6f74, 0x701d, 0x7018, 0x701f, 0x7030,
-0x703e, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70af, 0x70f1,
-0x70ac, 0x70b8, 0x70b3, 0x70ae, 0x70df, 0x70cb, 0x70dd, 0x70d9,
-0x7109, 0x70fd, 0x711c, 0x7119, 0x7165, 0x7155, 0x7188, 0x7166,
-0x7162, 0x714c, 0x7156, 0x716c, 0x718f, 0x71fb, 0x7184, 0x7195,
-0x71a8, 0x71ac, 0x71d7, 0x71b9, 0x71be, 0x71d2, 0x71c9, 0x71d4,
-0x71ce, 0x71e0, 0x71ec, 0x71e7, 0x71f5, 0x71fc,
-94, 0x6021,
-0x71f9, 0x71ff, 0x720d, 0x7210, 0x721b, 0x7228, 0x722d, 0x722c,
-0x7230, 0x7232, 0x723b, 0x723c, 0x723f, 0x7240, 0x7246, 0x724b,
-0x7258, 0x7274, 0x727e, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296,
-0x72a2, 0x72a7, 0x72b9, 0x72b2, 0x72c3, 0x72c6, 0x72c4, 0x72ce,
-0x72d2, 0x72e2, 0x72e0, 0x72e1, 0x72f9, 0x72f7, 0x500f, 0x7317,
-0x730a, 0x731c, 0x7316, 0x731d, 0x7334, 0x732f, 0x7329, 0x7325,
-0x733e, 0x734e, 0x734f, 0x9ed8, 0x7357, 0x736a, 0x7368, 0x7370,
-0x7378, 0x7375, 0x737b, 0x737a, 0x73c8, 0x73b3, 0x73ce, 0x73bb,
-0x73c0, 0x73e5, 0x73ee, 0x73de, 0x74a2, 0x7405, 0x746f, 0x7425,
-0x73f8, 0x7432, 0x743a, 0x7455, 0x743f, 0x745f, 0x7459, 0x7441,
-0x745c, 0x7469, 0x7470, 0x7463, 0x746a, 0x7476, 0x747e, 0x748b,
-0x749e, 0x74a7, 0x74ca, 0x74cf, 0x74d4, 0x73f1,
-94, 0x6121,
-0x74e0, 0x74e3, 0x74e7, 0x74e9, 0x74ee, 0x74f2, 0x74f0, 0x74f1,
-0x74f8, 0x74f7, 0x7504, 0x7503, 0x7505, 0x750c, 0x750e, 0x750d,
-0x7515, 0x7513, 0x751e, 0x7526, 0x752c, 0x753c, 0x7544, 0x754d,
-0x754a, 0x7549, 0x755b, 0x7546, 0x755a, 0x7569, 0x7564, 0x7567,
-0x756b, 0x756d, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758a,
-0x7589, 0x7582, 0x7594, 0x759a, 0x759d, 0x75a5, 0x75a3, 0x75c2,
-0x75b3, 0x75c3, 0x75b5, 0x75bd, 0x75b8, 0x75bc, 0x75b1, 0x75cd,
-0x75ca, 0x75d2, 0x75d9, 0x75e3, 0x75de, 0x75fe, 0x75ff, 0x75fc,
-0x7601, 0x75f0, 0x75fa, 0x75f2, 0x75f3, 0x760b, 0x760d, 0x7609,
-0x761f, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, 0x7630,
-0x763b, 0x7647, 0x7648, 0x7646, 0x765c, 0x7658, 0x7661, 0x7662,
-0x7668, 0x7669, 0x766a, 0x7667, 0x766c, 0x7670,
-94, 0x6221,
-0x7672, 0x7676, 0x7678, 0x767c, 0x7680, 0x7683, 0x7688, 0x768b,
-0x768e, 0x7696, 0x7693, 0x7699, 0x769a, 0x76b0, 0x76b4, 0x76b8,
-0x76b9, 0x76ba, 0x76c2, 0x76cd, 0x76d6, 0x76d2, 0x76de, 0x76e1,
-0x76e5, 0x76e7, 0x76ea, 0x862f, 0x76fb, 0x7708, 0x7707, 0x7704,
-0x7729, 0x7724, 0x771e, 0x7725, 0x7726, 0x771b, 0x7737, 0x7738,
-0x7747, 0x775a, 0x7768, 0x776b, 0x775b, 0x7765, 0x777f, 0x777e,
-0x7779, 0x778e, 0x778b, 0x7791, 0x77a0, 0x779e, 0x77b0, 0x77b6,
-0x77b9, 0x77bf, 0x77bc, 0x77bd, 0x77bb, 0x77c7, 0x77cd, 0x77d7,
-0x77da, 0x77dc, 0x77e3, 0x77ee, 0x77fc, 0x780c, 0x7812, 0x7926,
-0x7820, 0x792a, 0x7845, 0x788e, 0x7874, 0x7886, 0x787c, 0x789a,
-0x788c, 0x78a3, 0x78b5, 0x78aa, 0x78af, 0x78d1, 0x78c6, 0x78cb,
-0x78d4, 0x78be, 0x78bc, 0x78c5, 0x78ca, 0x78ec,
-94, 0x6321,
-0x78e7, 0x78da, 0x78fd, 0x78f4, 0x7907, 0x7912, 0x7911, 0x7919,
-0x792c, 0x792b, 0x7940, 0x7960, 0x7957, 0x795f, 0x795a, 0x7955,
-0x7953, 0x797a, 0x797f, 0x798a, 0x799d, 0x79a7, 0x9f4b, 0x79aa,
-0x79ae, 0x79b3, 0x79b9, 0x79ba, 0x79c9, 0x79d5, 0x79e7, 0x79ec,
-0x79e1, 0x79e3, 0x7a08, 0x7a0d, 0x7a18, 0x7a19, 0x7a20, 0x7a1f,
-0x7980, 0x7a31, 0x7a3b, 0x7a3e, 0x7a37, 0x7a43, 0x7a57, 0x7a49,
-0x7a61, 0x7a62, 0x7a69, 0x9f9d, 0x7a70, 0x7a79, 0x7a7d, 0x7a88,
-0x7a97, 0x7a95, 0x7a98, 0x7a96, 0x7aa9, 0x7ac8, 0x7ab0, 0x7ab6,
-0x7ac5, 0x7ac4, 0x7abf, 0x9083, 0x7ac7, 0x7aca, 0x7acd, 0x7acf,
-0x7ad5, 0x7ad3, 0x7ad9, 0x7ada, 0x7add, 0x7ae1, 0x7ae2, 0x7ae6,
-0x7aed, 0x7af0, 0x7b02, 0x7b0f, 0x7b0a, 0x7b06, 0x7b33, 0x7b18,
-0x7b19, 0x7b1e, 0x7b35, 0x7b28, 0x7b36, 0x7b50,
-94, 0x6421,
-0x7b7a, 0x7b04, 0x7b4d, 0x7b0b, 0x7b4c, 0x7b45, 0x7b75, 0x7b65,
-0x7b74, 0x7b67, 0x7b70, 0x7b71, 0x7b6c, 0x7b6e, 0x7b9d, 0x7b98,
-0x7b9f, 0x7b8d, 0x7b9c, 0x7b9a, 0x7b8b, 0x7b92, 0x7b8f, 0x7b5d,
-0x7b99, 0x7bcb, 0x7bc1, 0x7bcc, 0x7bcf, 0x7bb4, 0x7bc6, 0x7bdd,
-0x7be9, 0x7c11, 0x7c14, 0x7be6, 0x7be5, 0x7c60, 0x7c00, 0x7c07,
-0x7c13, 0x7bf3, 0x7bf7, 0x7c17, 0x7c0d, 0x7bf6, 0x7c23, 0x7c27,
-0x7c2a, 0x7c1f, 0x7c37, 0x7c2b, 0x7c3d, 0x7c4c, 0x7c43, 0x7c54,
-0x7c4f, 0x7c40, 0x7c50, 0x7c58, 0x7c5f, 0x7c64, 0x7c56, 0x7c65,
-0x7c6c, 0x7c75, 0x7c83, 0x7c90, 0x7ca4, 0x7cad, 0x7ca2, 0x7cab,
-0x7ca1, 0x7ca8, 0x7cb3, 0x7cb2, 0x7cb1, 0x7cae, 0x7cb9, 0x7cbd,
-0x7cc0, 0x7cc5, 0x7cc2, 0x7cd8, 0x7cd2, 0x7cdc, 0x7ce2, 0x9b3b,
-0x7cef, 0x7cf2, 0x7cf4, 0x7cf6, 0x7cfa, 0x7d06,
-94, 0x6521,
-0x7d02, 0x7d1c, 0x7d15, 0x7d0a, 0x7d45, 0x7d4b, 0x7d2e, 0x7d32,
-0x7d3f, 0x7d35, 0x7d46, 0x7d73, 0x7d56, 0x7d4e, 0x7d72, 0x7d68,
-0x7d6e, 0x7d4f, 0x7d63, 0x7d93, 0x7d89, 0x7d5b, 0x7d8f, 0x7d7d,
-0x7d9b, 0x7dba, 0x7dae, 0x7da3, 0x7db5, 0x7dc7, 0x7dbd, 0x7dab,
-0x7e3d, 0x7da2, 0x7daf, 0x7ddc, 0x7db8, 0x7d9f, 0x7db0, 0x7dd8,
-0x7ddd, 0x7de4, 0x7dde, 0x7dfb, 0x7df2, 0x7de1, 0x7e05, 0x7e0a,
-0x7e23, 0x7e21, 0x7e12, 0x7e31, 0x7e1f, 0x7e09, 0x7e0b, 0x7e22,
-0x7e46, 0x7e66, 0x7e3b, 0x7e35, 0x7e39, 0x7e43, 0x7e37, 0x7e32,
-0x7e3a, 0x7e67, 0x7e5d, 0x7e56, 0x7e5e, 0x7e59, 0x7e5a, 0x7e79,
-0x7e6a, 0x7e69, 0x7e7c, 0x7e7b, 0x7e83, 0x7dd5, 0x7e7d, 0x8fae,
-0x7e7f, 0x7e88, 0x7e89, 0x7e8c, 0x7e92, 0x7e90, 0x7e93, 0x7e94,
-0x7e96, 0x7e8e, 0x7e9b, 0x7e9c, 0x7f38, 0x7f3a,
-94, 0x6621,
-0x7f45, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f50, 0x7f51, 0x7f55, 0x7f54,
-0x7f58, 0x7f5f, 0x7f60, 0x7f68, 0x7f69, 0x7f67, 0x7f78, 0x7f82,
-0x7f86, 0x7f83, 0x7f88, 0x7f87, 0x7f8c, 0x7f94, 0x7f9e, 0x7f9d,
-0x7f9a, 0x7fa3, 0x7faf, 0x7fb2, 0x7fb9, 0x7fae, 0x7fb6, 0x7fb8,
-0x8b71, 0x7fc5, 0x7fc6, 0x7fca, 0x7fd5, 0x7fd4, 0x7fe1, 0x7fe6,
-0x7fe9, 0x7ff3, 0x7ff9, 0x98dc, 0x8006, 0x8004, 0x800b, 0x8012,
-0x8018, 0x8019, 0x801c, 0x8021, 0x8028, 0x803f, 0x803b, 0x804a,
-0x8046, 0x8052, 0x8058, 0x805a, 0x805f, 0x8062, 0x8068, 0x8073,
-0x8072, 0x8070, 0x8076, 0x8079, 0x807d, 0x807f, 0x8084, 0x8086,
-0x8085, 0x809b, 0x8093, 0x809a, 0x80ad, 0x5190, 0x80ac, 0x80db,
-0x80e5, 0x80d9, 0x80dd, 0x80c4, 0x80da, 0x80d6, 0x8109, 0x80ef,
-0x80f1, 0x811b, 0x8129, 0x8123, 0x812f, 0x814b,
-94, 0x6721,
-0x968b, 0x8146, 0x813e, 0x8153, 0x8151, 0x80fc, 0x8171, 0x816e,
-0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818a, 0x8180, 0x8182,
-0x81a0, 0x8195, 0x81a4, 0x81a3, 0x815f, 0x8193, 0x81a9, 0x81b0,
-0x81b5, 0x81be, 0x81b8, 0x81bd, 0x81c0, 0x81c2, 0x81ba, 0x81c9,
-0x81cd, 0x81d1, 0x81d9, 0x81d8, 0x81c8, 0x81da, 0x81df, 0x81e0,
-0x81e7, 0x81fa, 0x81fb, 0x81fe, 0x8201, 0x8202, 0x8205, 0x8207,
-0x820a, 0x820d, 0x8210, 0x8216, 0x8229, 0x822b, 0x8238, 0x8233,
-0x8240, 0x8259, 0x8258, 0x825d, 0x825a, 0x825f, 0x8264, 0x8262,
-0x8268, 0x826a, 0x826b, 0x822e, 0x8271, 0x8277, 0x8278, 0x827e,
-0x828d, 0x8292, 0x82ab, 0x829f, 0x82bb, 0x82ac, 0x82e1, 0x82e3,
-0x82df, 0x82d2, 0x82f4, 0x82f3, 0x82fa, 0x8393, 0x8303, 0x82fb,
-0x82f9, 0x82de, 0x8306, 0x82dc, 0x8309, 0x82d9,
-94, 0x6821,
-0x8335, 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350,
-0x8345, 0x832f, 0x832b, 0x8317, 0x8318, 0x8385, 0x839a, 0x83aa,
-0x839f, 0x83a2, 0x8396, 0x8323, 0x838e, 0x8387, 0x838a, 0x837c,
-0x83b5, 0x8373, 0x8375, 0x83a0, 0x8389, 0x83a8, 0x83f4, 0x8413,
-0x83eb, 0x83ce, 0x83fd, 0x8403, 0x83d8, 0x840b, 0x83c1, 0x83f7,
-0x8407, 0x83e0, 0x83f2, 0x840d, 0x8422, 0x8420, 0x83bd, 0x8438,
-0x8506, 0x83fb, 0x846d, 0x842a, 0x843c, 0x855a, 0x8484, 0x8477,
-0x846b, 0x84ad, 0x846e, 0x8482, 0x8469, 0x8446, 0x842c, 0x846f,
-0x8479, 0x8435, 0x84ca, 0x8462, 0x84b9, 0x84bf, 0x849f, 0x84d9,
-0x84cd, 0x84bb, 0x84da, 0x84d0, 0x84c1, 0x84c6, 0x84d6, 0x84a1,
-0x8521, 0x84ff, 0x84f4, 0x8517, 0x8518, 0x852c, 0x851f, 0x8515,
-0x8514, 0x84fc, 0x8540, 0x8563, 0x8558, 0x8548,
-94, 0x6921,
-0x8541, 0x8602, 0x854b, 0x8555, 0x8580, 0x85a4, 0x8588, 0x8591,
-0x858a, 0x85a8, 0x856d, 0x8594, 0x859b, 0x85ea, 0x8587, 0x859c,
-0x8577, 0x857e, 0x8590, 0x85c9, 0x85ba, 0x85cf, 0x85b9, 0x85d0,
-0x85d5, 0x85dd, 0x85e5, 0x85dc, 0x85f9, 0x860a, 0x8613, 0x860b,
-0x85fe, 0x85fa, 0x8606, 0x8622, 0x861a, 0x8630, 0x863f, 0x864d,
-0x4e55, 0x8654, 0x865f, 0x8667, 0x8671, 0x8693, 0x86a3, 0x86a9,
-0x86aa, 0x868b, 0x868c, 0x86b6, 0x86af, 0x86c4, 0x86c6, 0x86b0,
-0x86c9, 0x8823, 0x86ab, 0x86d4, 0x86de, 0x86e9, 0x86ec, 0x86df,
-0x86db, 0x86ef, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, 0x86fb,
-0x8711, 0x8709, 0x870d, 0x86f9, 0x870a, 0x8734, 0x873f, 0x8737,
-0x873b, 0x8725, 0x8729, 0x871a, 0x8760, 0x875f, 0x8778, 0x874c,
-0x874e, 0x8774, 0x8757, 0x8768, 0x876e, 0x8759,
-94, 0x6a21,
-0x8753, 0x8763, 0x876a, 0x8805, 0x87a2, 0x879f, 0x8782, 0x87af,
-0x87cb, 0x87bd, 0x87c0, 0x87d0, 0x96d6, 0x87ab, 0x87c4, 0x87b3,
-0x87c7, 0x87c6, 0x87bb, 0x87ef, 0x87f2, 0x87e0, 0x880f, 0x880d,
-0x87fe, 0x87f6, 0x87f7, 0x880e, 0x87d2, 0x8811, 0x8816, 0x8815,
-0x8822, 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883b, 0x8844,
-0x8842, 0x8852, 0x8859, 0x885e, 0x8862, 0x886b, 0x8881, 0x887e,
-0x889e, 0x8875, 0x887d, 0x88b5, 0x8872, 0x8882, 0x8897, 0x8892,
-0x88ae, 0x8899, 0x88a2, 0x888d, 0x88a4, 0x88b0, 0x88bf, 0x88b1,
-0x88c3, 0x88c4, 0x88d4, 0x88d8, 0x88d9, 0x88dd, 0x88f9, 0x8902,
-0x88fc, 0x88f4, 0x88e8, 0x88f2, 0x8904, 0x890c, 0x890a, 0x8913,
-0x8943, 0x891e, 0x8925, 0x892a, 0x892b, 0x8941, 0x8944, 0x893b,
-0x8936, 0x8938, 0x894c, 0x891d, 0x8960, 0x895e,
-94, 0x6b21,
-0x8966, 0x8964, 0x896d, 0x896a, 0x896f, 0x8974, 0x8977, 0x897e,
-0x8983, 0x8988, 0x898a, 0x8993, 0x8998, 0x89a1, 0x89a9, 0x89a6,
-0x89ac, 0x89af, 0x89b2, 0x89ba, 0x89bd, 0x89bf, 0x89c0, 0x89da,
-0x89dc, 0x89dd, 0x89e7, 0x89f4, 0x89f8, 0x8a03, 0x8a16, 0x8a10,
-0x8a0c, 0x8a1b, 0x8a1d, 0x8a25, 0x8a36, 0x8a41, 0x8a5b, 0x8a52,
-0x8a46, 0x8a48, 0x8a7c, 0x8a6d, 0x8a6c, 0x8a62, 0x8a85, 0x8a82,
-0x8a84, 0x8aa8, 0x8aa1, 0x8a91, 0x8aa5, 0x8aa6, 0x8a9a, 0x8aa3,
-0x8ac4, 0x8acd, 0x8ac2, 0x8ada, 0x8aeb, 0x8af3, 0x8ae7, 0x8ae4,
-0x8af1, 0x8b14, 0x8ae0, 0x8ae2, 0x8af7, 0x8ade, 0x8adb, 0x8b0c,
-0x8b07, 0x8b1a, 0x8ae1, 0x8b16, 0x8b10, 0x8b17, 0x8b20, 0x8b33,
-0x97ab, 0x8b26, 0x8b2b, 0x8b3e, 0x8b28, 0x8b41, 0x8b4c, 0x8b4f,
-0x8b4e, 0x8b49, 0x8b56, 0x8b5b, 0x8b5a, 0x8b6b,
-94, 0x6c21,
-0x8b5f, 0x8b6c, 0x8b6f, 0x8b74, 0x8b7d, 0x8b80, 0x8b8c, 0x8b8e,
-0x8b92, 0x8b93, 0x8b96, 0x8b99, 0x8b9a, 0x8c3a, 0x8c41, 0x8c3f,
-0x8c48, 0x8c4c, 0x8c4e, 0x8c50, 0x8c55, 0x8c62, 0x8c6c, 0x8c78,
-0x8c7a, 0x8c82, 0x8c89, 0x8c85, 0x8c8a, 0x8c8d, 0x8c8e, 0x8c94,
-0x8c7c, 0x8c98, 0x621d, 0x8cad, 0x8caa, 0x8cbd, 0x8cb2, 0x8cb3,
-0x8cae, 0x8cb6, 0x8cc8, 0x8cc1, 0x8ce4, 0x8ce3, 0x8cda, 0x8cfd,
-0x8cfa, 0x8cfb, 0x8d04, 0x8d05, 0x8d0a, 0x8d07, 0x8d0f, 0x8d0d,
-0x8d10, 0x9f4e, 0x8d13, 0x8ccd, 0x8d14, 0x8d16, 0x8d67, 0x8d6d,
-0x8d71, 0x8d73, 0x8d81, 0x8d99, 0x8dc2, 0x8dbe, 0x8dba, 0x8dcf,
-0x8dda, 0x8dd6, 0x8dcc, 0x8ddb, 0x8dcb, 0x8dea, 0x8deb, 0x8ddf,
-0x8de3, 0x8dfc, 0x8e08, 0x8e09, 0x8dff, 0x8e1d, 0x8e1e, 0x8e10,
-0x8e1f, 0x8e42, 0x8e35, 0x8e30, 0x8e34, 0x8e4a,
-94, 0x6d21,
-0x8e47, 0x8e49, 0x8e4c, 0x8e50, 0x8e48, 0x8e59, 0x8e64, 0x8e60,
-0x8e2a, 0x8e63, 0x8e55, 0x8e76, 0x8e72, 0x8e7c, 0x8e81, 0x8e87,
-0x8e85, 0x8e84, 0x8e8b, 0x8e8a, 0x8e93, 0x8e91, 0x8e94, 0x8e99,
-0x8eaa, 0x8ea1, 0x8eac, 0x8eb0, 0x8ec6, 0x8eb1, 0x8ebe, 0x8ec5,
-0x8ec8, 0x8ecb, 0x8edb, 0x8ee3, 0x8efc, 0x8efb, 0x8eeb, 0x8efe,
-0x8f0a, 0x8f05, 0x8f15, 0x8f12, 0x8f19, 0x8f13, 0x8f1c, 0x8f1f,
-0x8f1b, 0x8f0c, 0x8f26, 0x8f33, 0x8f3b, 0x8f39, 0x8f45, 0x8f42,
-0x8f3e, 0x8f4c, 0x8f49, 0x8f46, 0x8f4e, 0x8f57, 0x8f5c, 0x8f62,
-0x8f63, 0x8f64, 0x8f9c, 0x8f9f, 0x8fa3, 0x8fad, 0x8faf, 0x8fb7,
-0x8fda, 0x8fe5, 0x8fe2, 0x8fea, 0x8fef, 0x9087, 0x8ff4, 0x9005,
-0x8ff9, 0x8ffa, 0x9011, 0x9015, 0x9021, 0x900d, 0x901e, 0x9016,
-0x900b, 0x9027, 0x9036, 0x9035, 0x9039, 0x8ff8,
-94, 0x6e21,
-0x904f, 0x9050, 0x9051, 0x9052, 0x900e, 0x9049, 0x903e, 0x9056,
-0x9058, 0x905e, 0x9068, 0x906f, 0x9076, 0x96a8, 0x9072, 0x9082,
-0x907d, 0x9081, 0x9080, 0x908a, 0x9089, 0x908f, 0x90a8, 0x90af,
-0x90b1, 0x90b5, 0x90e2, 0x90e4, 0x6248, 0x90db, 0x9102, 0x9112,
-0x9119, 0x9132, 0x9130, 0x914a, 0x9156, 0x9158, 0x9163, 0x9165,
-0x9169, 0x9173, 0x9172, 0x918b, 0x9189, 0x9182, 0x91a2, 0x91ab,
-0x91af, 0x91aa, 0x91b5, 0x91b4, 0x91ba, 0x91c0, 0x91c1, 0x91c9,
-0x91cb, 0x91d0, 0x91d6, 0x91df, 0x91e1, 0x91db, 0x91fc, 0x91f5,
-0x91f6, 0x921e, 0x91ff, 0x9214, 0x922c, 0x9215, 0x9211, 0x925e,
-0x9257, 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923f, 0x924b,
-0x9250, 0x929c, 0x9296, 0x9293, 0x929b, 0x925a, 0x92cf, 0x92b9,
-0x92b7, 0x92e9, 0x930f, 0x92fa, 0x9344, 0x932e,
-94, 0x6f21,
-0x9319, 0x9322, 0x931a, 0x9323, 0x933a, 0x9335, 0x933b, 0x935c,
-0x9360, 0x937c, 0x936e, 0x9356, 0x93b0, 0x93ac, 0x93ad, 0x9394,
-0x93b9, 0x93d6, 0x93d7, 0x93e8, 0x93e5, 0x93d8, 0x93c3, 0x93dd,
-0x93d0, 0x93c8, 0x93e4, 0x941a, 0x9414, 0x9413, 0x9403, 0x9407,
-0x9410, 0x9436, 0x942b, 0x9435, 0x9421, 0x943a, 0x9441, 0x9452,
-0x9444, 0x945b, 0x9460, 0x9462, 0x945e, 0x946a, 0x9229, 0x9470,
-0x9475, 0x9477, 0x947d, 0x945a, 0x947c, 0x947e, 0x9481, 0x947f,
-0x9582, 0x9587, 0x958a, 0x9594, 0x9596, 0x9598, 0x9599, 0x95a0,
-0x95a8, 0x95a7, 0x95ad, 0x95bc, 0x95bb, 0x95b9, 0x95be, 0x95ca,
-0x6ff6, 0x95c3, 0x95cd, 0x95cc, 0x95d5, 0x95d4, 0x95d6, 0x95dc,
-0x95e1, 0x95e5, 0x95e2, 0x9621, 0x9628, 0x962e, 0x962f, 0x9642,
-0x964c, 0x964f, 0x964b, 0x9677, 0x965c, 0x965e,
-94, 0x7021,
-0x965d, 0x965f, 0x9666, 0x9672, 0x966c, 0x968d, 0x9698, 0x9695,
-0x9697, 0x96aa, 0x96a7, 0x96b1, 0x96b2, 0x96b0, 0x96b4, 0x96b6,
-0x96b8, 0x96b9, 0x96ce, 0x96cb, 0x96c9, 0x96cd, 0x894d, 0x96dc,
-0x970d, 0x96d5, 0x96f9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970e,
-0x9711, 0x970f, 0x9716, 0x9719, 0x9724, 0x972a, 0x9730, 0x9739,
-0x973d, 0x973e, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975c,
-0x9760, 0x9764, 0x9766, 0x9768, 0x52d2, 0x976b, 0x9771, 0x9779,
-0x9785, 0x977c, 0x9781, 0x977a, 0x9786, 0x978b, 0x978f, 0x9790,
-0x979c, 0x97a8, 0x97a6, 0x97a3, 0x97b3, 0x97b4, 0x97c3, 0x97c6,
-0x97c8, 0x97cb, 0x97dc, 0x97ed, 0x9f4f, 0x97f2, 0x7adf, 0x97f6,
-0x97f5, 0x980f, 0x980c, 0x9838, 0x9824, 0x9821, 0x9837, 0x983d,
-0x9846, 0x984f, 0x984b, 0x986b, 0x986f, 0x9870,
-94, 0x7121,
-0x9871, 0x9874, 0x9873, 0x98aa, 0x98af, 0x98b1, 0x98b6, 0x98c4,
-0x98c3, 0x98c6, 0x98e9, 0x98eb, 0x9903, 0x9909, 0x9912, 0x9914,
-0x9918, 0x9921, 0x991d, 0x991e, 0x9924, 0x9920, 0x992c, 0x992e,
-0x993d, 0x993e, 0x9942, 0x9949, 0x9945, 0x9950, 0x994b, 0x9951,
-0x9952, 0x994c, 0x9955, 0x9997, 0x9998, 0x99a5, 0x99ad, 0x99ae,
-0x99bc, 0x99df, 0x99db, 0x99dd, 0x99d8, 0x99d1, 0x99ed, 0x99ee,
-0x99f1, 0x99f2, 0x99fb, 0x99f8, 0x9a01, 0x9a0f, 0x9a05, 0x99e2,
-0x9a19, 0x9a2b, 0x9a37, 0x9a45, 0x9a42, 0x9a40, 0x9a43, 0x9a3e,
-0x9a55, 0x9a4d, 0x9a5b, 0x9a57, 0x9a5f, 0x9a62, 0x9a65, 0x9a64,
-0x9a69, 0x9a6b, 0x9a6a, 0x9aad, 0x9ab0, 0x9abc, 0x9ac0, 0x9acf,
-0x9ad1, 0x9ad3, 0x9ad4, 0x9ade, 0x9adf, 0x9ae2, 0x9ae3, 0x9ae6,
-0x9aef, 0x9aeb, 0x9aee, 0x9af4, 0x9af1, 0x9af7,
-94, 0x7221,
-0x9afb, 0x9b06, 0x9b18, 0x9b1a, 0x9b1f, 0x9b22, 0x9b23, 0x9b25,
-0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2e, 0x9b2f, 0x9b32, 0x9b44,
-0x9b43, 0x9b4f, 0x9b4d, 0x9b4e, 0x9b51, 0x9b58, 0x9b74, 0x9b93,
-0x9b83, 0x9b91, 0x9b96, 0x9b97, 0x9b9f, 0x9ba0, 0x9ba8, 0x9bb4,
-0x9bc0, 0x9bca, 0x9bb9, 0x9bc6, 0x9bcf, 0x9bd1, 0x9bd2, 0x9be3,
-0x9be2, 0x9be4, 0x9bd4, 0x9be1, 0x9c3a, 0x9bf2, 0x9bf1, 0x9bf0,
-0x9c15, 0x9c14, 0x9c09, 0x9c13, 0x9c0c, 0x9c06, 0x9c08, 0x9c12,
-0x9c0a, 0x9c04, 0x9c2e, 0x9c1b, 0x9c25, 0x9c24, 0x9c21, 0x9c30,
-0x9c47, 0x9c32, 0x9c46, 0x9c3e, 0x9c5a, 0x9c60, 0x9c67, 0x9c76,
-0x9c78, 0x9ce7, 0x9cec, 0x9cf0, 0x9d09, 0x9d08, 0x9ceb, 0x9d03,
-0x9d06, 0x9d2a, 0x9d26, 0x9daf, 0x9d23, 0x9d1f, 0x9d44, 0x9d15,
-0x9d12, 0x9d41, 0x9d3f, 0x9d3e, 0x9d46, 0x9d48,
-94, 0x7321,
-0x9d5d, 0x9d5e, 0x9d64, 0x9d51, 0x9d50, 0x9d59, 0x9d72, 0x9d89,
-0x9d87, 0x9dab, 0x9d6f, 0x9d7a, 0x9d9a, 0x9da4, 0x9da9, 0x9db2,
-0x9dc4, 0x9dc1, 0x9dbb, 0x9db8, 0x9dba, 0x9dc6, 0x9dcf, 0x9dc2,
-0x9dd9, 0x9dd3, 0x9df8, 0x9de6, 0x9ded, 0x9def, 0x9dfd, 0x9e1a,
-0x9e1b, 0x9e1e, 0x9e75, 0x9e79, 0x9e7d, 0x9e81, 0x9e88, 0x9e8b,
-0x9e8c, 0x9e92, 0x9e95, 0x9e91, 0x9e9d, 0x9ea5, 0x9ea9, 0x9eb8,
-0x9eaa, 0x9ead, 0x9761, 0x9ecc, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed4,
-0x9edc, 0x9ede, 0x9edd, 0x9ee0, 0x9ee5, 0x9ee8, 0x9eef, 0x9ef4,
-0x9ef6, 0x9ef7, 0x9ef9, 0x9efb, 0x9efc, 0x9efd, 0x9f07, 0x9f08,
-0x76b7, 0x9f15, 0x9f21, 0x9f2c, 0x9f3e, 0x9f4a, 0x9f52, 0x9f54,
-0x9f63, 0x9f5f, 0x9f60, 0x9f61, 0x9f66, 0x9f67, 0x9f6c, 0x9f6a,
-0x9f77, 0x9f72, 0x9f76, 0x9f95, 0x9f9c, 0x9fa0,
-6, 0x7421,
-0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/jis0212.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,871 +0,0 @@
-11, 0x222f,
-0x02d8, 0x02c7, 0x00b8, 0x02d9, 0x02dd, 0x00af, 0x02db, 0x02da,
-0x007e, 0x0384, 0x0385,
-3, 0x2242,
-0x00a1, 0x00a6, 0x00bf,
-7, 0x226b,
-0x00ba, 0x00aa, 0x00a9, 0x00ae, 0x2122, 0x00a4, 0x2116,
-5, 0x2661,
-0x0386, 0x0388, 0x0389, 0x038a, 0x03aa,
-1, 0x2667,
-0x038c,
-2, 0x2669,
-0x038e, 0x03ab,
-1, 0x266c,
-0x038f,
-12, 0x2671,
-0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, 0x03c2,
-0x03cd, 0x03cb, 0x03b0, 0x03ce,
-13, 0x2742,
-0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409,
-0x040a, 0x040b, 0x040c, 0x040e, 0x040f,
-13, 0x2772,
-0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459,
-0x045a, 0x045b, 0x045c, 0x045e, 0x045f,
-2, 0x2921,
-0x00c6, 0x0110,
-1, 0x2924,
-0x0126,
-1, 0x2926,
-0x0132,
-2, 0x2928,
-0x0141, 0x013f,
-3, 0x292b,
-0x014a, 0x00d8, 0x0152,
-2, 0x292f,
-0x0166, 0x00de,
-16, 0x2941,
-0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, 0x0142,
-0x0140, 0x0149, 0x014b, 0x00f8, 0x0153, 0x00df, 0x0167, 0x00fe,
-24, 0x2a21,
-0x00c1, 0x00c0, 0x00c4, 0x00c2, 0x0102, 0x01cd, 0x0100, 0x0104,
-0x00c5, 0x00c3, 0x0106, 0x0108, 0x010c, 0x00c7, 0x010a, 0x010e,
-0x00c9, 0x00c8, 0x00cb, 0x00ca, 0x011a, 0x0116, 0x0112, 0x0118,
-62, 0x2a3a,
-0x011c, 0x011e, 0x0122, 0x0120, 0x0124, 0x00cd, 0x00cc, 0x00cf,
-0x00ce, 0x01cf, 0x0130, 0x012a, 0x012e, 0x0128, 0x0134, 0x0136,
-0x0139, 0x013d, 0x013b, 0x0143, 0x0147, 0x0145, 0x00d1, 0x00d3,
-0x00d2, 0x00d6, 0x00d4, 0x01d1, 0x0150, 0x014c, 0x00d5, 0x0154,
-0x0158, 0x0156, 0x015a, 0x015c, 0x0160, 0x015e, 0x0164, 0x0162,
-0x00da, 0x00d9, 0x00dc, 0x00db, 0x016c, 0x01d3, 0x0170, 0x016a,
-0x0172, 0x016e, 0x0168, 0x01d7, 0x01db, 0x01d9, 0x01d5, 0x0174,
-0x00dd, 0x0178, 0x0176, 0x0179, 0x017d, 0x017b,
-27, 0x2b21,
-0x00e1, 0x00e0, 0x00e4, 0x00e2, 0x0103, 0x01ce, 0x0101, 0x0105,
-0x00e5, 0x00e3, 0x0107, 0x0109, 0x010d, 0x00e7, 0x010b, 0x010f,
-0x00e9, 0x00e8, 0x00eb, 0x00ea, 0x011b, 0x0117, 0x0113, 0x0119,
-0x01f5, 0x011d, 0x011f,
-7, 0x2b3d,
-0x0121, 0x0125, 0x00ed, 0x00ec, 0x00ef, 0x00ee, 0x01d0,
-51, 0x2b45,
-0x012b, 0x012f, 0x0129, 0x0135, 0x0137, 0x013a, 0x013e, 0x013c,
-0x0144, 0x0148, 0x0146, 0x00f1, 0x00f3, 0x00f2, 0x00f6, 0x00f4,
-0x01d2, 0x0151, 0x014d, 0x00f5, 0x0155, 0x0159, 0x0157, 0x015b,
-0x015d, 0x0161, 0x015f, 0x0165, 0x0163, 0x00fa, 0x00f9, 0x00fc,
-0x00fb, 0x016d, 0x01d4, 0x0171, 0x016b, 0x0173, 0x016f, 0x0169,
-0x01d8, 0x01dc, 0x01da, 0x01d6, 0x0175, 0x00fd, 0x00ff, 0x0177,
-0x017a, 0x017e, 0x017c,
-94, 0x3021,
-0x4e02, 0x4e04, 0x4e05, 0x4e0c, 0x4e12, 0x4e1f, 0x4e23, 0x4e24,
-0x4e28, 0x4e2b, 0x4e2e, 0x4e2f, 0x4e30, 0x4e35, 0x4e40, 0x4e41,
-0x4e44, 0x4e47, 0x4e51, 0x4e5a, 0x4e5c, 0x4e63, 0x4e68, 0x4e69,
-0x4e74, 0x4e75, 0x4e79, 0x4e7f, 0x4e8d, 0x4e96, 0x4e97, 0x4e9d,
-0x4eaf, 0x4eb9, 0x4ec3, 0x4ed0, 0x4eda, 0x4edb, 0x4ee0, 0x4ee1,
-0x4ee2, 0x4ee8, 0x4eef, 0x4ef1, 0x4ef3, 0x4ef5, 0x4efd, 0x4efe,
-0x4eff, 0x4f00, 0x4f02, 0x4f03, 0x4f08, 0x4f0b, 0x4f0c, 0x4f12,
-0x4f15, 0x4f16, 0x4f17, 0x4f19, 0x4f2e, 0x4f31, 0x4f60, 0x4f33,
-0x4f35, 0x4f37, 0x4f39, 0x4f3b, 0x4f3e, 0x4f40, 0x4f42, 0x4f48,
-0x4f49, 0x4f4b, 0x4f4c, 0x4f52, 0x4f54, 0x4f56, 0x4f58, 0x4f5f,
-0x4f63, 0x4f6a, 0x4f6c, 0x4f6e, 0x4f71, 0x4f77, 0x4f78, 0x4f79,
-0x4f7a, 0x4f7d, 0x4f7e, 0x4f81, 0x4f82, 0x4f84,
-94, 0x3121,
-0x4f85, 0x4f89, 0x4f8a, 0x4f8c, 0x4f8e, 0x4f90, 0x4f92, 0x4f93,
-0x4f94, 0x4f97, 0x4f99, 0x4f9a, 0x4f9e, 0x4f9f, 0x4fb2, 0x4fb7,
-0x4fb9, 0x4fbb, 0x4fbc, 0x4fbd, 0x4fbe, 0x4fc0, 0x4fc1, 0x4fc5,
-0x4fc6, 0x4fc8, 0x4fc9, 0x4fcb, 0x4fcc, 0x4fcd, 0x4fcf, 0x4fd2,
-0x4fdc, 0x4fe0, 0x4fe2, 0x4ff0, 0x4ff2, 0x4ffc, 0x4ffd, 0x4fff,
-0x5000, 0x5001, 0x5004, 0x5007, 0x500a, 0x500c, 0x500e, 0x5010,
-0x5013, 0x5017, 0x5018, 0x501b, 0x501c, 0x501d, 0x501e, 0x5022,
-0x5027, 0x502e, 0x5030, 0x5032, 0x5033, 0x5035, 0x5040, 0x5041,
-0x5042, 0x5045, 0x5046, 0x504a, 0x504c, 0x504e, 0x5051, 0x5052,
-0x5053, 0x5057, 0x5059, 0x505f, 0x5060, 0x5062, 0x5063, 0x5066,
-0x5067, 0x506a, 0x506d, 0x5070, 0x5071, 0x503b, 0x5081, 0x5083,
-0x5084, 0x5086, 0x508a, 0x508e, 0x508f, 0x5090,
-94, 0x3221,
-0x5092, 0x5093, 0x5094, 0x5096, 0x509b, 0x509c, 0x509e, 0x509f,
-0x50a0, 0x50a1, 0x50a2, 0x50aa, 0x50af, 0x50b0, 0x50b9, 0x50ba,
-0x50bd, 0x50c0, 0x50c3, 0x50c4, 0x50c7, 0x50cc, 0x50ce, 0x50d0,
-0x50d3, 0x50d4, 0x50d8, 0x50dc, 0x50dd, 0x50df, 0x50e2, 0x50e4,
-0x50e6, 0x50e8, 0x50e9, 0x50ef, 0x50f1, 0x50f6, 0x50fa, 0x50fe,
-0x5103, 0x5106, 0x5107, 0x5108, 0x510b, 0x510c, 0x510d, 0x510e,
-0x50f2, 0x5110, 0x5117, 0x5119, 0x511b, 0x511c, 0x511d, 0x511e,
-0x5123, 0x5127, 0x5128, 0x512c, 0x512d, 0x512f, 0x5131, 0x5133,
-0x5134, 0x5135, 0x5138, 0x5139, 0x5142, 0x514a, 0x514f, 0x5153,
-0x5155, 0x5157, 0x5158, 0x515f, 0x5164, 0x5166, 0x517e, 0x5183,
-0x5184, 0x518b, 0x518e, 0x5198, 0x519d, 0x51a1, 0x51a3, 0x51ad,
-0x51b8, 0x51ba, 0x51bc, 0x51be, 0x51bf, 0x51c2,
-94, 0x3321,
-0x51c8, 0x51cf, 0x51d1, 0x51d2, 0x51d3, 0x51d5, 0x51d8, 0x51de,
-0x51e2, 0x51e5, 0x51ee, 0x51f2, 0x51f3, 0x51f4, 0x51f7, 0x5201,
-0x5202, 0x5205, 0x5212, 0x5213, 0x5215, 0x5216, 0x5218, 0x5222,
-0x5228, 0x5231, 0x5232, 0x5235, 0x523c, 0x5245, 0x5249, 0x5255,
-0x5257, 0x5258, 0x525a, 0x525c, 0x525f, 0x5260, 0x5261, 0x5266,
-0x526e, 0x5277, 0x5278, 0x5279, 0x5280, 0x5282, 0x5285, 0x528a,
-0x528c, 0x5293, 0x5295, 0x5296, 0x5297, 0x5298, 0x529a, 0x529c,
-0x52a4, 0x52a5, 0x52a6, 0x52a7, 0x52af, 0x52b0, 0x52b6, 0x52b7,
-0x52b8, 0x52ba, 0x52bb, 0x52bd, 0x52c0, 0x52c4, 0x52c6, 0x52c8,
-0x52cc, 0x52cf, 0x52d1, 0x52d4, 0x52d6, 0x52db, 0x52dc, 0x52e1,
-0x52e5, 0x52e8, 0x52e9, 0x52ea, 0x52ec, 0x52f0, 0x52f1, 0x52f4,
-0x52f6, 0x52f7, 0x5300, 0x5303, 0x530a, 0x530b,
-94, 0x3421,
-0x530c, 0x5311, 0x5313, 0x5318, 0x531b, 0x531c, 0x531e, 0x531f,
-0x5325, 0x5327, 0x5328, 0x5329, 0x532b, 0x532c, 0x532d, 0x5330,
-0x5332, 0x5335, 0x533c, 0x533d, 0x533e, 0x5342, 0x534c, 0x534b,
-0x5359, 0x535b, 0x5361, 0x5363, 0x5365, 0x536c, 0x536d, 0x5372,
-0x5379, 0x537e, 0x5383, 0x5387, 0x5388, 0x538e, 0x5393, 0x5394,
-0x5399, 0x539d, 0x53a1, 0x53a4, 0x53aa, 0x53ab, 0x53af, 0x53b2,
-0x53b4, 0x53b5, 0x53b7, 0x53b8, 0x53ba, 0x53bd, 0x53c0, 0x53c5,
-0x53cf, 0x53d2, 0x53d3, 0x53d5, 0x53da, 0x53dd, 0x53de, 0x53e0,
-0x53e6, 0x53e7, 0x53f5, 0x5402, 0x5413, 0x541a, 0x5421, 0x5427,
-0x5428, 0x542a, 0x542f, 0x5431, 0x5434, 0x5435, 0x5443, 0x5444,
-0x5447, 0x544d, 0x544f, 0x545e, 0x5462, 0x5464, 0x5466, 0x5467,
-0x5469, 0x546b, 0x546d, 0x546e, 0x5474, 0x547f,
-94, 0x3521,
-0x5481, 0x5483, 0x5485, 0x5488, 0x5489, 0x548d, 0x5491, 0x5495,
-0x5496, 0x549c, 0x549f, 0x54a1, 0x54a6, 0x54a7, 0x54a9, 0x54aa,
-0x54ad, 0x54ae, 0x54b1, 0x54b7, 0x54b9, 0x54ba, 0x54bb, 0x54bf,
-0x54c6, 0x54ca, 0x54cd, 0x54ce, 0x54e0, 0x54ea, 0x54ec, 0x54ef,
-0x54f6, 0x54fc, 0x54fe, 0x54ff, 0x5500, 0x5501, 0x5505, 0x5508,
-0x5509, 0x550c, 0x550d, 0x550e, 0x5515, 0x552a, 0x552b, 0x5532,
-0x5535, 0x5536, 0x553b, 0x553c, 0x553d, 0x5541, 0x5547, 0x5549,
-0x554a, 0x554d, 0x5550, 0x5551, 0x5558, 0x555a, 0x555b, 0x555e,
-0x5560, 0x5561, 0x5564, 0x5566, 0x557f, 0x5581, 0x5582, 0x5586,
-0x5588, 0x558e, 0x558f, 0x5591, 0x5592, 0x5593, 0x5594, 0x5597,
-0x55a3, 0x55a4, 0x55ad, 0x55b2, 0x55bf, 0x55c1, 0x55c3, 0x55c6,
-0x55c9, 0x55cb, 0x55cc, 0x55ce, 0x55d1, 0x55d2,
-94, 0x3621,
-0x55d3, 0x55d7, 0x55d8, 0x55db, 0x55de, 0x55e2, 0x55e9, 0x55f6,
-0x55ff, 0x5605, 0x5608, 0x560a, 0x560d, 0x560e, 0x560f, 0x5610,
-0x5611, 0x5612, 0x5619, 0x562c, 0x5630, 0x5633, 0x5635, 0x5637,
-0x5639, 0x563b, 0x563c, 0x563d, 0x563f, 0x5640, 0x5641, 0x5643,
-0x5644, 0x5646, 0x5649, 0x564b, 0x564d, 0x564f, 0x5654, 0x565e,
-0x5660, 0x5661, 0x5662, 0x5663, 0x5666, 0x5669, 0x566d, 0x566f,
-0x5671, 0x5672, 0x5675, 0x5684, 0x5685, 0x5688, 0x568b, 0x568c,
-0x5695, 0x5699, 0x569a, 0x569d, 0x569e, 0x569f, 0x56a6, 0x56a7,
-0x56a8, 0x56a9, 0x56ab, 0x56ac, 0x56ad, 0x56b1, 0x56b3, 0x56b7,
-0x56be, 0x56c5, 0x56c9, 0x56ca, 0x56cb, 0x56cf, 0x56d0, 0x56cc,
-0x56cd, 0x56d9, 0x56dc, 0x56dd, 0x56df, 0x56e1, 0x56e4, 0x56e5,
-0x56e6, 0x56e7, 0x56e8, 0x56f1, 0x56eb, 0x56ed,
-94, 0x3721,
-0x56f6, 0x56f7, 0x5701, 0x5702, 0x5707, 0x570a, 0x570c, 0x5711,
-0x5715, 0x571a, 0x571b, 0x571d, 0x5720, 0x5722, 0x5723, 0x5724,
-0x5725, 0x5729, 0x572a, 0x572c, 0x572e, 0x572f, 0x5733, 0x5734,
-0x573d, 0x573e, 0x573f, 0x5745, 0x5746, 0x574c, 0x574d, 0x5752,
-0x5762, 0x5765, 0x5767, 0x5768, 0x576b, 0x576d, 0x576e, 0x576f,
-0x5770, 0x5771, 0x5773, 0x5774, 0x5775, 0x5777, 0x5779, 0x577a,
-0x577b, 0x577c, 0x577e, 0x5781, 0x5783, 0x578c, 0x5794, 0x5797,
-0x5799, 0x579a, 0x579c, 0x579d, 0x579e, 0x579f, 0x57a1, 0x5795,
-0x57a7, 0x57a8, 0x57a9, 0x57ac, 0x57b8, 0x57bd, 0x57c7, 0x57c8,
-0x57cc, 0x57cf, 0x57d5, 0x57dd, 0x57de, 0x57e4, 0x57e6, 0x57e7,
-0x57e9, 0x57ed, 0x57f0, 0x57f5, 0x57f6, 0x57f8, 0x57fd, 0x57fe,
-0x57ff, 0x5803, 0x5804, 0x5808, 0x5809, 0x57e1,
-94, 0x3821,
-0x580c, 0x580d, 0x581b, 0x581e, 0x581f, 0x5820, 0x5826, 0x5827,
-0x582d, 0x5832, 0x5839, 0x583f, 0x5849, 0x584c, 0x584d, 0x584f,
-0x5850, 0x5855, 0x585f, 0x5861, 0x5864, 0x5867, 0x5868, 0x5878,
-0x587c, 0x587f, 0x5880, 0x5881, 0x5887, 0x5888, 0x5889, 0x588a,
-0x588c, 0x588d, 0x588f, 0x5890, 0x5894, 0x5896, 0x589d, 0x58a0,
-0x58a1, 0x58a2, 0x58a6, 0x58a9, 0x58b1, 0x58b2, 0x58c4, 0x58bc,
-0x58c2, 0x58c8, 0x58cd, 0x58ce, 0x58d0, 0x58d2, 0x58d4, 0x58d6,
-0x58da, 0x58dd, 0x58e1, 0x58e2, 0x58e9, 0x58f3, 0x5905, 0x5906,
-0x590b, 0x590c, 0x5912, 0x5913, 0x5914, 0x8641, 0x591d, 0x5921,
-0x5923, 0x5924, 0x5928, 0x592f, 0x5930, 0x5933, 0x5935, 0x5936,
-0x593f, 0x5943, 0x5946, 0x5952, 0x5953, 0x5959, 0x595b, 0x595d,
-0x595e, 0x595f, 0x5961, 0x5963, 0x596b, 0x596d,
-94, 0x3921,
-0x596f, 0x5972, 0x5975, 0x5976, 0x5979, 0x597b, 0x597c, 0x598b,
-0x598c, 0x598e, 0x5992, 0x5995, 0x5997, 0x599f, 0x59a4, 0x59a7,
-0x59ad, 0x59ae, 0x59af, 0x59b0, 0x59b3, 0x59b7, 0x59ba, 0x59bc,
-0x59c1, 0x59c3, 0x59c4, 0x59c8, 0x59ca, 0x59cd, 0x59d2, 0x59dd,
-0x59de, 0x59df, 0x59e3, 0x59e4, 0x59e7, 0x59ee, 0x59ef, 0x59f1,
-0x59f2, 0x59f4, 0x59f7, 0x5a00, 0x5a04, 0x5a0c, 0x5a0d, 0x5a0e,
-0x5a12, 0x5a13, 0x5a1e, 0x5a23, 0x5a24, 0x5a27, 0x5a28, 0x5a2a,
-0x5a2d, 0x5a30, 0x5a44, 0x5a45, 0x5a47, 0x5a48, 0x5a4c, 0x5a50,
-0x5a55, 0x5a5e, 0x5a63, 0x5a65, 0x5a67, 0x5a6d, 0x5a77, 0x5a7a,
-0x5a7b, 0x5a7e, 0x5a8b, 0x5a90, 0x5a93, 0x5a96, 0x5a99, 0x5a9c,
-0x5a9e, 0x5a9f, 0x5aa0, 0x5aa2, 0x5aa7, 0x5aac, 0x5ab1, 0x5ab2,
-0x5ab3, 0x5ab5, 0x5ab8, 0x5aba, 0x5abb, 0x5abf,
-94, 0x3a21,
-0x5ac4, 0x5ac6, 0x5ac8, 0x5acf, 0x5ada, 0x5adc, 0x5ae0, 0x5ae5,
-0x5aea, 0x5aee, 0x5af5, 0x5af6, 0x5afd, 0x5b00, 0x5b01, 0x5b08,
-0x5b17, 0x5b34, 0x5b19, 0x5b1b, 0x5b1d, 0x5b21, 0x5b25, 0x5b2d,
-0x5b38, 0x5b41, 0x5b4b, 0x5b4c, 0x5b52, 0x5b56, 0x5b5e, 0x5b68,
-0x5b6e, 0x5b6f, 0x5b7c, 0x5b7d, 0x5b7e, 0x5b7f, 0x5b81, 0x5b84,
-0x5b86, 0x5b8a, 0x5b8e, 0x5b90, 0x5b91, 0x5b93, 0x5b94, 0x5b96,
-0x5ba8, 0x5ba9, 0x5bac, 0x5bad, 0x5baf, 0x5bb1, 0x5bb2, 0x5bb7,
-0x5bba, 0x5bbc, 0x5bc0, 0x5bc1, 0x5bcd, 0x5bcf, 0x5bd6, 0x5bd7,
-0x5bd8, 0x5bd9, 0x5bda, 0x5be0, 0x5bef, 0x5bf1, 0x5bf4, 0x5bfd,
-0x5c0c, 0x5c17, 0x5c1e, 0x5c1f, 0x5c23, 0x5c26, 0x5c29, 0x5c2b,
-0x5c2c, 0x5c2e, 0x5c30, 0x5c32, 0x5c35, 0x5c36, 0x5c59, 0x5c5a,
-0x5c5c, 0x5c62, 0x5c63, 0x5c67, 0x5c68, 0x5c69,
-94, 0x3b21,
-0x5c6d, 0x5c70, 0x5c74, 0x5c75, 0x5c7a, 0x5c7b, 0x5c7c, 0x5c7d,
-0x5c87, 0x5c88, 0x5c8a, 0x5c8f, 0x5c92, 0x5c9d, 0x5c9f, 0x5ca0,
-0x5ca2, 0x5ca3, 0x5ca6, 0x5caa, 0x5cb2, 0x5cb4, 0x5cb5, 0x5cba,
-0x5cc9, 0x5ccb, 0x5cd2, 0x5cdd, 0x5cd7, 0x5cee, 0x5cf1, 0x5cf2,
-0x5cf4, 0x5d01, 0x5d06, 0x5d0d, 0x5d12, 0x5d2b, 0x5d23, 0x5d24,
-0x5d26, 0x5d27, 0x5d31, 0x5d34, 0x5d39, 0x5d3d, 0x5d3f, 0x5d42,
-0x5d43, 0x5d46, 0x5d48, 0x5d55, 0x5d51, 0x5d59, 0x5d4a, 0x5d5f,
-0x5d60, 0x5d61, 0x5d62, 0x5d64, 0x5d6a, 0x5d6d, 0x5d70, 0x5d79,
-0x5d7a, 0x5d7e, 0x5d7f, 0x5d81, 0x5d83, 0x5d88, 0x5d8a, 0x5d92,
-0x5d93, 0x5d94, 0x5d95, 0x5d99, 0x5d9b, 0x5d9f, 0x5da0, 0x5da7,
-0x5dab, 0x5db0, 0x5db4, 0x5db8, 0x5db9, 0x5dc3, 0x5dc7, 0x5dcb,
-0x5dd0, 0x5dce, 0x5dd8, 0x5dd9, 0x5de0, 0x5de4,
-94, 0x3c21,
-0x5de9, 0x5df8, 0x5df9, 0x5e00, 0x5e07, 0x5e0d, 0x5e12, 0x5e14,
-0x5e15, 0x5e18, 0x5e1f, 0x5e20, 0x5e2e, 0x5e28, 0x5e32, 0x5e35,
-0x5e3e, 0x5e4b, 0x5e50, 0x5e49, 0x5e51, 0x5e56, 0x5e58, 0x5e5b,
-0x5e5c, 0x5e5e, 0x5e68, 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e,
-0x5e70, 0x5e80, 0x5e8b, 0x5e8e, 0x5ea2, 0x5ea4, 0x5ea5, 0x5ea8,
-0x5eaa, 0x5eac, 0x5eb1, 0x5eb3, 0x5ebd, 0x5ebe, 0x5ebf, 0x5ec6,
-0x5ecc, 0x5ecb, 0x5ece, 0x5ed1, 0x5ed2, 0x5ed4, 0x5ed5, 0x5edc,
-0x5ede, 0x5ee5, 0x5eeb, 0x5f02, 0x5f06, 0x5f07, 0x5f08, 0x5f0e,
-0x5f19, 0x5f1c, 0x5f1d, 0x5f21, 0x5f22, 0x5f23, 0x5f24, 0x5f28,
-0x5f2b, 0x5f2c, 0x5f2e, 0x5f30, 0x5f34, 0x5f36, 0x5f3b, 0x5f3d,
-0x5f3f, 0x5f40, 0x5f44, 0x5f45, 0x5f47, 0x5f4d, 0x5f50, 0x5f54,
-0x5f58, 0x5f5b, 0x5f60, 0x5f63, 0x5f64, 0x5f67,
-94, 0x3d21,
-0x5f6f, 0x5f72, 0x5f74, 0x5f75, 0x5f78, 0x5f7a, 0x5f7d, 0x5f7e,
-0x5f89, 0x5f8d, 0x5f8f, 0x5f96, 0x5f9c, 0x5f9d, 0x5fa2, 0x5fa7,
-0x5fab, 0x5fa4, 0x5fac, 0x5faf, 0x5fb0, 0x5fb1, 0x5fb8, 0x5fc4,
-0x5fc7, 0x5fc8, 0x5fc9, 0x5fcb, 0x5fd0, 0x5fd1, 0x5fd2, 0x5fd3,
-0x5fd4, 0x5fde, 0x5fe1, 0x5fe2, 0x5fe8, 0x5fe9, 0x5fea, 0x5fec,
-0x5fed, 0x5fee, 0x5fef, 0x5ff2, 0x5ff3, 0x5ff6, 0x5ffa, 0x5ffc,
-0x6007, 0x600a, 0x600d, 0x6013, 0x6014, 0x6017, 0x6018, 0x601a,
-0x601f, 0x6024, 0x602d, 0x6033, 0x6035, 0x6040, 0x6047, 0x6048,
-0x6049, 0x604c, 0x6051, 0x6054, 0x6056, 0x6057, 0x605d, 0x6061,
-0x6067, 0x6071, 0x607e, 0x607f, 0x6082, 0x6086, 0x6088, 0x608a,
-0x608e, 0x6091, 0x6093, 0x6095, 0x6098, 0x609d, 0x609e, 0x60a2,
-0x60a4, 0x60a5, 0x60a8, 0x60b0, 0x60b1, 0x60b7,
-94, 0x3e21,
-0x60bb, 0x60be, 0x60c2, 0x60c4, 0x60c8, 0x60c9, 0x60ca, 0x60cb,
-0x60ce, 0x60cf, 0x60d4, 0x60d5, 0x60d9, 0x60db, 0x60dd, 0x60de,
-0x60e2, 0x60e5, 0x60f2, 0x60f5, 0x60f8, 0x60fc, 0x60fd, 0x6102,
-0x6107, 0x610a, 0x610c, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114,
-0x6116, 0x6117, 0x6119, 0x611c, 0x611e, 0x6122, 0x612a, 0x612b,
-0x6130, 0x6131, 0x6135, 0x6136, 0x6137, 0x6139, 0x6141, 0x6145,
-0x6146, 0x6149, 0x615e, 0x6160, 0x616c, 0x6172, 0x6178, 0x617b,
-0x617c, 0x617f, 0x6180, 0x6181, 0x6183, 0x6184, 0x618b, 0x618d,
-0x6192, 0x6193, 0x6197, 0x6198, 0x619c, 0x619d, 0x619f, 0x61a0,
-0x61a5, 0x61a8, 0x61aa, 0x61ad, 0x61b8, 0x61b9, 0x61bc, 0x61c0,
-0x61c1, 0x61c2, 0x61ce, 0x61cf, 0x61d5, 0x61dc, 0x61dd, 0x61de,
-0x61df, 0x61e1, 0x61e2, 0x61e7, 0x61e9, 0x61e5,
-94, 0x3f21,
-0x61ec, 0x61ed, 0x61ef, 0x6201, 0x6203, 0x6204, 0x6207, 0x6213,
-0x6215, 0x621c, 0x6220, 0x6222, 0x6223, 0x6227, 0x6229, 0x622b,
-0x6239, 0x623d, 0x6242, 0x6243, 0x6244, 0x6246, 0x624c, 0x6250,
-0x6251, 0x6252, 0x6254, 0x6256, 0x625a, 0x625c, 0x6264, 0x626d,
-0x626f, 0x6273, 0x627a, 0x627d, 0x628d, 0x628e, 0x628f, 0x6290,
-0x62a6, 0x62a8, 0x62b3, 0x62b6, 0x62b7, 0x62ba, 0x62be, 0x62bf,
-0x62c4, 0x62ce, 0x62d5, 0x62d6, 0x62da, 0x62ea, 0x62f2, 0x62f4,
-0x62fc, 0x62fd, 0x6303, 0x6304, 0x630a, 0x630b, 0x630d, 0x6310,
-0x6313, 0x6316, 0x6318, 0x6329, 0x632a, 0x632d, 0x6335, 0x6336,
-0x6339, 0x633c, 0x6341, 0x6342, 0x6343, 0x6344, 0x6346, 0x634a,
-0x634b, 0x634e, 0x6352, 0x6353, 0x6354, 0x6358, 0x635b, 0x6365,
-0x6366, 0x636c, 0x636d, 0x6371, 0x6374, 0x6375,
-94, 0x4021,
-0x6378, 0x637c, 0x637d, 0x637f, 0x6382, 0x6384, 0x6387, 0x638a,
-0x6390, 0x6394, 0x6395, 0x6399, 0x639a, 0x639e, 0x63a4, 0x63a6,
-0x63ad, 0x63ae, 0x63af, 0x63bd, 0x63c1, 0x63c5, 0x63c8, 0x63ce,
-0x63d1, 0x63d3, 0x63d4, 0x63d5, 0x63dc, 0x63e0, 0x63e5, 0x63ea,
-0x63ec, 0x63f2, 0x63f3, 0x63f5, 0x63f8, 0x63f9, 0x6409, 0x640a,
-0x6410, 0x6412, 0x6414, 0x6418, 0x641e, 0x6420, 0x6422, 0x6424,
-0x6425, 0x6429, 0x642a, 0x642f, 0x6430, 0x6435, 0x643d, 0x643f,
-0x644b, 0x644f, 0x6451, 0x6452, 0x6453, 0x6454, 0x645a, 0x645b,
-0x645c, 0x645d, 0x645f, 0x6460, 0x6461, 0x6463, 0x646d, 0x6473,
-0x6474, 0x647b, 0x647d, 0x6485, 0x6487, 0x648f, 0x6490, 0x6491,
-0x6498, 0x6499, 0x649b, 0x649d, 0x649f, 0x64a1, 0x64a3, 0x64a6,
-0x64a8, 0x64ac, 0x64b3, 0x64bd, 0x64be, 0x64bf,
-94, 0x4121,
-0x64c4, 0x64c9, 0x64ca, 0x64cb, 0x64cc, 0x64ce, 0x64d0, 0x64d1,
-0x64d5, 0x64d7, 0x64e4, 0x64e5, 0x64e9, 0x64ea, 0x64ed, 0x64f0,
-0x64f5, 0x64f7, 0x64fb, 0x64ff, 0x6501, 0x6504, 0x6508, 0x6509,
-0x650a, 0x650f, 0x6513, 0x6514, 0x6516, 0x6519, 0x651b, 0x651e,
-0x651f, 0x6522, 0x6526, 0x6529, 0x652e, 0x6531, 0x653a, 0x653c,
-0x653d, 0x6543, 0x6547, 0x6549, 0x6550, 0x6552, 0x6554, 0x655f,
-0x6560, 0x6567, 0x656b, 0x657a, 0x657d, 0x6581, 0x6585, 0x658a,
-0x6592, 0x6595, 0x6598, 0x659d, 0x65a0, 0x65a3, 0x65a6, 0x65ae,
-0x65b2, 0x65b3, 0x65b4, 0x65bf, 0x65c2, 0x65c8, 0x65c9, 0x65ce,
-0x65d0, 0x65d4, 0x65d6, 0x65d8, 0x65df, 0x65f0, 0x65f2, 0x65f4,
-0x65f5, 0x65f9, 0x65fe, 0x65ff, 0x6600, 0x6604, 0x6608, 0x6609,
-0x660d, 0x6611, 0x6612, 0x6615, 0x6616, 0x661d,
-94, 0x4221,
-0x661e, 0x6621, 0x6622, 0x6623, 0x6624, 0x6626, 0x6629, 0x662a,
-0x662b, 0x662c, 0x662e, 0x6630, 0x6631, 0x6633, 0x6639, 0x6637,
-0x6640, 0x6645, 0x6646, 0x664a, 0x664c, 0x6651, 0x664e, 0x6657,
-0x6658, 0x6659, 0x665b, 0x665c, 0x6660, 0x6661, 0x66fb, 0x666a,
-0x666b, 0x666c, 0x667e, 0x6673, 0x6675, 0x667f, 0x6677, 0x6678,
-0x6679, 0x667b, 0x6680, 0x667c, 0x668b, 0x668c, 0x668d, 0x6690,
-0x6692, 0x6699, 0x669a, 0x669b, 0x669c, 0x669f, 0x66a0, 0x66a4,
-0x66ad, 0x66b1, 0x66b2, 0x66b5, 0x66bb, 0x66bf, 0x66c0, 0x66c2,
-0x66c3, 0x66c8, 0x66cc, 0x66ce, 0x66cf, 0x66d4, 0x66db, 0x66df,
-0x66e8, 0x66eb, 0x66ec, 0x66ee, 0x66fa, 0x6705, 0x6707, 0x670e,
-0x6713, 0x6719, 0x671c, 0x6720, 0x6722, 0x6733, 0x673e, 0x6745,
-0x6747, 0x6748, 0x674c, 0x6754, 0x6755, 0x675d,
-94, 0x4321,
-0x6766, 0x676c, 0x676e, 0x6774, 0x6776, 0x677b, 0x6781, 0x6784,
-0x678e, 0x678f, 0x6791, 0x6793, 0x6796, 0x6798, 0x6799, 0x679b,
-0x67b0, 0x67b1, 0x67b2, 0x67b5, 0x67bb, 0x67bc, 0x67bd, 0x67f9,
-0x67c0, 0x67c2, 0x67c3, 0x67c5, 0x67c8, 0x67c9, 0x67d2, 0x67d7,
-0x67d9, 0x67dc, 0x67e1, 0x67e6, 0x67f0, 0x67f2, 0x67f6, 0x67f7,
-0x6852, 0x6814, 0x6819, 0x681d, 0x681f, 0x6828, 0x6827, 0x682c,
-0x682d, 0x682f, 0x6830, 0x6831, 0x6833, 0x683b, 0x683f, 0x6844,
-0x6845, 0x684a, 0x684c, 0x6855, 0x6857, 0x6858, 0x685b, 0x686b,
-0x686e, 0x686f, 0x6870, 0x6871, 0x6872, 0x6875, 0x6879, 0x687a,
-0x687b, 0x687c, 0x6882, 0x6884, 0x6886, 0x6888, 0x6896, 0x6898,
-0x689a, 0x689c, 0x68a1, 0x68a3, 0x68a5, 0x68a9, 0x68aa, 0x68ae,
-0x68b2, 0x68bb, 0x68c5, 0x68c8, 0x68cc, 0x68cf,
-94, 0x4421,
-0x68d0, 0x68d1, 0x68d3, 0x68d6, 0x68d9, 0x68dc, 0x68dd, 0x68e5,
-0x68e8, 0x68ea, 0x68eb, 0x68ec, 0x68ed, 0x68f0, 0x68f1, 0x68f5,
-0x68f6, 0x68fb, 0x68fc, 0x68fd, 0x6906, 0x6909, 0x690a, 0x6910,
-0x6911, 0x6913, 0x6916, 0x6917, 0x6931, 0x6933, 0x6935, 0x6938,
-0x693b, 0x6942, 0x6945, 0x6949, 0x694e, 0x6957, 0x695b, 0x6963,
-0x6964, 0x6965, 0x6966, 0x6968, 0x6969, 0x696c, 0x6970, 0x6971,
-0x6972, 0x697a, 0x697b, 0x697f, 0x6980, 0x698d, 0x6992, 0x6996,
-0x6998, 0x69a1, 0x69a5, 0x69a6, 0x69a8, 0x69ab, 0x69ad, 0x69af,
-0x69b7, 0x69b8, 0x69ba, 0x69bc, 0x69c5, 0x69c8, 0x69d1, 0x69d6,
-0x69d7, 0x69e2, 0x69e5, 0x69ee, 0x69ef, 0x69f1, 0x69f3, 0x69f5,
-0x69fe, 0x6a00, 0x6a01, 0x6a03, 0x6a0f, 0x6a11, 0x6a15, 0x6a1a,
-0x6a1d, 0x6a20, 0x6a24, 0x6a28, 0x6a30, 0x6a32,
-94, 0x4521,
-0x6a34, 0x6a37, 0x6a3b, 0x6a3e, 0x6a3f, 0x6a45, 0x6a46, 0x6a49,
-0x6a4a, 0x6a4e, 0x6a50, 0x6a51, 0x6a52, 0x6a55, 0x6a56, 0x6a5b,
-0x6a64, 0x6a67, 0x6a6a, 0x6a71, 0x6a73, 0x6a7e, 0x6a81, 0x6a83,
-0x6a86, 0x6a87, 0x6a89, 0x6a8b, 0x6a91, 0x6a9b, 0x6a9d, 0x6a9e,
-0x6a9f, 0x6aa5, 0x6aab, 0x6aaf, 0x6ab0, 0x6ab1, 0x6ab4, 0x6abd,
-0x6abe, 0x6abf, 0x6ac6, 0x6ac9, 0x6ac8, 0x6acc, 0x6ad0, 0x6ad4,
-0x6ad5, 0x6ad6, 0x6adc, 0x6add, 0x6ae4, 0x6ae7, 0x6aec, 0x6af0,
-0x6af1, 0x6af2, 0x6afc, 0x6afd, 0x6b02, 0x6b03, 0x6b06, 0x6b07,
-0x6b09, 0x6b0f, 0x6b10, 0x6b11, 0x6b17, 0x6b1b, 0x6b1e, 0x6b24,
-0x6b28, 0x6b2b, 0x6b2c, 0x6b2f, 0x6b35, 0x6b36, 0x6b3b, 0x6b3f,
-0x6b46, 0x6b4a, 0x6b4d, 0x6b52, 0x6b56, 0x6b58, 0x6b5d, 0x6b60,
-0x6b67, 0x6b6b, 0x6b6e, 0x6b70, 0x6b75, 0x6b7d,
-94, 0x4621,
-0x6b7e, 0x6b82, 0x6b85, 0x6b97, 0x6b9b, 0x6b9f, 0x6ba0, 0x6ba2,
-0x6ba3, 0x6ba8, 0x6ba9, 0x6bac, 0x6bad, 0x6bae, 0x6bb0, 0x6bb8,
-0x6bb9, 0x6bbd, 0x6bbe, 0x6bc3, 0x6bc4, 0x6bc9, 0x6bcc, 0x6bd6,
-0x6bda, 0x6be1, 0x6be3, 0x6be6, 0x6be7, 0x6bee, 0x6bf1, 0x6bf7,
-0x6bf9, 0x6bff, 0x6c02, 0x6c04, 0x6c05, 0x6c09, 0x6c0d, 0x6c0e,
-0x6c10, 0x6c12, 0x6c19, 0x6c1f, 0x6c26, 0x6c27, 0x6c28, 0x6c2c,
-0x6c2e, 0x6c33, 0x6c35, 0x6c36, 0x6c3a, 0x6c3b, 0x6c3f, 0x6c4a,
-0x6c4b, 0x6c4d, 0x6c4f, 0x6c52, 0x6c54, 0x6c59, 0x6c5b, 0x6c5c,
-0x6c6b, 0x6c6d, 0x6c6f, 0x6c74, 0x6c76, 0x6c78, 0x6c79, 0x6c7b,
-0x6c85, 0x6c86, 0x6c87, 0x6c89, 0x6c94, 0x6c95, 0x6c97, 0x6c98,
-0x6c9c, 0x6c9f, 0x6cb0, 0x6cb2, 0x6cb4, 0x6cc2, 0x6cc6, 0x6ccd,
-0x6ccf, 0x6cd0, 0x6cd1, 0x6cd2, 0x6cd4, 0x6cd6,
-94, 0x4721,
-0x6cda, 0x6cdc, 0x6ce0, 0x6ce7, 0x6ce9, 0x6ceb, 0x6cec, 0x6cee,
-0x6cf2, 0x6cf4, 0x6d04, 0x6d07, 0x6d0a, 0x6d0e, 0x6d0f, 0x6d11,
-0x6d13, 0x6d1a, 0x6d26, 0x6d27, 0x6d28, 0x6c67, 0x6d2e, 0x6d2f,
-0x6d31, 0x6d39, 0x6d3c, 0x6d3f, 0x6d57, 0x6d5e, 0x6d5f, 0x6d61,
-0x6d65, 0x6d67, 0x6d6f, 0x6d70, 0x6d7c, 0x6d82, 0x6d87, 0x6d91,
-0x6d92, 0x6d94, 0x6d96, 0x6d97, 0x6d98, 0x6daa, 0x6dac, 0x6db4,
-0x6db7, 0x6db9, 0x6dbd, 0x6dbf, 0x6dc4, 0x6dc8, 0x6dca, 0x6dce,
-0x6dcf, 0x6dd6, 0x6ddb, 0x6ddd, 0x6ddf, 0x6de0, 0x6de2, 0x6de5,
-0x6de9, 0x6def, 0x6df0, 0x6df4, 0x6df6, 0x6dfc, 0x6e00, 0x6e04,
-0x6e1e, 0x6e22, 0x6e27, 0x6e32, 0x6e36, 0x6e39, 0x6e3b, 0x6e3c,
-0x6e44, 0x6e45, 0x6e48, 0x6e49, 0x6e4b, 0x6e4f, 0x6e51, 0x6e52,
-0x6e53, 0x6e54, 0x6e57, 0x6e5c, 0x6e5d, 0x6e5e,
-94, 0x4821,
-0x6e62, 0x6e63, 0x6e68, 0x6e73, 0x6e7b, 0x6e7d, 0x6e8d, 0x6e93,
-0x6e99, 0x6ea0, 0x6ea7, 0x6ead, 0x6eae, 0x6eb1, 0x6eb3, 0x6ebb,
-0x6ebf, 0x6ec0, 0x6ec1, 0x6ec3, 0x6ec7, 0x6ec8, 0x6eca, 0x6ecd,
-0x6ece, 0x6ecf, 0x6eeb, 0x6eed, 0x6eee, 0x6ef9, 0x6efb, 0x6efd,
-0x6f04, 0x6f08, 0x6f0a, 0x6f0c, 0x6f0d, 0x6f16, 0x6f18, 0x6f1a,
-0x6f1b, 0x6f26, 0x6f29, 0x6f2a, 0x6f2f, 0x6f30, 0x6f33, 0x6f36,
-0x6f3b, 0x6f3c, 0x6f2d, 0x6f4f, 0x6f51, 0x6f52, 0x6f53, 0x6f57,
-0x6f59, 0x6f5a, 0x6f5d, 0x6f5e, 0x6f61, 0x6f62, 0x6f68, 0x6f6c,
-0x6f7d, 0x6f7e, 0x6f83, 0x6f87, 0x6f88, 0x6f8b, 0x6f8c, 0x6f8d,
-0x6f90, 0x6f92, 0x6f93, 0x6f94, 0x6f96, 0x6f9a, 0x6f9f, 0x6fa0,
-0x6fa5, 0x6fa6, 0x6fa7, 0x6fa8, 0x6fae, 0x6faf, 0x6fb0, 0x6fb5,
-0x6fb6, 0x6fbc, 0x6fc5, 0x6fc7, 0x6fc8, 0x6fca,
-94, 0x4921,
-0x6fda, 0x6fde, 0x6fe8, 0x6fe9, 0x6ff0, 0x6ff5, 0x6ff9, 0x6ffc,
-0x6ffd, 0x7000, 0x7005, 0x7006, 0x7007, 0x700d, 0x7017, 0x7020,
-0x7023, 0x702f, 0x7034, 0x7037, 0x7039, 0x703c, 0x7043, 0x7044,
-0x7048, 0x7049, 0x704a, 0x704b, 0x7054, 0x7055, 0x705d, 0x705e,
-0x704e, 0x7064, 0x7065, 0x706c, 0x706e, 0x7075, 0x7076, 0x707e,
-0x7081, 0x7085, 0x7086, 0x7094, 0x7095, 0x7096, 0x7097, 0x7098,
-0x709b, 0x70a4, 0x70ab, 0x70b0, 0x70b1, 0x70b4, 0x70b7, 0x70ca,
-0x70d1, 0x70d3, 0x70d4, 0x70d5, 0x70d6, 0x70d8, 0x70dc, 0x70e4,
-0x70fa, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x710b, 0x710c,
-0x710f, 0x711e, 0x7120, 0x712b, 0x712d, 0x712f, 0x7130, 0x7131,
-0x7138, 0x7141, 0x7145, 0x7146, 0x7147, 0x714a, 0x714b, 0x7150,
-0x7152, 0x7157, 0x715a, 0x715c, 0x715e, 0x7160,
-94, 0x4a21,
-0x7168, 0x7179, 0x7180, 0x7185, 0x7187, 0x718c, 0x7192, 0x719a,
-0x719b, 0x71a0, 0x71a2, 0x71af, 0x71b0, 0x71b2, 0x71b3, 0x71ba,
-0x71bf, 0x71c0, 0x71c1, 0x71c4, 0x71cb, 0x71cc, 0x71d3, 0x71d6,
-0x71d9, 0x71da, 0x71dc, 0x71f8, 0x71fe, 0x7200, 0x7207, 0x7208,
-0x7209, 0x7213, 0x7217, 0x721a, 0x721d, 0x721f, 0x7224, 0x722b,
-0x722f, 0x7234, 0x7238, 0x7239, 0x7241, 0x7242, 0x7243, 0x7245,
-0x724e, 0x724f, 0x7250, 0x7253, 0x7255, 0x7256, 0x725a, 0x725c,
-0x725e, 0x7260, 0x7263, 0x7268, 0x726b, 0x726e, 0x726f, 0x7271,
-0x7277, 0x7278, 0x727b, 0x727c, 0x727f, 0x7284, 0x7289, 0x728d,
-0x728e, 0x7293, 0x729b, 0x72a8, 0x72ad, 0x72ae, 0x72b1, 0x72b4,
-0x72be, 0x72c1, 0x72c7, 0x72c9, 0x72cc, 0x72d5, 0x72d6, 0x72d8,
-0x72df, 0x72e5, 0x72f3, 0x72f4, 0x72fa, 0x72fb,
-94, 0x4b21,
-0x72fe, 0x7302, 0x7304, 0x7305, 0x7307, 0x730b, 0x730d, 0x7312,
-0x7313, 0x7318, 0x7319, 0x731e, 0x7322, 0x7324, 0x7327, 0x7328,
-0x732c, 0x7331, 0x7332, 0x7335, 0x733a, 0x733b, 0x733d, 0x7343,
-0x734d, 0x7350, 0x7352, 0x7356, 0x7358, 0x735d, 0x735e, 0x735f,
-0x7360, 0x7366, 0x7367, 0x7369, 0x736b, 0x736c, 0x736e, 0x736f,
-0x7371, 0x7377, 0x7379, 0x737c, 0x7380, 0x7381, 0x7383, 0x7385,
-0x7386, 0x738e, 0x7390, 0x7393, 0x7395, 0x7397, 0x7398, 0x739c,
-0x739e, 0x739f, 0x73a0, 0x73a2, 0x73a5, 0x73a6, 0x73aa, 0x73ab,
-0x73ad, 0x73b5, 0x73b7, 0x73b9, 0x73bc, 0x73bd, 0x73bf, 0x73c5,
-0x73c6, 0x73c9, 0x73cb, 0x73cc, 0x73cf, 0x73d2, 0x73d3, 0x73d6,
-0x73d9, 0x73dd, 0x73e1, 0x73e3, 0x73e6, 0x73e7, 0x73e9, 0x73f4,
-0x73f5, 0x73f7, 0x73f9, 0x73fa, 0x73fb, 0x73fd,
-94, 0x4c21,
-0x73ff, 0x7400, 0x7401, 0x7404, 0x7407, 0x740a, 0x7411, 0x741a,
-0x741b, 0x7424, 0x7426, 0x7428, 0x7429, 0x742a, 0x742b, 0x742c,
-0x742d, 0x742e, 0x742f, 0x7430, 0x7431, 0x7439, 0x7440, 0x7443,
-0x7444, 0x7446, 0x7447, 0x744b, 0x744d, 0x7451, 0x7452, 0x7457,
-0x745d, 0x7462, 0x7466, 0x7467, 0x7468, 0x746b, 0x746d, 0x746e,
-0x7471, 0x7472, 0x7480, 0x7481, 0x7485, 0x7486, 0x7487, 0x7489,
-0x748f, 0x7490, 0x7491, 0x7492, 0x7498, 0x7499, 0x749a, 0x749c,
-0x749f, 0x74a0, 0x74a1, 0x74a3, 0x74a6, 0x74a8, 0x74a9, 0x74aa,
-0x74ab, 0x74ae, 0x74af, 0x74b1, 0x74b2, 0x74b5, 0x74b9, 0x74bb,
-0x74bf, 0x74c8, 0x74c9, 0x74cc, 0x74d0, 0x74d3, 0x74d8, 0x74da,
-0x74db, 0x74de, 0x74df, 0x74e4, 0x74e8, 0x74ea, 0x74eb, 0x74ef,
-0x74f4, 0x74fa, 0x74fb, 0x74fc, 0x74ff, 0x7506,
-94, 0x4d21,
-0x7512, 0x7516, 0x7517, 0x7520, 0x7521, 0x7524, 0x7527, 0x7529,
-0x752a, 0x752f, 0x7536, 0x7539, 0x753d, 0x753e, 0x753f, 0x7540,
-0x7543, 0x7547, 0x7548, 0x754e, 0x7550, 0x7552, 0x7557, 0x755e,
-0x755f, 0x7561, 0x756f, 0x7571, 0x7579, 0x757a, 0x757b, 0x757c,
-0x757d, 0x757e, 0x7581, 0x7585, 0x7590, 0x7592, 0x7593, 0x7595,
-0x7599, 0x759c, 0x75a2, 0x75a4, 0x75b4, 0x75ba, 0x75bf, 0x75c0,
-0x75c1, 0x75c4, 0x75c6, 0x75cc, 0x75ce, 0x75cf, 0x75d7, 0x75dc,
-0x75df, 0x75e0, 0x75e1, 0x75e4, 0x75e7, 0x75ec, 0x75ee, 0x75ef,
-0x75f1, 0x75f9, 0x7600, 0x7602, 0x7603, 0x7604, 0x7607, 0x7608,
-0x760a, 0x760c, 0x760f, 0x7612, 0x7613, 0x7615, 0x7616, 0x7619,
-0x761b, 0x761c, 0x761d, 0x761e, 0x7623, 0x7625, 0x7626, 0x7629,
-0x762d, 0x7632, 0x7633, 0x7635, 0x7638, 0x7639,
-94, 0x4e21,
-0x763a, 0x763c, 0x764a, 0x7640, 0x7641, 0x7643, 0x7644, 0x7645,
-0x7649, 0x764b, 0x7655, 0x7659, 0x765f, 0x7664, 0x7665, 0x766d,
-0x766e, 0x766f, 0x7671, 0x7674, 0x7681, 0x7685, 0x768c, 0x768d,
-0x7695, 0x769b, 0x769c, 0x769d, 0x769f, 0x76a0, 0x76a2, 0x76a3,
-0x76a4, 0x76a5, 0x76a6, 0x76a7, 0x76a8, 0x76aa, 0x76ad, 0x76bd,
-0x76c1, 0x76c5, 0x76c9, 0x76cb, 0x76cc, 0x76ce, 0x76d4, 0x76d9,
-0x76e0, 0x76e6, 0x76e8, 0x76ec, 0x76f0, 0x76f1, 0x76f6, 0x76f9,
-0x76fc, 0x7700, 0x7706, 0x770a, 0x770e, 0x7712, 0x7714, 0x7715,
-0x7717, 0x7719, 0x771a, 0x771c, 0x7722, 0x7728, 0x772d, 0x772e,
-0x772f, 0x7734, 0x7735, 0x7736, 0x7739, 0x773d, 0x773e, 0x7742,
-0x7745, 0x7746, 0x774a, 0x774d, 0x774e, 0x774f, 0x7752, 0x7756,
-0x7757, 0x775c, 0x775e, 0x775f, 0x7760, 0x7762,
-94, 0x4f21,
-0x7764, 0x7767, 0x776a, 0x776c, 0x7770, 0x7772, 0x7773, 0x7774,
-0x777a, 0x777d, 0x7780, 0x7784, 0x778c, 0x778d, 0x7794, 0x7795,
-0x7796, 0x779a, 0x779f, 0x77a2, 0x77a7, 0x77aa, 0x77ae, 0x77af,
-0x77b1, 0x77b5, 0x77be, 0x77c3, 0x77c9, 0x77d1, 0x77d2, 0x77d5,
-0x77d9, 0x77de, 0x77df, 0x77e0, 0x77e4, 0x77e6, 0x77ea, 0x77ec,
-0x77f0, 0x77f1, 0x77f4, 0x77f8, 0x77fb, 0x7805, 0x7806, 0x7809,
-0x780d, 0x780e, 0x7811, 0x781d, 0x7821, 0x7822, 0x7823, 0x782d,
-0x782e, 0x7830, 0x7835, 0x7837, 0x7843, 0x7844, 0x7847, 0x7848,
-0x784c, 0x784e, 0x7852, 0x785c, 0x785e, 0x7860, 0x7861, 0x7863,
-0x7864, 0x7868, 0x786a, 0x786e, 0x787a, 0x787e, 0x788a, 0x788f,
-0x7894, 0x7898, 0x78a1, 0x789d, 0x789e, 0x789f, 0x78a4, 0x78a8,
-0x78ac, 0x78ad, 0x78b0, 0x78b1, 0x78b2, 0x78b3,
-94, 0x5021,
-0x78bb, 0x78bd, 0x78bf, 0x78c7, 0x78c8, 0x78c9, 0x78cc, 0x78ce,
-0x78d2, 0x78d3, 0x78d5, 0x78d6, 0x78e4, 0x78db, 0x78df, 0x78e0,
-0x78e1, 0x78e6, 0x78ea, 0x78f2, 0x78f3, 0x7900, 0x78f6, 0x78f7,
-0x78fa, 0x78fb, 0x78ff, 0x7906, 0x790c, 0x7910, 0x791a, 0x791c,
-0x791e, 0x791f, 0x7920, 0x7925, 0x7927, 0x7929, 0x792d, 0x7931,
-0x7934, 0x7935, 0x793b, 0x793d, 0x793f, 0x7944, 0x7945, 0x7946,
-0x794a, 0x794b, 0x794f, 0x7951, 0x7954, 0x7958, 0x795b, 0x795c,
-0x7967, 0x7969, 0x796b, 0x7972, 0x7979, 0x797b, 0x797c, 0x797e,
-0x798b, 0x798c, 0x7991, 0x7993, 0x7994, 0x7995, 0x7996, 0x7998,
-0x799b, 0x799c, 0x79a1, 0x79a8, 0x79a9, 0x79ab, 0x79af, 0x79b1,
-0x79b4, 0x79b8, 0x79bb, 0x79c2, 0x79c4, 0x79c7, 0x79c8, 0x79ca,
-0x79cf, 0x79d4, 0x79d6, 0x79da, 0x79dd, 0x79de,
-94, 0x5121,
-0x79e0, 0x79e2, 0x79e5, 0x79ea, 0x79eb, 0x79ed, 0x79f1, 0x79f8,
-0x79fc, 0x7a02, 0x7a03, 0x7a07, 0x7a09, 0x7a0a, 0x7a0c, 0x7a11,
-0x7a15, 0x7a1b, 0x7a1e, 0x7a21, 0x7a27, 0x7a2b, 0x7a2d, 0x7a2f,
-0x7a30, 0x7a34, 0x7a35, 0x7a38, 0x7a39, 0x7a3a, 0x7a44, 0x7a45,
-0x7a47, 0x7a48, 0x7a4c, 0x7a55, 0x7a56, 0x7a59, 0x7a5c, 0x7a5d,
-0x7a5f, 0x7a60, 0x7a65, 0x7a67, 0x7a6a, 0x7a6d, 0x7a75, 0x7a78,
-0x7a7e, 0x7a80, 0x7a82, 0x7a85, 0x7a86, 0x7a8a, 0x7a8b, 0x7a90,
-0x7a91, 0x7a94, 0x7a9e, 0x7aa0, 0x7aa3, 0x7aac, 0x7ab3, 0x7ab5,
-0x7ab9, 0x7abb, 0x7abc, 0x7ac6, 0x7ac9, 0x7acc, 0x7ace, 0x7ad1,
-0x7adb, 0x7ae8, 0x7ae9, 0x7aeb, 0x7aec, 0x7af1, 0x7af4, 0x7afb,
-0x7afd, 0x7afe, 0x7b07, 0x7b14, 0x7b1f, 0x7b23, 0x7b27, 0x7b29,
-0x7b2a, 0x7b2b, 0x7b2d, 0x7b2e, 0x7b2f, 0x7b30,
-94, 0x5221,
-0x7b31, 0x7b34, 0x7b3d, 0x7b3f, 0x7b40, 0x7b41, 0x7b47, 0x7b4e,
-0x7b55, 0x7b60, 0x7b64, 0x7b66, 0x7b69, 0x7b6a, 0x7b6d, 0x7b6f,
-0x7b72, 0x7b73, 0x7b77, 0x7b84, 0x7b89, 0x7b8e, 0x7b90, 0x7b91,
-0x7b96, 0x7b9b, 0x7b9e, 0x7ba0, 0x7ba5, 0x7bac, 0x7baf, 0x7bb0,
-0x7bb2, 0x7bb5, 0x7bb6, 0x7bba, 0x7bbb, 0x7bbc, 0x7bbd, 0x7bc2,
-0x7bc5, 0x7bc8, 0x7bca, 0x7bd4, 0x7bd6, 0x7bd7, 0x7bd9, 0x7bda,
-0x7bdb, 0x7be8, 0x7bea, 0x7bf2, 0x7bf4, 0x7bf5, 0x7bf8, 0x7bf9,
-0x7bfa, 0x7bfc, 0x7bfe, 0x7c01, 0x7c02, 0x7c03, 0x7c04, 0x7c06,
-0x7c09, 0x7c0b, 0x7c0c, 0x7c0e, 0x7c0f, 0x7c19, 0x7c1b, 0x7c20,
-0x7c25, 0x7c26, 0x7c28, 0x7c2c, 0x7c31, 0x7c33, 0x7c34, 0x7c36,
-0x7c39, 0x7c3a, 0x7c46, 0x7c4a, 0x7c55, 0x7c51, 0x7c52, 0x7c53,
-0x7c59, 0x7c5a, 0x7c5b, 0x7c5c, 0x7c5d, 0x7c5e,
-94, 0x5321,
-0x7c61, 0x7c63, 0x7c67, 0x7c69, 0x7c6d, 0x7c6e, 0x7c70, 0x7c72,
-0x7c79, 0x7c7c, 0x7c7d, 0x7c86, 0x7c87, 0x7c8f, 0x7c94, 0x7c9e,
-0x7ca0, 0x7ca6, 0x7cb0, 0x7cb6, 0x7cb7, 0x7cba, 0x7cbb, 0x7cbc,
-0x7cbf, 0x7cc4, 0x7cc7, 0x7cc8, 0x7cc9, 0x7ccd, 0x7ccf, 0x7cd3,
-0x7cd4, 0x7cd5, 0x7cd7, 0x7cd9, 0x7cda, 0x7cdd, 0x7ce6, 0x7ce9,
-0x7ceb, 0x7cf5, 0x7d03, 0x7d07, 0x7d08, 0x7d09, 0x7d0f, 0x7d11,
-0x7d12, 0x7d13, 0x7d16, 0x7d1d, 0x7d1e, 0x7d23, 0x7d26, 0x7d2a,
-0x7d2d, 0x7d31, 0x7d3c, 0x7d3d, 0x7d3e, 0x7d40, 0x7d41, 0x7d47,
-0x7d48, 0x7d4d, 0x7d51, 0x7d53, 0x7d57, 0x7d59, 0x7d5a, 0x7d5c,
-0x7d5d, 0x7d65, 0x7d67, 0x7d6a, 0x7d70, 0x7d78, 0x7d7a, 0x7d7b,
-0x7d7f, 0x7d81, 0x7d82, 0x7d83, 0x7d85, 0x7d86, 0x7d88, 0x7d8b,
-0x7d8c, 0x7d8d, 0x7d91, 0x7d96, 0x7d97, 0x7d9d,
-94, 0x5421,
-0x7d9e, 0x7da6, 0x7da7, 0x7daa, 0x7db3, 0x7db6, 0x7db7, 0x7db9,
-0x7dc2, 0x7dc3, 0x7dc4, 0x7dc5, 0x7dc6, 0x7dcc, 0x7dcd, 0x7dce,
-0x7dd7, 0x7dd9, 0x7e00, 0x7de2, 0x7de5, 0x7de6, 0x7dea, 0x7deb,
-0x7ded, 0x7df1, 0x7df5, 0x7df6, 0x7df9, 0x7dfa, 0x7e08, 0x7e10,
-0x7e11, 0x7e15, 0x7e17, 0x7e1c, 0x7e1d, 0x7e20, 0x7e27, 0x7e28,
-0x7e2c, 0x7e2d, 0x7e2f, 0x7e33, 0x7e36, 0x7e3f, 0x7e44, 0x7e45,
-0x7e47, 0x7e4e, 0x7e50, 0x7e52, 0x7e58, 0x7e5f, 0x7e61, 0x7e62,
-0x7e65, 0x7e6b, 0x7e6e, 0x7e6f, 0x7e73, 0x7e78, 0x7e7e, 0x7e81,
-0x7e86, 0x7e87, 0x7e8a, 0x7e8d, 0x7e91, 0x7e95, 0x7e98, 0x7e9a,
-0x7e9d, 0x7e9e, 0x7f3c, 0x7f3b, 0x7f3d, 0x7f3e, 0x7f3f, 0x7f43,
-0x7f44, 0x7f47, 0x7f4f, 0x7f52, 0x7f53, 0x7f5b, 0x7f5c, 0x7f5d,
-0x7f61, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f6d,
-94, 0x5521,
-0x7f71, 0x7f7d, 0x7f7e, 0x7f7f, 0x7f80, 0x7f8b, 0x7f8d, 0x7f8f,
-0x7f90, 0x7f91, 0x7f96, 0x7f97, 0x7f9c, 0x7fa1, 0x7fa2, 0x7fa6,
-0x7faa, 0x7fad, 0x7fb4, 0x7fbc, 0x7fbf, 0x7fc0, 0x7fc3, 0x7fc8,
-0x7fce, 0x7fcf, 0x7fdb, 0x7fdf, 0x7fe3, 0x7fe5, 0x7fe8, 0x7fec,
-0x7fee, 0x7fef, 0x7ff2, 0x7ffa, 0x7ffd, 0x7ffe, 0x7fff, 0x8007,
-0x8008, 0x800a, 0x800d, 0x800e, 0x800f, 0x8011, 0x8013, 0x8014,
-0x8016, 0x801d, 0x801e, 0x801f, 0x8020, 0x8024, 0x8026, 0x802c,
-0x802e, 0x8030, 0x8034, 0x8035, 0x8037, 0x8039, 0x803a, 0x803c,
-0x803e, 0x8040, 0x8044, 0x8060, 0x8064, 0x8066, 0x806d, 0x8071,
-0x8075, 0x8081, 0x8088, 0x808e, 0x809c, 0x809e, 0x80a6, 0x80a7,
-0x80ab, 0x80b8, 0x80b9, 0x80c8, 0x80cd, 0x80cf, 0x80d2, 0x80d4,
-0x80d5, 0x80d7, 0x80d8, 0x80e0, 0x80ed, 0x80ee,
-94, 0x5621,
-0x80f0, 0x80f2, 0x80f3, 0x80f6, 0x80f9, 0x80fa, 0x80fe, 0x8103,
-0x810b, 0x8116, 0x8117, 0x8118, 0x811c, 0x811e, 0x8120, 0x8124,
-0x8127, 0x812c, 0x8130, 0x8135, 0x813a, 0x813c, 0x8145, 0x8147,
-0x814a, 0x814c, 0x8152, 0x8157, 0x8160, 0x8161, 0x8167, 0x8168,
-0x8169, 0x816d, 0x816f, 0x8177, 0x8181, 0x8190, 0x8184, 0x8185,
-0x8186, 0x818b, 0x818e, 0x8196, 0x8198, 0x819b, 0x819e, 0x81a2,
-0x81ae, 0x81b2, 0x81b4, 0x81bb, 0x81cb, 0x81c3, 0x81c5, 0x81ca,
-0x81ce, 0x81cf, 0x81d5, 0x81d7, 0x81db, 0x81dd, 0x81de, 0x81e1,
-0x81e4, 0x81eb, 0x81ec, 0x81f0, 0x81f1, 0x81f2, 0x81f5, 0x81f6,
-0x81f8, 0x81f9, 0x81fd, 0x81ff, 0x8200, 0x8203, 0x820f, 0x8213,
-0x8214, 0x8219, 0x821a, 0x821d, 0x8221, 0x8222, 0x8228, 0x8232,
-0x8234, 0x823a, 0x8243, 0x8244, 0x8245, 0x8246,
-94, 0x5721,
-0x824b, 0x824e, 0x824f, 0x8251, 0x8256, 0x825c, 0x8260, 0x8263,
-0x8267, 0x826d, 0x8274, 0x827b, 0x827d, 0x827f, 0x8280, 0x8281,
-0x8283, 0x8284, 0x8287, 0x8289, 0x828a, 0x828e, 0x8291, 0x8294,
-0x8296, 0x8298, 0x829a, 0x829b, 0x82a0, 0x82a1, 0x82a3, 0x82a4,
-0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ae, 0x82b0, 0x82b2, 0x82b4,
-0x82b7, 0x82ba, 0x82bc, 0x82be, 0x82bf, 0x82c6, 0x82d0, 0x82d5,
-0x82da, 0x82e0, 0x82e2, 0x82e4, 0x82e8, 0x82ea, 0x82ed, 0x82ef,
-0x82f6, 0x82f7, 0x82fd, 0x82fe, 0x8300, 0x8301, 0x8307, 0x8308,
-0x830a, 0x830b, 0x8354, 0x831b, 0x831d, 0x831e, 0x831f, 0x8321,
-0x8322, 0x832c, 0x832d, 0x832e, 0x8330, 0x8333, 0x8337, 0x833a,
-0x833c, 0x833d, 0x8342, 0x8343, 0x8344, 0x8347, 0x834d, 0x834e,
-0x8351, 0x8355, 0x8356, 0x8357, 0x8370, 0x8378,
-94, 0x5821,
-0x837d, 0x837f, 0x8380, 0x8382, 0x8384, 0x8386, 0x838d, 0x8392,
-0x8394, 0x8395, 0x8398, 0x8399, 0x839b, 0x839c, 0x839d, 0x83a6,
-0x83a7, 0x83a9, 0x83ac, 0x83be, 0x83bf, 0x83c0, 0x83c7, 0x83c9,
-0x83cf, 0x83d0, 0x83d1, 0x83d4, 0x83dd, 0x8353, 0x83e8, 0x83ea,
-0x83f6, 0x83f8, 0x83f9, 0x83fc, 0x8401, 0x8406, 0x840a, 0x840f,
-0x8411, 0x8415, 0x8419, 0x83ad, 0x842f, 0x8439, 0x8445, 0x8447,
-0x8448, 0x844a, 0x844d, 0x844f, 0x8451, 0x8452, 0x8456, 0x8458,
-0x8459, 0x845a, 0x845c, 0x8460, 0x8464, 0x8465, 0x8467, 0x846a,
-0x8470, 0x8473, 0x8474, 0x8476, 0x8478, 0x847c, 0x847d, 0x8481,
-0x8485, 0x8492, 0x8493, 0x8495, 0x849e, 0x84a6, 0x84a8, 0x84a9,
-0x84aa, 0x84af, 0x84b1, 0x84b4, 0x84ba, 0x84bd, 0x84be, 0x84c0,
-0x84c2, 0x84c7, 0x84c8, 0x84cc, 0x84cf, 0x84d3,
-94, 0x5921,
-0x84dc, 0x84e7, 0x84ea, 0x84ef, 0x84f0, 0x84f1, 0x84f2, 0x84f7,
-0x8532, 0x84fa, 0x84fb, 0x84fd, 0x8502, 0x8503, 0x8507, 0x850c,
-0x850e, 0x8510, 0x851c, 0x851e, 0x8522, 0x8523, 0x8524, 0x8525,
-0x8527, 0x852a, 0x852b, 0x852f, 0x8533, 0x8534, 0x8536, 0x853f,
-0x8546, 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8556, 0x8559,
-0x855c, 0x855d, 0x855e, 0x855f, 0x8560, 0x8561, 0x8562, 0x8564,
-0x856b, 0x856f, 0x8579, 0x857a, 0x857b, 0x857d, 0x857f, 0x8581,
-0x8585, 0x8586, 0x8589, 0x858b, 0x858c, 0x858f, 0x8593, 0x8598,
-0x859d, 0x859f, 0x85a0, 0x85a2, 0x85a5, 0x85a7, 0x85b4, 0x85b6,
-0x85b7, 0x85b8, 0x85bc, 0x85bd, 0x85be, 0x85bf, 0x85c2, 0x85c7,
-0x85ca, 0x85cb, 0x85ce, 0x85ad, 0x85d8, 0x85da, 0x85df, 0x85e0,
-0x85e6, 0x85e8, 0x85ed, 0x85f3, 0x85f6, 0x85fc,
-94, 0x5a21,
-0x85ff, 0x8600, 0x8604, 0x8605, 0x860d, 0x860e, 0x8610, 0x8611,
-0x8612, 0x8618, 0x8619, 0x861b, 0x861e, 0x8621, 0x8627, 0x8629,
-0x8636, 0x8638, 0x863a, 0x863c, 0x863d, 0x8640, 0x8642, 0x8646,
-0x8652, 0x8653, 0x8656, 0x8657, 0x8658, 0x8659, 0x865d, 0x8660,
-0x8661, 0x8662, 0x8663, 0x8664, 0x8669, 0x866c, 0x866f, 0x8675,
-0x8676, 0x8677, 0x867a, 0x868d, 0x8691, 0x8696, 0x8698, 0x869a,
-0x869c, 0x86a1, 0x86a6, 0x86a7, 0x86a8, 0x86ad, 0x86b1, 0x86b3,
-0x86b4, 0x86b5, 0x86b7, 0x86b8, 0x86b9, 0x86bf, 0x86c0, 0x86c1,
-0x86c3, 0x86c5, 0x86d1, 0x86d2, 0x86d5, 0x86d7, 0x86da, 0x86dc,
-0x86e0, 0x86e3, 0x86e5, 0x86e7, 0x8688, 0x86fa, 0x86fc, 0x86fd,
-0x8704, 0x8705, 0x8707, 0x870b, 0x870e, 0x870f, 0x8710, 0x8713,
-0x8714, 0x8719, 0x871e, 0x871f, 0x8721, 0x8723,
-94, 0x5b21,
-0x8728, 0x872e, 0x872f, 0x8731, 0x8732, 0x8739, 0x873a, 0x873c,
-0x873d, 0x873e, 0x8740, 0x8743, 0x8745, 0x874d, 0x8758, 0x875d,
-0x8761, 0x8764, 0x8765, 0x876f, 0x8771, 0x8772, 0x877b, 0x8783,
-0x8784, 0x8785, 0x8786, 0x8787, 0x8788, 0x8789, 0x878b, 0x878c,
-0x8790, 0x8793, 0x8795, 0x8797, 0x8798, 0x8799, 0x879e, 0x87a0,
-0x87a3, 0x87a7, 0x87ac, 0x87ad, 0x87ae, 0x87b1, 0x87b5, 0x87be,
-0x87bf, 0x87c1, 0x87c8, 0x87c9, 0x87ca, 0x87ce, 0x87d5, 0x87d6,
-0x87d9, 0x87da, 0x87dc, 0x87df, 0x87e2, 0x87e3, 0x87e4, 0x87ea,
-0x87eb, 0x87ed, 0x87f1, 0x87f3, 0x87f8, 0x87fa, 0x87ff, 0x8801,
-0x8803, 0x8806, 0x8809, 0x880a, 0x880b, 0x8810, 0x8819, 0x8812,
-0x8813, 0x8814, 0x8818, 0x881a, 0x881b, 0x881c, 0x881e, 0x881f,
-0x8828, 0x882d, 0x882e, 0x8830, 0x8832, 0x8835,
-94, 0x5c21,
-0x883a, 0x883c, 0x8841, 0x8843, 0x8845, 0x8848, 0x8849, 0x884a,
-0x884b, 0x884e, 0x8851, 0x8855, 0x8856, 0x8858, 0x885a, 0x885c,
-0x885f, 0x8860, 0x8864, 0x8869, 0x8871, 0x8879, 0x887b, 0x8880,
-0x8898, 0x889a, 0x889b, 0x889c, 0x889f, 0x88a0, 0x88a8, 0x88aa,
-0x88ba, 0x88bd, 0x88be, 0x88c0, 0x88ca, 0x88cb, 0x88cc, 0x88cd,
-0x88ce, 0x88d1, 0x88d2, 0x88d3, 0x88db, 0x88de, 0x88e7, 0x88ef,
-0x88f0, 0x88f1, 0x88f5, 0x88f7, 0x8901, 0x8906, 0x890d, 0x890e,
-0x890f, 0x8915, 0x8916, 0x8918, 0x8919, 0x891a, 0x891c, 0x8920,
-0x8926, 0x8927, 0x8928, 0x8930, 0x8931, 0x8932, 0x8935, 0x8939,
-0x893a, 0x893e, 0x8940, 0x8942, 0x8945, 0x8946, 0x8949, 0x894f,
-0x8952, 0x8957, 0x895a, 0x895b, 0x895c, 0x8961, 0x8962, 0x8963,
-0x896b, 0x896e, 0x8970, 0x8973, 0x8975, 0x897a,
-94, 0x5d21,
-0x897b, 0x897c, 0x897d, 0x8989, 0x898d, 0x8990, 0x8994, 0x8995,
-0x899b, 0x899c, 0x899f, 0x89a0, 0x89a5, 0x89b0, 0x89b4, 0x89b5,
-0x89b6, 0x89b7, 0x89bc, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8,
-0x89e5, 0x89e9, 0x89eb, 0x89ed, 0x89f1, 0x89f3, 0x89f6, 0x89f9,
-0x89fd, 0x89ff, 0x8a04, 0x8a05, 0x8a07, 0x8a0f, 0x8a11, 0x8a12,
-0x8a14, 0x8a15, 0x8a1e, 0x8a20, 0x8a22, 0x8a24, 0x8a26, 0x8a2b,
-0x8a2c, 0x8a2f, 0x8a35, 0x8a37, 0x8a3d, 0x8a3e, 0x8a40, 0x8a43,
-0x8a45, 0x8a47, 0x8a49, 0x8a4d, 0x8a4e, 0x8a53, 0x8a56, 0x8a57,
-0x8a58, 0x8a5c, 0x8a5d, 0x8a61, 0x8a65, 0x8a67, 0x8a75, 0x8a76,
-0x8a77, 0x8a79, 0x8a7a, 0x8a7b, 0x8a7e, 0x8a7f, 0x8a80, 0x8a83,
-0x8a86, 0x8a8b, 0x8a8f, 0x8a90, 0x8a92, 0x8a96, 0x8a97, 0x8a99,
-0x8a9f, 0x8aa7, 0x8aa9, 0x8aae, 0x8aaf, 0x8ab3,
-94, 0x5e21,
-0x8ab6, 0x8ab7, 0x8abb, 0x8abe, 0x8ac3, 0x8ac6, 0x8ac8, 0x8ac9,
-0x8aca, 0x8ad1, 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad7, 0x8add, 0x8adf,
-0x8aec, 0x8af0, 0x8af4, 0x8af5, 0x8af6, 0x8afc, 0x8aff, 0x8b05,
-0x8b06, 0x8b0b, 0x8b11, 0x8b1c, 0x8b1e, 0x8b1f, 0x8b0a, 0x8b2d,
-0x8b30, 0x8b37, 0x8b3c, 0x8b42, 0x8b43, 0x8b44, 0x8b45, 0x8b46,
-0x8b48, 0x8b52, 0x8b53, 0x8b54, 0x8b59, 0x8b4d, 0x8b5e, 0x8b63,
-0x8b6d, 0x8b76, 0x8b78, 0x8b79, 0x8b7c, 0x8b7e, 0x8b81, 0x8b84,
-0x8b85, 0x8b8b, 0x8b8d, 0x8b8f, 0x8b94, 0x8b95, 0x8b9c, 0x8b9e,
-0x8b9f, 0x8c38, 0x8c39, 0x8c3d, 0x8c3e, 0x8c45, 0x8c47, 0x8c49,
-0x8c4b, 0x8c4f, 0x8c51, 0x8c53, 0x8c54, 0x8c57, 0x8c58, 0x8c5b,
-0x8c5d, 0x8c59, 0x8c63, 0x8c64, 0x8c66, 0x8c68, 0x8c69, 0x8c6d,
-0x8c73, 0x8c75, 0x8c76, 0x8c7b, 0x8c7e, 0x8c86,
-94, 0x5f21,
-0x8c87, 0x8c8b, 0x8c90, 0x8c92, 0x8c93, 0x8c99, 0x8c9b, 0x8c9c,
-0x8ca4, 0x8cb9, 0x8cba, 0x8cc5, 0x8cc6, 0x8cc9, 0x8ccb, 0x8ccf,
-0x8cd6, 0x8cd5, 0x8cd9, 0x8cdd, 0x8ce1, 0x8ce8, 0x8cec, 0x8cef,
-0x8cf0, 0x8cf2, 0x8cf5, 0x8cf7, 0x8cf8, 0x8cfe, 0x8cff, 0x8d01,
-0x8d03, 0x8d09, 0x8d12, 0x8d17, 0x8d1b, 0x8d65, 0x8d69, 0x8d6c,
-0x8d6e, 0x8d7f, 0x8d82, 0x8d84, 0x8d88, 0x8d8d, 0x8d90, 0x8d91,
-0x8d95, 0x8d9e, 0x8d9f, 0x8da0, 0x8da6, 0x8dab, 0x8dac, 0x8daf,
-0x8db2, 0x8db5, 0x8db7, 0x8db9, 0x8dbb, 0x8dc0, 0x8dc5, 0x8dc6,
-0x8dc7, 0x8dc8, 0x8dca, 0x8dce, 0x8dd1, 0x8dd4, 0x8dd5, 0x8dd7,
-0x8dd9, 0x8de4, 0x8de5, 0x8de7, 0x8dec, 0x8df0, 0x8dbc, 0x8df1,
-0x8df2, 0x8df4, 0x8dfd, 0x8e01, 0x8e04, 0x8e05, 0x8e06, 0x8e0b,
-0x8e11, 0x8e14, 0x8e16, 0x8e20, 0x8e21, 0x8e22,
-94, 0x6021,
-0x8e23, 0x8e26, 0x8e27, 0x8e31, 0x8e33, 0x8e36, 0x8e37, 0x8e38,
-0x8e39, 0x8e3d, 0x8e40, 0x8e41, 0x8e4b, 0x8e4d, 0x8e4e, 0x8e4f,
-0x8e54, 0x8e5b, 0x8e5c, 0x8e5d, 0x8e5e, 0x8e61, 0x8e62, 0x8e69,
-0x8e6c, 0x8e6d, 0x8e6f, 0x8e70, 0x8e71, 0x8e79, 0x8e7a, 0x8e7b,
-0x8e82, 0x8e83, 0x8e89, 0x8e90, 0x8e92, 0x8e95, 0x8e9a, 0x8e9b,
-0x8e9d, 0x8e9e, 0x8ea2, 0x8ea7, 0x8ea9, 0x8ead, 0x8eae, 0x8eb3,
-0x8eb5, 0x8eba, 0x8ebb, 0x8ec0, 0x8ec1, 0x8ec3, 0x8ec4, 0x8ec7,
-0x8ecf, 0x8ed1, 0x8ed4, 0x8edc, 0x8ee8, 0x8eee, 0x8ef0, 0x8ef1,
-0x8ef7, 0x8ef9, 0x8efa, 0x8eed, 0x8f00, 0x8f02, 0x8f07, 0x8f08,
-0x8f0f, 0x8f10, 0x8f16, 0x8f17, 0x8f18, 0x8f1e, 0x8f20, 0x8f21,
-0x8f23, 0x8f25, 0x8f27, 0x8f28, 0x8f2c, 0x8f2d, 0x8f2e, 0x8f34,
-0x8f35, 0x8f36, 0x8f37, 0x8f3a, 0x8f40, 0x8f41,
-94, 0x6121,
-0x8f43, 0x8f47, 0x8f4f, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55,
-0x8f58, 0x8f5d, 0x8f5e, 0x8f65, 0x8f9d, 0x8fa0, 0x8fa1, 0x8fa4,
-0x8fa5, 0x8fa6, 0x8fb5, 0x8fb6, 0x8fb8, 0x8fbe, 0x8fc0, 0x8fc1,
-0x8fc6, 0x8fca, 0x8fcb, 0x8fcd, 0x8fd0, 0x8fd2, 0x8fd3, 0x8fd5,
-0x8fe0, 0x8fe3, 0x8fe4, 0x8fe8, 0x8fee, 0x8ff1, 0x8ff5, 0x8ff6,
-0x8ffb, 0x8ffe, 0x9002, 0x9004, 0x9008, 0x900c, 0x9018, 0x901b,
-0x9028, 0x9029, 0x902f, 0x902a, 0x902c, 0x902d, 0x9033, 0x9034,
-0x9037, 0x903f, 0x9043, 0x9044, 0x904c, 0x905b, 0x905d, 0x9062,
-0x9066, 0x9067, 0x906c, 0x9070, 0x9074, 0x9079, 0x9085, 0x9088,
-0x908b, 0x908c, 0x908e, 0x9090, 0x9095, 0x9097, 0x9098, 0x9099,
-0x909b, 0x90a0, 0x90a1, 0x90a2, 0x90a5, 0x90b0, 0x90b2, 0x90b3,
-0x90b4, 0x90b6, 0x90bd, 0x90cc, 0x90be, 0x90c3,
-94, 0x6221,
-0x90c4, 0x90c5, 0x90c7, 0x90c8, 0x90d5, 0x90d7, 0x90d8, 0x90d9,
-0x90dc, 0x90dd, 0x90df, 0x90e5, 0x90d2, 0x90f6, 0x90eb, 0x90ef,
-0x90f0, 0x90f4, 0x90fe, 0x90ff, 0x9100, 0x9104, 0x9105, 0x9106,
-0x9108, 0x910d, 0x9110, 0x9114, 0x9116, 0x9117, 0x9118, 0x911a,
-0x911c, 0x911e, 0x9120, 0x9125, 0x9122, 0x9123, 0x9127, 0x9129,
-0x912e, 0x912f, 0x9131, 0x9134, 0x9136, 0x9137, 0x9139, 0x913a,
-0x913c, 0x913d, 0x9143, 0x9147, 0x9148, 0x914f, 0x9153, 0x9157,
-0x9159, 0x915a, 0x915b, 0x9161, 0x9164, 0x9167, 0x916d, 0x9174,
-0x9179, 0x917a, 0x917b, 0x9181, 0x9183, 0x9185, 0x9186, 0x918a,
-0x918e, 0x9191, 0x9193, 0x9194, 0x9195, 0x9198, 0x919e, 0x91a1,
-0x91a6, 0x91a8, 0x91ac, 0x91ad, 0x91ae, 0x91b0, 0x91b1, 0x91b2,
-0x91b3, 0x91b6, 0x91bb, 0x91bc, 0x91bd, 0x91bf,
-94, 0x6321,
-0x91c2, 0x91c3, 0x91c5, 0x91d3, 0x91d4, 0x91d7, 0x91d9, 0x91da,
-0x91de, 0x91e4, 0x91e5, 0x91e9, 0x91ea, 0x91ec, 0x91ed, 0x91ee,
-0x91ef, 0x91f0, 0x91f1, 0x91f7, 0x91f9, 0x91fb, 0x91fd, 0x9200,
-0x9201, 0x9204, 0x9205, 0x9206, 0x9207, 0x9209, 0x920a, 0x920c,
-0x9210, 0x9212, 0x9213, 0x9216, 0x9218, 0x921c, 0x921d, 0x9223,
-0x9224, 0x9225, 0x9226, 0x9228, 0x922e, 0x922f, 0x9230, 0x9233,
-0x9235, 0x9236, 0x9238, 0x9239, 0x923a, 0x923c, 0x923e, 0x9240,
-0x9242, 0x9243, 0x9246, 0x9247, 0x924a, 0x924d, 0x924e, 0x924f,
-0x9251, 0x9258, 0x9259, 0x925c, 0x925d, 0x9260, 0x9261, 0x9265,
-0x9267, 0x9268, 0x9269, 0x926e, 0x926f, 0x9270, 0x9275, 0x9276,
-0x9277, 0x9278, 0x9279, 0x927b, 0x927c, 0x927d, 0x927f, 0x9288,
-0x9289, 0x928a, 0x928d, 0x928e, 0x9292, 0x9297,
-94, 0x6421,
-0x9299, 0x929f, 0x92a0, 0x92a4, 0x92a5, 0x92a7, 0x92a8, 0x92ab,
-0x92af, 0x92b2, 0x92b6, 0x92b8, 0x92ba, 0x92bb, 0x92bc, 0x92bd,
-0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c5, 0x92c6, 0x92c7,
-0x92c8, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92d0, 0x92d3, 0x92d5,
-0x92d7, 0x92d8, 0x92d9, 0x92dc, 0x92dd, 0x92df, 0x92e0, 0x92e1,
-0x92e3, 0x92e5, 0x92e7, 0x92e8, 0x92ec, 0x92ee, 0x92f0, 0x92f9,
-0x92fb, 0x92ff, 0x9300, 0x9302, 0x9308, 0x930d, 0x9311, 0x9314,
-0x9315, 0x931c, 0x931d, 0x931e, 0x931f, 0x9321, 0x9324, 0x9325,
-0x9327, 0x9329, 0x932a, 0x9333, 0x9334, 0x9336, 0x9337, 0x9347,
-0x9348, 0x9349, 0x9350, 0x9351, 0x9352, 0x9355, 0x9357, 0x9358,
-0x935a, 0x935e, 0x9364, 0x9365, 0x9367, 0x9369, 0x936a, 0x936d,
-0x936f, 0x9370, 0x9371, 0x9373, 0x9374, 0x9376,
-94, 0x6521,
-0x937a, 0x937d, 0x937f, 0x9380, 0x9381, 0x9382, 0x9388, 0x938a,
-0x938b, 0x938d, 0x938f, 0x9392, 0x9395, 0x9398, 0x939b, 0x939e,
-0x93a1, 0x93a3, 0x93a4, 0x93a6, 0x93a8, 0x93ab, 0x93b4, 0x93b5,
-0x93b6, 0x93ba, 0x93a9, 0x93c1, 0x93c4, 0x93c5, 0x93c6, 0x93c7,
-0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, 0x93d3, 0x93d9, 0x93dc,
-0x93de, 0x93df, 0x93e2, 0x93e6, 0x93e7, 0x93f9, 0x93f7, 0x93f8,
-0x93fa, 0x93fb, 0x93fd, 0x9401, 0x9402, 0x9404, 0x9408, 0x9409,
-0x940d, 0x940e, 0x940f, 0x9415, 0x9416, 0x9417, 0x941f, 0x942e,
-0x942f, 0x9431, 0x9432, 0x9433, 0x9434, 0x943b, 0x943f, 0x943d,
-0x9443, 0x9445, 0x9448, 0x944a, 0x944c, 0x9455, 0x9459, 0x945c,
-0x945f, 0x9461, 0x9463, 0x9468, 0x946b, 0x946d, 0x946e, 0x946f,
-0x9471, 0x9472, 0x9484, 0x9483, 0x9578, 0x9579,
-94, 0x6621,
-0x957e, 0x9584, 0x9588, 0x958c, 0x958d, 0x958e, 0x959d, 0x959e,
-0x959f, 0x95a1, 0x95a6, 0x95a9, 0x95ab, 0x95ac, 0x95b4, 0x95b6,
-0x95ba, 0x95bd, 0x95bf, 0x95c6, 0x95c8, 0x95c9, 0x95cb, 0x95d0,
-0x95d1, 0x95d2, 0x95d3, 0x95d9, 0x95da, 0x95dd, 0x95de, 0x95df,
-0x95e0, 0x95e4, 0x95e6, 0x961d, 0x961e, 0x9622, 0x9624, 0x9625,
-0x9626, 0x962c, 0x9631, 0x9633, 0x9637, 0x9638, 0x9639, 0x963a,
-0x963c, 0x963d, 0x9641, 0x9652, 0x9654, 0x9656, 0x9657, 0x9658,
-0x9661, 0x966e, 0x9674, 0x967b, 0x967c, 0x967e, 0x967f, 0x9681,
-0x9682, 0x9683, 0x9684, 0x9689, 0x9691, 0x9696, 0x969a, 0x969d,
-0x969f, 0x96a4, 0x96a5, 0x96a6, 0x96a9, 0x96ae, 0x96af, 0x96b3,
-0x96ba, 0x96ca, 0x96d2, 0x5db2, 0x96d8, 0x96da, 0x96dd, 0x96de,
-0x96df, 0x96e9, 0x96ef, 0x96f1, 0x96fa, 0x9702,
-94, 0x6721,
-0x9703, 0x9705, 0x9709, 0x971a, 0x971b, 0x971d, 0x9721, 0x9722,
-0x9723, 0x9728, 0x9731, 0x9733, 0x9741, 0x9743, 0x974a, 0x974e,
-0x974f, 0x9755, 0x9757, 0x9758, 0x975a, 0x975b, 0x9763, 0x9767,
-0x976a, 0x976e, 0x9773, 0x9776, 0x9777, 0x9778, 0x977b, 0x977d,
-0x977f, 0x9780, 0x9789, 0x9795, 0x9796, 0x9797, 0x9799, 0x979a,
-0x979e, 0x979f, 0x97a2, 0x97ac, 0x97ae, 0x97b1, 0x97b2, 0x97b5,
-0x97b6, 0x97b8, 0x97b9, 0x97ba, 0x97bc, 0x97be, 0x97bf, 0x97c1,
-0x97c4, 0x97c5, 0x97c7, 0x97c9, 0x97ca, 0x97cc, 0x97cd, 0x97ce,
-0x97d0, 0x97d1, 0x97d4, 0x97d7, 0x97d8, 0x97d9, 0x97dd, 0x97de,
-0x97e0, 0x97db, 0x97e1, 0x97e4, 0x97ef, 0x97f1, 0x97f4, 0x97f7,
-0x97f8, 0x97fa, 0x9807, 0x980a, 0x9819, 0x980d, 0x980e, 0x9814,
-0x9816, 0x981c, 0x981e, 0x9820, 0x9823, 0x9826,
-94, 0x6821,
-0x982b, 0x982e, 0x982f, 0x9830, 0x9832, 0x9833, 0x9835, 0x9825,
-0x983e, 0x9844, 0x9847, 0x984a, 0x9851, 0x9852, 0x9853, 0x9856,
-0x9857, 0x9859, 0x985a, 0x9862, 0x9863, 0x9865, 0x9866, 0x986a,
-0x986c, 0x98ab, 0x98ad, 0x98ae, 0x98b0, 0x98b4, 0x98b7, 0x98b8,
-0x98ba, 0x98bb, 0x98bf, 0x98c2, 0x98c5, 0x98c8, 0x98cc, 0x98e1,
-0x98e3, 0x98e5, 0x98e6, 0x98e7, 0x98ea, 0x98f3, 0x98f6, 0x9902,
-0x9907, 0x9908, 0x9911, 0x9915, 0x9916, 0x9917, 0x991a, 0x991b,
-0x991c, 0x991f, 0x9922, 0x9926, 0x9927, 0x992b, 0x9931, 0x9932,
-0x9933, 0x9934, 0x9935, 0x9939, 0x993a, 0x993b, 0x993c, 0x9940,
-0x9941, 0x9946, 0x9947, 0x9948, 0x994d, 0x994e, 0x9954, 0x9958,
-0x9959, 0x995b, 0x995c, 0x995e, 0x995f, 0x9960, 0x999b, 0x999d,
-0x999f, 0x99a6, 0x99b0, 0x99b1, 0x99b2, 0x99b5,
-94, 0x6921,
-0x99b9, 0x99ba, 0x99bd, 0x99bf, 0x99c3, 0x99c9, 0x99d3, 0x99d4,
-0x99d9, 0x99da, 0x99dc, 0x99de, 0x99e7, 0x99ea, 0x99eb, 0x99ec,
-0x99f0, 0x99f4, 0x99f5, 0x99f9, 0x99fd, 0x99fe, 0x9a02, 0x9a03,
-0x9a04, 0x9a0b, 0x9a0c, 0x9a10, 0x9a11, 0x9a16, 0x9a1e, 0x9a20,
-0x9a22, 0x9a23, 0x9a24, 0x9a27, 0x9a2d, 0x9a2e, 0x9a33, 0x9a35,
-0x9a36, 0x9a38, 0x9a47, 0x9a41, 0x9a44, 0x9a4a, 0x9a4b, 0x9a4c,
-0x9a4e, 0x9a51, 0x9a54, 0x9a56, 0x9a5d, 0x9aaa, 0x9aac, 0x9aae,
-0x9aaf, 0x9ab2, 0x9ab4, 0x9ab5, 0x9ab6, 0x9ab9, 0x9abb, 0x9abe,
-0x9abf, 0x9ac1, 0x9ac3, 0x9ac6, 0x9ac8, 0x9ace, 0x9ad0, 0x9ad2,
-0x9ad5, 0x9ad6, 0x9ad7, 0x9adb, 0x9adc, 0x9ae0, 0x9ae4, 0x9ae5,
-0x9ae7, 0x9ae9, 0x9aec, 0x9af2, 0x9af3, 0x9af5, 0x9af9, 0x9afa,
-0x9afd, 0x9aff, 0x9b00, 0x9b01, 0x9b02, 0x9b03,
-94, 0x6a21,
-0x9b04, 0x9b05, 0x9b08, 0x9b09, 0x9b0b, 0x9b0c, 0x9b0d, 0x9b0e,
-0x9b10, 0x9b12, 0x9b16, 0x9b19, 0x9b1b, 0x9b1c, 0x9b20, 0x9b26,
-0x9b2b, 0x9b2d, 0x9b33, 0x9b34, 0x9b35, 0x9b37, 0x9b39, 0x9b3a,
-0x9b3d, 0x9b48, 0x9b4b, 0x9b4c, 0x9b55, 0x9b56, 0x9b57, 0x9b5b,
-0x9b5e, 0x9b61, 0x9b63, 0x9b65, 0x9b66, 0x9b68, 0x9b6a, 0x9b6b,
-0x9b6c, 0x9b6d, 0x9b6e, 0x9b73, 0x9b75, 0x9b77, 0x9b78, 0x9b79,
-0x9b7f, 0x9b80, 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b89, 0x9b8a,
-0x9b8b, 0x9b8d, 0x9b8f, 0x9b90, 0x9b94, 0x9b9a, 0x9b9d, 0x9b9e,
-0x9ba6, 0x9ba7, 0x9ba9, 0x9bac, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb7,
-0x9bb8, 0x9bbb, 0x9bbc, 0x9bbe, 0x9bbf, 0x9bc1, 0x9bc7, 0x9bc8,
-0x9bce, 0x9bd0, 0x9bd7, 0x9bd8, 0x9bdd, 0x9bdf, 0x9be5, 0x9be7,
-0x9bea, 0x9beb, 0x9bef, 0x9bf3, 0x9bf7, 0x9bf8,
-94, 0x6b21,
-0x9bf9, 0x9bfa, 0x9bfd, 0x9bff, 0x9c00, 0x9c02, 0x9c0b, 0x9c0f,
-0x9c11, 0x9c16, 0x9c18, 0x9c19, 0x9c1a, 0x9c1c, 0x9c1e, 0x9c22,
-0x9c23, 0x9c26, 0x9c27, 0x9c28, 0x9c29, 0x9c2a, 0x9c31, 0x9c35,
-0x9c36, 0x9c37, 0x9c3d, 0x9c41, 0x9c43, 0x9c44, 0x9c45, 0x9c49,
-0x9c4a, 0x9c4e, 0x9c4f, 0x9c50, 0x9c53, 0x9c54, 0x9c56, 0x9c58,
-0x9c5b, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c63, 0x9c69, 0x9c6a, 0x9c5c,
-0x9c6b, 0x9c68, 0x9c6e, 0x9c70, 0x9c72, 0x9c75, 0x9c77, 0x9c7b,
-0x9ce6, 0x9cf2, 0x9cf7, 0x9cf9, 0x9d0b, 0x9d02, 0x9d11, 0x9d17,
-0x9d18, 0x9d1c, 0x9d1d, 0x9d1e, 0x9d2f, 0x9d30, 0x9d32, 0x9d33,
-0x9d34, 0x9d3a, 0x9d3c, 0x9d45, 0x9d3d, 0x9d42, 0x9d43, 0x9d47,
-0x9d4a, 0x9d53, 0x9d54, 0x9d5f, 0x9d63, 0x9d62, 0x9d65, 0x9d69,
-0x9d6a, 0x9d6b, 0x9d70, 0x9d76, 0x9d77, 0x9d7b,
-94, 0x6c21,
-0x9d7c, 0x9d7e, 0x9d83, 0x9d84, 0x9d86, 0x9d8a, 0x9d8d, 0x9d8e,
-0x9d92, 0x9d93, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9da1, 0x9daa,
-0x9dac, 0x9dae, 0x9db1, 0x9db5, 0x9db9, 0x9dbc, 0x9dbf, 0x9dc3,
-0x9dc7, 0x9dc9, 0x9dca, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dda,
-0x9dde, 0x9ddf, 0x9de0, 0x9de5, 0x9de7, 0x9de9, 0x9deb, 0x9dee,
-0x9df0, 0x9df3, 0x9df4, 0x9dfe, 0x9e0a, 0x9e02, 0x9e07, 0x9e0e,
-0x9e10, 0x9e11, 0x9e12, 0x9e15, 0x9e16, 0x9e19, 0x9e1c, 0x9e1d,
-0x9e7a, 0x9e7b, 0x9e7c, 0x9e80, 0x9e82, 0x9e83, 0x9e84, 0x9e85,
-0x9e87, 0x9e8e, 0x9e8f, 0x9e96, 0x9e98, 0x9e9b, 0x9e9e, 0x9ea4,
-0x9ea8, 0x9eac, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb3, 0x9eb4, 0x9eb5,
-0x9ec6, 0x9ec8, 0x9ecb, 0x9ed5, 0x9edf, 0x9ee4, 0x9ee7, 0x9eec,
-0x9eed, 0x9eee, 0x9ef0, 0x9ef1, 0x9ef2, 0x9ef5,
-67, 0x6d21,
-0x9ef8, 0x9eff, 0x9f02, 0x9f03, 0x9f09, 0x9f0f, 0x9f10, 0x9f11,
-0x9f12, 0x9f14, 0x9f16, 0x9f17, 0x9f19, 0x9f1a, 0x9f1b, 0x9f1f,
-0x9f22, 0x9f26, 0x9f2a, 0x9f2b, 0x9f2f, 0x9f31, 0x9f32, 0x9f34,
-0x9f37, 0x9f39, 0x9f3a, 0x9f3c, 0x9f3d, 0x9f3f, 0x9f41, 0x9f43,
-0x9f44, 0x9f45, 0x9f46, 0x9f47, 0x9f53, 0x9f55, 0x9f56, 0x9f57,
-0x9f58, 0x9f5a, 0x9f5d, 0x9f5e, 0x9f68, 0x9f69, 0x9f6d, 0x9f6e,
-0x9f6f, 0x9f70, 0x9f71, 0x9f73, 0x9f75, 0x9f7a, 0x9f7d, 0x9f8f,
-0x9f90, 0x9f91, 0x9f92, 0x9f94, 0x9f96, 0x9f97, 0x9f9e, 0x9fa1,
-0x9fa2, 0x9fa3, 0x9fa5,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/ksc5601.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1152 +0,0 @@
-94, 0x2121,
-0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, 0x3003,
-0x00ad, 0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, 0x201c,
-0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c,
-0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0x00b1, 0x00d7, 0x00f7,
-0x2260, 0x2264, 0x2265, 0x221e, 0x2234, 0x00b0, 0x2032, 0x2033,
-0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5, 0x2642, 0x2640, 0x2220,
-0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x00a7, 0x203b,
-0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1,
-0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, 0x2191,
-0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d,
-0x2235, 0x222b, 0x222c, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282,
-0x2283, 0x222a, 0x2229, 0x2227, 0x2228, 0xffe2,
-69, 0x2221,
-0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4, 0xff5e, 0x02c7, 0x02d8,
-0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1, 0x00bf, 0x02d0,
-0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1, 0x25c0,
-0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, 0x2663,
-0x2299, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, 0x25a5,
-0x25a8, 0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, 0x261c,
-0x261e, 0x00b6, 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, 0x2196,
-0x2198, 0x266d, 0x2669, 0x266a, 0x266c, 0x327f, 0x321c, 0x2116,
-0x33c7, 0x2122, 0x33c2, 0x33d8, 0x2121,
-94, 0x2321,
-0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff08,
-0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10,
-0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18,
-0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20,
-0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
-0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
-0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
-0xff39, 0xff3a, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, 0xff40,
-0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48,
-0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50,
-0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58,
-0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xffe3,
-94, 0x2421,
-0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138,
-0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140,
-0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148,
-0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150,
-0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158,
-0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160,
-0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, 0x3168,
-0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, 0x3170,
-0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, 0x3178,
-0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x317f, 0x3180,
-0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, 0x3188,
-0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e,
-10, 0x2521,
-0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,
-0x2178, 0x2179,
-10, 0x2530,
-0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
-0x2168, 0x2169,
-24, 0x2541,
-0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
-0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0,
-0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
-24, 0x2561,
-0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8,
-0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0,
-0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,
-68, 0x2621,
-0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c,
-0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b,
-0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f,
-0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542,
-0x2512, 0x2511, 0x251a, 0x2519, 0x2516, 0x2515, 0x250e, 0x250d,
-0x251e, 0x251f, 0x2521, 0x2522, 0x2526, 0x2527, 0x2529, 0x252a,
-0x252d, 0x252e, 0x2531, 0x2532, 0x2535, 0x2536, 0x2539, 0x253a,
-0x253d, 0x253e, 0x2540, 0x2541, 0x2543, 0x2544, 0x2545, 0x2546,
-0x2547, 0x2548, 0x2549, 0x254a,
-79, 0x2721,
-0x3395, 0x3396, 0x3397, 0x2113, 0x3398, 0x33c4, 0x33a3, 0x33a4,
-0x33a5, 0x33a6, 0x3399, 0x339a, 0x339b, 0x339c, 0x339d, 0x339e,
-0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca, 0x338d, 0x338e, 0x338f,
-0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8, 0x33b0, 0x33b1,
-0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8, 0x33b9,
-0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, 0x33bc,
-0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, 0x3394,
-0x2126, 0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, 0x33c5,
-0x33ad, 0x33ae, 0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, 0x33ac,
-0x33dd, 0x33d0, 0x33d3, 0x33c3, 0x33c9, 0x33dc, 0x33c6,
-4, 0x2821,
-0x00c6, 0x00d0, 0x00aa, 0x0126,
-1, 0x2826,
-0x0132,
-8, 0x2828,
-0x013f, 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a,
-78, 0x2831,
-0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267,
-0x3268, 0x3269, 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f,
-0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, 0x3277,
-0x3278, 0x3279, 0x327a, 0x327b, 0x24d0, 0x24d1, 0x24d2, 0x24d3,
-0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 0x24d9, 0x24da, 0x24db,
-0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1, 0x24e2, 0x24e3,
-0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460, 0x2461,
-0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469,
-0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, 0x2154,
-0x00bc, 0x00be, 0x215b, 0x215c, 0x215d, 0x215e,
-94, 0x2921,
-0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, 0x0140,
-0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x0167, 0x014b, 0x0149,
-0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, 0x3206, 0x3207,
-0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e, 0x320f,
-0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, 0x3217,
-0x3218, 0x3219, 0x321a, 0x321b, 0x249c, 0x249d, 0x249e, 0x249f,
-0x24a0, 0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7,
-0x24a8, 0x24a9, 0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af,
-0x24b0, 0x24b1, 0x24b2, 0x24b3, 0x24b4, 0x24b5, 0x2474, 0x2475,
-0x2476, 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d,
-0x247e, 0x247f, 0x2480, 0x2481, 0x2482, 0x00b9, 0x00b2, 0x00b3,
-0x2074, 0x207f, 0x2081, 0x2082, 0x2083, 0x2084,
-83, 0x2a21,
-0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048,
-0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050,
-0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
-0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
-0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
-0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
-0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
-0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
-0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
-0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
-0x3091, 0x3092, 0x3093,
-86, 0x2b21,
-0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8,
-0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0,
-0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8,
-0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
-0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8,
-0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0,
-0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8,
-0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0,
-0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8,
-0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0,
-0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6,
-33, 0x2c21,
-0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416,
-0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
-0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426,
-0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e,
-0x042f,
-33, 0x2c51,
-0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436,
-0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
-0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446,
-0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e,
-0x044f,
-94, 0x3021,
-0xac00, 0xac01, 0xac04, 0xac07, 0xac08, 0xac09, 0xac0a, 0xac10,
-0xac11, 0xac12, 0xac13, 0xac14, 0xac15, 0xac16, 0xac17, 0xac19,
-0xac1a, 0xac1b, 0xac1c, 0xac1d, 0xac20, 0xac24, 0xac2c, 0xac2d,
-0xac2f, 0xac30, 0xac31, 0xac38, 0xac39, 0xac3c, 0xac40, 0xac4b,
-0xac4d, 0xac54, 0xac58, 0xac5c, 0xac70, 0xac71, 0xac74, 0xac77,
-0xac78, 0xac7a, 0xac80, 0xac81, 0xac83, 0xac84, 0xac85, 0xac86,
-0xac89, 0xac8a, 0xac8b, 0xac8c, 0xac90, 0xac94, 0xac9c, 0xac9d,
-0xac9f, 0xaca0, 0xaca1, 0xaca8, 0xaca9, 0xacaa, 0xacac, 0xacaf,
-0xacb0, 0xacb8, 0xacb9, 0xacbb, 0xacbc, 0xacbd, 0xacc1, 0xacc4,
-0xacc8, 0xaccc, 0xacd5, 0xacd7, 0xace0, 0xace1, 0xace4, 0xace7,
-0xace8, 0xacea, 0xacec, 0xacef, 0xacf0, 0xacf1, 0xacf3, 0xacf5,
-0xacf6, 0xacfc, 0xacfd, 0xad00, 0xad04, 0xad06,
-94, 0x3121,
-0xad0c, 0xad0d, 0xad0f, 0xad11, 0xad18, 0xad1c, 0xad20, 0xad29,
-0xad2c, 0xad2d, 0xad34, 0xad35, 0xad38, 0xad3c, 0xad44, 0xad45,
-0xad47, 0xad49, 0xad50, 0xad54, 0xad58, 0xad61, 0xad63, 0xad6c,
-0xad6d, 0xad70, 0xad73, 0xad74, 0xad75, 0xad76, 0xad7b, 0xad7c,
-0xad7d, 0xad7f, 0xad81, 0xad82, 0xad88, 0xad89, 0xad8c, 0xad90,
-0xad9c, 0xad9d, 0xada4, 0xadb7, 0xadc0, 0xadc1, 0xadc4, 0xadc8,
-0xadd0, 0xadd1, 0xadd3, 0xaddc, 0xade0, 0xade4, 0xadf8, 0xadf9,
-0xadfc, 0xadff, 0xae00, 0xae01, 0xae08, 0xae09, 0xae0b, 0xae0d,
-0xae14, 0xae30, 0xae31, 0xae34, 0xae37, 0xae38, 0xae3a, 0xae40,
-0xae41, 0xae43, 0xae45, 0xae46, 0xae4a, 0xae4c, 0xae4d, 0xae4e,
-0xae50, 0xae54, 0xae56, 0xae5c, 0xae5d, 0xae5f, 0xae60, 0xae61,
-0xae65, 0xae68, 0xae69, 0xae6c, 0xae70, 0xae78,
-94, 0x3221,
-0xae79, 0xae7b, 0xae7c, 0xae7d, 0xae84, 0xae85, 0xae8c, 0xaebc,
-0xaebd, 0xaebe, 0xaec0, 0xaec4, 0xaecc, 0xaecd, 0xaecf, 0xaed0,
-0xaed1, 0xaed8, 0xaed9, 0xaedc, 0xaee8, 0xaeeb, 0xaeed, 0xaef4,
-0xaef8, 0xaefc, 0xaf07, 0xaf08, 0xaf0d, 0xaf10, 0xaf2c, 0xaf2d,
-0xaf30, 0xaf32, 0xaf34, 0xaf3c, 0xaf3d, 0xaf3f, 0xaf41, 0xaf42,
-0xaf43, 0xaf48, 0xaf49, 0xaf50, 0xaf5c, 0xaf5d, 0xaf64, 0xaf65,
-0xaf79, 0xaf80, 0xaf84, 0xaf88, 0xaf90, 0xaf91, 0xaf95, 0xaf9c,
-0xafb8, 0xafb9, 0xafbc, 0xafc0, 0xafc7, 0xafc8, 0xafc9, 0xafcb,
-0xafcd, 0xafce, 0xafd4, 0xafdc, 0xafe8, 0xafe9, 0xaff0, 0xaff1,
-0xaff4, 0xaff8, 0xb000, 0xb001, 0xb004, 0xb00c, 0xb010, 0xb014,
-0xb01c, 0xb01d, 0xb028, 0xb044, 0xb045, 0xb048, 0xb04a, 0xb04c,
-0xb04e, 0xb053, 0xb054, 0xb055, 0xb057, 0xb059,
-94, 0x3321,
-0xb05d, 0xb07c, 0xb07d, 0xb080, 0xb084, 0xb08c, 0xb08d, 0xb08f,
-0xb091, 0xb098, 0xb099, 0xb09a, 0xb09c, 0xb09f, 0xb0a0, 0xb0a1,
-0xb0a2, 0xb0a8, 0xb0a9, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, 0xb0af,
-0xb0b1, 0xb0b3, 0xb0b4, 0xb0b5, 0xb0b8, 0xb0bc, 0xb0c4, 0xb0c5,
-0xb0c7, 0xb0c8, 0xb0c9, 0xb0d0, 0xb0d1, 0xb0d4, 0xb0d8, 0xb0e0,
-0xb0e5, 0xb108, 0xb109, 0xb10b, 0xb10c, 0xb110, 0xb112, 0xb113,
-0xb118, 0xb119, 0xb11b, 0xb11c, 0xb11d, 0xb123, 0xb124, 0xb125,
-0xb128, 0xb12c, 0xb134, 0xb135, 0xb137, 0xb138, 0xb139, 0xb140,
-0xb141, 0xb144, 0xb148, 0xb150, 0xb151, 0xb154, 0xb155, 0xb158,
-0xb15c, 0xb160, 0xb178, 0xb179, 0xb17c, 0xb180, 0xb182, 0xb188,
-0xb189, 0xb18b, 0xb18d, 0xb192, 0xb193, 0xb194, 0xb198, 0xb19c,
-0xb1a8, 0xb1cc, 0xb1d0, 0xb1d4, 0xb1dc, 0xb1dd,
-94, 0x3421,
-0xb1df, 0xb1e8, 0xb1e9, 0xb1ec, 0xb1f0, 0xb1f9, 0xb1fb, 0xb1fd,
-0xb204, 0xb205, 0xb208, 0xb20b, 0xb20c, 0xb214, 0xb215, 0xb217,
-0xb219, 0xb220, 0xb234, 0xb23c, 0xb258, 0xb25c, 0xb260, 0xb268,
-0xb269, 0xb274, 0xb275, 0xb27c, 0xb284, 0xb285, 0xb289, 0xb290,
-0xb291, 0xb294, 0xb298, 0xb299, 0xb29a, 0xb2a0, 0xb2a1, 0xb2a3,
-0xb2a5, 0xb2a6, 0xb2aa, 0xb2ac, 0xb2b0, 0xb2b4, 0xb2c8, 0xb2c9,
-0xb2cc, 0xb2d0, 0xb2d2, 0xb2d8, 0xb2d9, 0xb2db, 0xb2dd, 0xb2e2,
-0xb2e4, 0xb2e5, 0xb2e6, 0xb2e8, 0xb2eb, 0xb2ec, 0xb2ed, 0xb2ee,
-0xb2ef, 0xb2f3, 0xb2f4, 0xb2f5, 0xb2f7, 0xb2f8, 0xb2f9, 0xb2fa,
-0xb2fb, 0xb2ff, 0xb300, 0xb301, 0xb304, 0xb308, 0xb310, 0xb311,
-0xb313, 0xb314, 0xb315, 0xb31c, 0xb354, 0xb355, 0xb356, 0xb358,
-0xb35b, 0xb35c, 0xb35e, 0xb35f, 0xb364, 0xb365,
-94, 0x3521,
-0xb367, 0xb369, 0xb36b, 0xb36e, 0xb370, 0xb371, 0xb374, 0xb378,
-0xb380, 0xb381, 0xb383, 0xb384, 0xb385, 0xb38c, 0xb390, 0xb394,
-0xb3a0, 0xb3a1, 0xb3a8, 0xb3ac, 0xb3c4, 0xb3c5, 0xb3c8, 0xb3cb,
-0xb3cc, 0xb3ce, 0xb3d0, 0xb3d4, 0xb3d5, 0xb3d7, 0xb3d9, 0xb3db,
-0xb3dd, 0xb3e0, 0xb3e4, 0xb3e8, 0xb3fc, 0xb410, 0xb418, 0xb41c,
-0xb420, 0xb428, 0xb429, 0xb42b, 0xb434, 0xb450, 0xb451, 0xb454,
-0xb458, 0xb460, 0xb461, 0xb463, 0xb465, 0xb46c, 0xb480, 0xb488,
-0xb49d, 0xb4a4, 0xb4a8, 0xb4ac, 0xb4b5, 0xb4b7, 0xb4b9, 0xb4c0,
-0xb4c4, 0xb4c8, 0xb4d0, 0xb4d5, 0xb4dc, 0xb4dd, 0xb4e0, 0xb4e3,
-0xb4e4, 0xb4e6, 0xb4ec, 0xb4ed, 0xb4ef, 0xb4f1, 0xb4f8, 0xb514,
-0xb515, 0xb518, 0xb51b, 0xb51c, 0xb524, 0xb525, 0xb527, 0xb528,
-0xb529, 0xb52a, 0xb530, 0xb531, 0xb534, 0xb538,
-94, 0x3621,
-0xb540, 0xb541, 0xb543, 0xb544, 0xb545, 0xb54b, 0xb54c, 0xb54d,
-0xb550, 0xb554, 0xb55c, 0xb55d, 0xb55f, 0xb560, 0xb561, 0xb5a0,
-0xb5a1, 0xb5a4, 0xb5a8, 0xb5aa, 0xb5ab, 0xb5b0, 0xb5b1, 0xb5b3,
-0xb5b4, 0xb5b5, 0xb5bb, 0xb5bc, 0xb5bd, 0xb5c0, 0xb5c4, 0xb5cc,
-0xb5cd, 0xb5cf, 0xb5d0, 0xb5d1, 0xb5d8, 0xb5ec, 0xb610, 0xb611,
-0xb614, 0xb618, 0xb625, 0xb62c, 0xb634, 0xb648, 0xb664, 0xb668,
-0xb69c, 0xb69d, 0xb6a0, 0xb6a4, 0xb6ab, 0xb6ac, 0xb6b1, 0xb6d4,
-0xb6f0, 0xb6f4, 0xb6f8, 0xb700, 0xb701, 0xb705, 0xb728, 0xb729,
-0xb72c, 0xb72f, 0xb730, 0xb738, 0xb739, 0xb73b, 0xb744, 0xb748,
-0xb74c, 0xb754, 0xb755, 0xb760, 0xb764, 0xb768, 0xb770, 0xb771,
-0xb773, 0xb775, 0xb77c, 0xb77d, 0xb780, 0xb784, 0xb78c, 0xb78d,
-0xb78f, 0xb790, 0xb791, 0xb792, 0xb796, 0xb797,
-94, 0x3721,
-0xb798, 0xb799, 0xb79c, 0xb7a0, 0xb7a8, 0xb7a9, 0xb7ab, 0xb7ac,
-0xb7ad, 0xb7b4, 0xb7b5, 0xb7b8, 0xb7c7, 0xb7c9, 0xb7ec, 0xb7ed,
-0xb7f0, 0xb7f4, 0xb7fc, 0xb7fd, 0xb7ff, 0xb800, 0xb801, 0xb807,
-0xb808, 0xb809, 0xb80c, 0xb810, 0xb818, 0xb819, 0xb81b, 0xb81d,
-0xb824, 0xb825, 0xb828, 0xb82c, 0xb834, 0xb835, 0xb837, 0xb838,
-0xb839, 0xb840, 0xb844, 0xb851, 0xb853, 0xb85c, 0xb85d, 0xb860,
-0xb864, 0xb86c, 0xb86d, 0xb86f, 0xb871, 0xb878, 0xb87c, 0xb88d,
-0xb8a8, 0xb8b0, 0xb8b4, 0xb8b8, 0xb8c0, 0xb8c1, 0xb8c3, 0xb8c5,
-0xb8cc, 0xb8d0, 0xb8d4, 0xb8dd, 0xb8df, 0xb8e1, 0xb8e8, 0xb8e9,
-0xb8ec, 0xb8f0, 0xb8f8, 0xb8f9, 0xb8fb, 0xb8fd, 0xb904, 0xb918,
-0xb920, 0xb93c, 0xb93d, 0xb940, 0xb944, 0xb94c, 0xb94f, 0xb951,
-0xb958, 0xb959, 0xb95c, 0xb960, 0xb968, 0xb969,
-94, 0x3821,
-0xb96b, 0xb96d, 0xb974, 0xb975, 0xb978, 0xb97c, 0xb984, 0xb985,
-0xb987, 0xb989, 0xb98a, 0xb98d, 0xb98e, 0xb9ac, 0xb9ad, 0xb9b0,
-0xb9b4, 0xb9bc, 0xb9bd, 0xb9bf, 0xb9c1, 0xb9c8, 0xb9c9, 0xb9cc,
-0xb9ce, 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d2, 0xb9d8, 0xb9d9, 0xb9db,
-0xb9dd, 0xb9de, 0xb9e1, 0xb9e3, 0xb9e4, 0xb9e5, 0xb9e8, 0xb9ec,
-0xb9f4, 0xb9f5, 0xb9f7, 0xb9f8, 0xb9f9, 0xb9fa, 0xba00, 0xba01,
-0xba08, 0xba15, 0xba38, 0xba39, 0xba3c, 0xba40, 0xba42, 0xba48,
-0xba49, 0xba4b, 0xba4d, 0xba4e, 0xba53, 0xba54, 0xba55, 0xba58,
-0xba5c, 0xba64, 0xba65, 0xba67, 0xba68, 0xba69, 0xba70, 0xba71,
-0xba74, 0xba78, 0xba83, 0xba84, 0xba85, 0xba87, 0xba8c, 0xbaa8,
-0xbaa9, 0xbaab, 0xbaac, 0xbab0, 0xbab2, 0xbab8, 0xbab9, 0xbabb,
-0xbabd, 0xbac4, 0xbac8, 0xbad8, 0xbad9, 0xbafc,
-94, 0x3921,
-0xbb00, 0xbb04, 0xbb0d, 0xbb0f, 0xbb11, 0xbb18, 0xbb1c, 0xbb20,
-0xbb29, 0xbb2b, 0xbb34, 0xbb35, 0xbb36, 0xbb38, 0xbb3b, 0xbb3c,
-0xbb3d, 0xbb3e, 0xbb44, 0xbb45, 0xbb47, 0xbb49, 0xbb4d, 0xbb4f,
-0xbb50, 0xbb54, 0xbb58, 0xbb61, 0xbb63, 0xbb6c, 0xbb88, 0xbb8c,
-0xbb90, 0xbba4, 0xbba8, 0xbbac, 0xbbb4, 0xbbb7, 0xbbc0, 0xbbc4,
-0xbbc8, 0xbbd0, 0xbbd3, 0xbbf8, 0xbbf9, 0xbbfc, 0xbbff, 0xbc00,
-0xbc02, 0xbc08, 0xbc09, 0xbc0b, 0xbc0c, 0xbc0d, 0xbc0f, 0xbc11,
-0xbc14, 0xbc15, 0xbc16, 0xbc17, 0xbc18, 0xbc1b, 0xbc1c, 0xbc1d,
-0xbc1e, 0xbc1f, 0xbc24, 0xbc25, 0xbc27, 0xbc29, 0xbc2d, 0xbc30,
-0xbc31, 0xbc34, 0xbc38, 0xbc40, 0xbc41, 0xbc43, 0xbc44, 0xbc45,
-0xbc49, 0xbc4c, 0xbc4d, 0xbc50, 0xbc5d, 0xbc84, 0xbc85, 0xbc88,
-0xbc8b, 0xbc8c, 0xbc8e, 0xbc94, 0xbc95, 0xbc97,
-94, 0x3a21,
-0xbc99, 0xbc9a, 0xbca0, 0xbca1, 0xbca4, 0xbca7, 0xbca8, 0xbcb0,
-0xbcb1, 0xbcb3, 0xbcb4, 0xbcb5, 0xbcbc, 0xbcbd, 0xbcc0, 0xbcc4,
-0xbccd, 0xbccf, 0xbcd0, 0xbcd1, 0xbcd5, 0xbcd8, 0xbcdc, 0xbcf4,
-0xbcf5, 0xbcf6, 0xbcf8, 0xbcfc, 0xbd04, 0xbd05, 0xbd07, 0xbd09,
-0xbd10, 0xbd14, 0xbd24, 0xbd2c, 0xbd40, 0xbd48, 0xbd49, 0xbd4c,
-0xbd50, 0xbd58, 0xbd59, 0xbd64, 0xbd68, 0xbd80, 0xbd81, 0xbd84,
-0xbd87, 0xbd88, 0xbd89, 0xbd8a, 0xbd90, 0xbd91, 0xbd93, 0xbd95,
-0xbd99, 0xbd9a, 0xbd9c, 0xbda4, 0xbdb0, 0xbdb8, 0xbdd4, 0xbdd5,
-0xbdd8, 0xbddc, 0xbde9, 0xbdf0, 0xbdf4, 0xbdf8, 0xbe00, 0xbe03,
-0xbe05, 0xbe0c, 0xbe0d, 0xbe10, 0xbe14, 0xbe1c, 0xbe1d, 0xbe1f,
-0xbe44, 0xbe45, 0xbe48, 0xbe4c, 0xbe4e, 0xbe54, 0xbe55, 0xbe57,
-0xbe59, 0xbe5a, 0xbe5b, 0xbe60, 0xbe61, 0xbe64,
-94, 0x3b21,
-0xbe68, 0xbe6a, 0xbe70, 0xbe71, 0xbe73, 0xbe74, 0xbe75, 0xbe7b,
-0xbe7c, 0xbe7d, 0xbe80, 0xbe84, 0xbe8c, 0xbe8d, 0xbe8f, 0xbe90,
-0xbe91, 0xbe98, 0xbe99, 0xbea8, 0xbed0, 0xbed1, 0xbed4, 0xbed7,
-0xbed8, 0xbee0, 0xbee3, 0xbee4, 0xbee5, 0xbeec, 0xbf01, 0xbf08,
-0xbf09, 0xbf18, 0xbf19, 0xbf1b, 0xbf1c, 0xbf1d, 0xbf40, 0xbf41,
-0xbf44, 0xbf48, 0xbf50, 0xbf51, 0xbf55, 0xbf94, 0xbfb0, 0xbfc5,
-0xbfcc, 0xbfcd, 0xbfd0, 0xbfd4, 0xbfdc, 0xbfdf, 0xbfe1, 0xc03c,
-0xc051, 0xc058, 0xc05c, 0xc060, 0xc068, 0xc069, 0xc090, 0xc091,
-0xc094, 0xc098, 0xc0a0, 0xc0a1, 0xc0a3, 0xc0a5, 0xc0ac, 0xc0ad,
-0xc0af, 0xc0b0, 0xc0b3, 0xc0b4, 0xc0b5, 0xc0b6, 0xc0bc, 0xc0bd,
-0xc0bf, 0xc0c0, 0xc0c1, 0xc0c5, 0xc0c8, 0xc0c9, 0xc0cc, 0xc0d0,
-0xc0d8, 0xc0d9, 0xc0db, 0xc0dc, 0xc0dd, 0xc0e4,
-94, 0x3c21,
-0xc0e5, 0xc0e8, 0xc0ec, 0xc0f4, 0xc0f5, 0xc0f7, 0xc0f9, 0xc100,
-0xc104, 0xc108, 0xc110, 0xc115, 0xc11c, 0xc11d, 0xc11e, 0xc11f,
-0xc120, 0xc123, 0xc124, 0xc126, 0xc127, 0xc12c, 0xc12d, 0xc12f,
-0xc130, 0xc131, 0xc136, 0xc138, 0xc139, 0xc13c, 0xc140, 0xc148,
-0xc149, 0xc14b, 0xc14c, 0xc14d, 0xc154, 0xc155, 0xc158, 0xc15c,
-0xc164, 0xc165, 0xc167, 0xc168, 0xc169, 0xc170, 0xc174, 0xc178,
-0xc185, 0xc18c, 0xc18d, 0xc18e, 0xc190, 0xc194, 0xc196, 0xc19c,
-0xc19d, 0xc19f, 0xc1a1, 0xc1a5, 0xc1a8, 0xc1a9, 0xc1ac, 0xc1b0,
-0xc1bd, 0xc1c4, 0xc1c8, 0xc1cc, 0xc1d4, 0xc1d7, 0xc1d8, 0xc1e0,
-0xc1e4, 0xc1e8, 0xc1f0, 0xc1f1, 0xc1f3, 0xc1fc, 0xc1fd, 0xc200,
-0xc204, 0xc20c, 0xc20d, 0xc20f, 0xc211, 0xc218, 0xc219, 0xc21c,
-0xc21f, 0xc220, 0xc228, 0xc229, 0xc22b, 0xc22d,
-94, 0x3d21,
-0xc22f, 0xc231, 0xc232, 0xc234, 0xc248, 0xc250, 0xc251, 0xc254,
-0xc258, 0xc260, 0xc265, 0xc26c, 0xc26d, 0xc270, 0xc274, 0xc27c,
-0xc27d, 0xc27f, 0xc281, 0xc288, 0xc289, 0xc290, 0xc298, 0xc29b,
-0xc29d, 0xc2a4, 0xc2a5, 0xc2a8, 0xc2ac, 0xc2ad, 0xc2b4, 0xc2b5,
-0xc2b7, 0xc2b9, 0xc2dc, 0xc2dd, 0xc2e0, 0xc2e3, 0xc2e4, 0xc2eb,
-0xc2ec, 0xc2ed, 0xc2ef, 0xc2f1, 0xc2f6, 0xc2f8, 0xc2f9, 0xc2fb,
-0xc2fc, 0xc300, 0xc308, 0xc309, 0xc30c, 0xc30d, 0xc313, 0xc314,
-0xc315, 0xc318, 0xc31c, 0xc324, 0xc325, 0xc328, 0xc329, 0xc345,
-0xc368, 0xc369, 0xc36c, 0xc370, 0xc372, 0xc378, 0xc379, 0xc37c,
-0xc37d, 0xc384, 0xc388, 0xc38c, 0xc3c0, 0xc3d8, 0xc3d9, 0xc3dc,
-0xc3df, 0xc3e0, 0xc3e2, 0xc3e8, 0xc3e9, 0xc3ed, 0xc3f4, 0xc3f5,
-0xc3f8, 0xc408, 0xc410, 0xc424, 0xc42c, 0xc430,
-94, 0x3e21,
-0xc434, 0xc43c, 0xc43d, 0xc448, 0xc464, 0xc465, 0xc468, 0xc46c,
-0xc474, 0xc475, 0xc479, 0xc480, 0xc494, 0xc49c, 0xc4b8, 0xc4bc,
-0xc4e9, 0xc4f0, 0xc4f1, 0xc4f4, 0xc4f8, 0xc4fa, 0xc4ff, 0xc500,
-0xc501, 0xc50c, 0xc510, 0xc514, 0xc51c, 0xc528, 0xc529, 0xc52c,
-0xc530, 0xc538, 0xc539, 0xc53b, 0xc53d, 0xc544, 0xc545, 0xc548,
-0xc549, 0xc54a, 0xc54c, 0xc54d, 0xc54e, 0xc553, 0xc554, 0xc555,
-0xc557, 0xc558, 0xc559, 0xc55d, 0xc55e, 0xc560, 0xc561, 0xc564,
-0xc568, 0xc570, 0xc571, 0xc573, 0xc574, 0xc575, 0xc57c, 0xc57d,
-0xc580, 0xc584, 0xc587, 0xc58c, 0xc58d, 0xc58f, 0xc591, 0xc595,
-0xc597, 0xc598, 0xc59c, 0xc5a0, 0xc5a9, 0xc5b4, 0xc5b5, 0xc5b8,
-0xc5b9, 0xc5bb, 0xc5bc, 0xc5bd, 0xc5be, 0xc5c4, 0xc5c5, 0xc5c6,
-0xc5c7, 0xc5c8, 0xc5c9, 0xc5ca, 0xc5cc, 0xc5ce,
-94, 0x3f21,
-0xc5d0, 0xc5d1, 0xc5d4, 0xc5d8, 0xc5e0, 0xc5e1, 0xc5e3, 0xc5e5,
-0xc5ec, 0xc5ed, 0xc5ee, 0xc5f0, 0xc5f4, 0xc5f6, 0xc5f7, 0xc5fc,
-0xc5fd, 0xc5fe, 0xc5ff, 0xc600, 0xc601, 0xc605, 0xc606, 0xc607,
-0xc608, 0xc60c, 0xc610, 0xc618, 0xc619, 0xc61b, 0xc61c, 0xc624,
-0xc625, 0xc628, 0xc62c, 0xc62d, 0xc62e, 0xc630, 0xc633, 0xc634,
-0xc635, 0xc637, 0xc639, 0xc63b, 0xc640, 0xc641, 0xc644, 0xc648,
-0xc650, 0xc651, 0xc653, 0xc654, 0xc655, 0xc65c, 0xc65d, 0xc660,
-0xc66c, 0xc66f, 0xc671, 0xc678, 0xc679, 0xc67c, 0xc680, 0xc688,
-0xc689, 0xc68b, 0xc68d, 0xc694, 0xc695, 0xc698, 0xc69c, 0xc6a4,
-0xc6a5, 0xc6a7, 0xc6a9, 0xc6b0, 0xc6b1, 0xc6b4, 0xc6b8, 0xc6b9,
-0xc6ba, 0xc6c0, 0xc6c1, 0xc6c3, 0xc6c5, 0xc6cc, 0xc6cd, 0xc6d0,
-0xc6d4, 0xc6dc, 0xc6dd, 0xc6e0, 0xc6e1, 0xc6e8,
-94, 0x4021,
-0xc6e9, 0xc6ec, 0xc6f0, 0xc6f8, 0xc6f9, 0xc6fd, 0xc704, 0xc705,
-0xc708, 0xc70c, 0xc714, 0xc715, 0xc717, 0xc719, 0xc720, 0xc721,
-0xc724, 0xc728, 0xc730, 0xc731, 0xc733, 0xc735, 0xc737, 0xc73c,
-0xc73d, 0xc740, 0xc744, 0xc74a, 0xc74c, 0xc74d, 0xc74f, 0xc751,
-0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc75c,
-0xc760, 0xc768, 0xc76b, 0xc774, 0xc775, 0xc778, 0xc77c, 0xc77d,
-0xc77e, 0xc783, 0xc784, 0xc785, 0xc787, 0xc788, 0xc789, 0xc78a,
-0xc78e, 0xc790, 0xc791, 0xc794, 0xc796, 0xc797, 0xc798, 0xc79a,
-0xc7a0, 0xc7a1, 0xc7a3, 0xc7a4, 0xc7a5, 0xc7a6, 0xc7ac, 0xc7ad,
-0xc7b0, 0xc7b4, 0xc7bc, 0xc7bd, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c8,
-0xc7c9, 0xc7cc, 0xc7ce, 0xc7d0, 0xc7d8, 0xc7dd, 0xc7e4, 0xc7e8,
-0xc7ec, 0xc800, 0xc801, 0xc804, 0xc808, 0xc80a,
-94, 0x4121,
-0xc810, 0xc811, 0xc813, 0xc815, 0xc816, 0xc81c, 0xc81d, 0xc820,
-0xc824, 0xc82c, 0xc82d, 0xc82f, 0xc831, 0xc838, 0xc83c, 0xc840,
-0xc848, 0xc849, 0xc84c, 0xc84d, 0xc854, 0xc870, 0xc871, 0xc874,
-0xc878, 0xc87a, 0xc880, 0xc881, 0xc883, 0xc885, 0xc886, 0xc887,
-0xc88b, 0xc88c, 0xc88d, 0xc894, 0xc89d, 0xc89f, 0xc8a1, 0xc8a8,
-0xc8bc, 0xc8bd, 0xc8c4, 0xc8c8, 0xc8cc, 0xc8d4, 0xc8d5, 0xc8d7,
-0xc8d9, 0xc8e0, 0xc8e1, 0xc8e4, 0xc8f5, 0xc8fc, 0xc8fd, 0xc900,
-0xc904, 0xc905, 0xc906, 0xc90c, 0xc90d, 0xc90f, 0xc911, 0xc918,
-0xc92c, 0xc934, 0xc950, 0xc951, 0xc954, 0xc958, 0xc960, 0xc961,
-0xc963, 0xc96c, 0xc970, 0xc974, 0xc97c, 0xc988, 0xc989, 0xc98c,
-0xc990, 0xc998, 0xc999, 0xc99b, 0xc99d, 0xc9c0, 0xc9c1, 0xc9c4,
-0xc9c7, 0xc9c8, 0xc9ca, 0xc9d0, 0xc9d1, 0xc9d3,
-94, 0x4221,
-0xc9d5, 0xc9d6, 0xc9d9, 0xc9da, 0xc9dc, 0xc9dd, 0xc9e0, 0xc9e2,
-0xc9e4, 0xc9e7, 0xc9ec, 0xc9ed, 0xc9ef, 0xc9f0, 0xc9f1, 0xc9f8,
-0xc9f9, 0xc9fc, 0xca00, 0xca08, 0xca09, 0xca0b, 0xca0c, 0xca0d,
-0xca14, 0xca18, 0xca29, 0xca4c, 0xca4d, 0xca50, 0xca54, 0xca5c,
-0xca5d, 0xca5f, 0xca60, 0xca61, 0xca68, 0xca7d, 0xca84, 0xca98,
-0xcabc, 0xcabd, 0xcac0, 0xcac4, 0xcacc, 0xcacd, 0xcacf, 0xcad1,
-0xcad3, 0xcad8, 0xcad9, 0xcae0, 0xcaec, 0xcaf4, 0xcb08, 0xcb10,
-0xcb14, 0xcb18, 0xcb20, 0xcb21, 0xcb41, 0xcb48, 0xcb49, 0xcb4c,
-0xcb50, 0xcb58, 0xcb59, 0xcb5d, 0xcb64, 0xcb78, 0xcb79, 0xcb9c,
-0xcbb8, 0xcbd4, 0xcbe4, 0xcbe7, 0xcbe9, 0xcc0c, 0xcc0d, 0xcc10,
-0xcc14, 0xcc1c, 0xcc1d, 0xcc21, 0xcc22, 0xcc27, 0xcc28, 0xcc29,
-0xcc2c, 0xcc2e, 0xcc30, 0xcc38, 0xcc39, 0xcc3b,
-94, 0x4321,
-0xcc3c, 0xcc3d, 0xcc3e, 0xcc44, 0xcc45, 0xcc48, 0xcc4c, 0xcc54,
-0xcc55, 0xcc57, 0xcc58, 0xcc59, 0xcc60, 0xcc64, 0xcc66, 0xcc68,
-0xcc70, 0xcc75, 0xcc98, 0xcc99, 0xcc9c, 0xcca0, 0xcca8, 0xcca9,
-0xccab, 0xccac, 0xccad, 0xccb4, 0xccb5, 0xccb8, 0xccbc, 0xccc4,
-0xccc5, 0xccc7, 0xccc9, 0xccd0, 0xccd4, 0xcce4, 0xccec, 0xccf0,
-0xcd01, 0xcd08, 0xcd09, 0xcd0c, 0xcd10, 0xcd18, 0xcd19, 0xcd1b,
-0xcd1d, 0xcd24, 0xcd28, 0xcd2c, 0xcd39, 0xcd5c, 0xcd60, 0xcd64,
-0xcd6c, 0xcd6d, 0xcd6f, 0xcd71, 0xcd78, 0xcd88, 0xcd94, 0xcd95,
-0xcd98, 0xcd9c, 0xcda4, 0xcda5, 0xcda7, 0xcda9, 0xcdb0, 0xcdc4,
-0xcdcc, 0xcdd0, 0xcde8, 0xcdec, 0xcdf0, 0xcdf8, 0xcdf9, 0xcdfb,
-0xcdfd, 0xce04, 0xce08, 0xce0c, 0xce14, 0xce19, 0xce20, 0xce21,
-0xce24, 0xce28, 0xce30, 0xce31, 0xce33, 0xce35,
-94, 0x4421,
-0xce58, 0xce59, 0xce5c, 0xce5f, 0xce60, 0xce61, 0xce68, 0xce69,
-0xce6b, 0xce6d, 0xce74, 0xce75, 0xce78, 0xce7c, 0xce84, 0xce85,
-0xce87, 0xce89, 0xce90, 0xce91, 0xce94, 0xce98, 0xcea0, 0xcea1,
-0xcea3, 0xcea4, 0xcea5, 0xceac, 0xcead, 0xcec1, 0xcee4, 0xcee5,
-0xcee8, 0xceeb, 0xceec, 0xcef4, 0xcef5, 0xcef7, 0xcef8, 0xcef9,
-0xcf00, 0xcf01, 0xcf04, 0xcf08, 0xcf10, 0xcf11, 0xcf13, 0xcf15,
-0xcf1c, 0xcf20, 0xcf24, 0xcf2c, 0xcf2d, 0xcf2f, 0xcf30, 0xcf31,
-0xcf38, 0xcf54, 0xcf55, 0xcf58, 0xcf5c, 0xcf64, 0xcf65, 0xcf67,
-0xcf69, 0xcf70, 0xcf71, 0xcf74, 0xcf78, 0xcf80, 0xcf85, 0xcf8c,
-0xcfa1, 0xcfa8, 0xcfb0, 0xcfc4, 0xcfe0, 0xcfe1, 0xcfe4, 0xcfe8,
-0xcff0, 0xcff1, 0xcff3, 0xcff5, 0xcffc, 0xd000, 0xd004, 0xd011,
-0xd018, 0xd02d, 0xd034, 0xd035, 0xd038, 0xd03c,
-94, 0x4521,
-0xd044, 0xd045, 0xd047, 0xd049, 0xd050, 0xd054, 0xd058, 0xd060,
-0xd06c, 0xd06d, 0xd070, 0xd074, 0xd07c, 0xd07d, 0xd081, 0xd0a4,
-0xd0a5, 0xd0a8, 0xd0ac, 0xd0b4, 0xd0b5, 0xd0b7, 0xd0b9, 0xd0c0,
-0xd0c1, 0xd0c4, 0xd0c8, 0xd0c9, 0xd0d0, 0xd0d1, 0xd0d3, 0xd0d4,
-0xd0d5, 0xd0dc, 0xd0dd, 0xd0e0, 0xd0e4, 0xd0ec, 0xd0ed, 0xd0ef,
-0xd0f0, 0xd0f1, 0xd0f8, 0xd10d, 0xd130, 0xd131, 0xd134, 0xd138,
-0xd13a, 0xd140, 0xd141, 0xd143, 0xd144, 0xd145, 0xd14c, 0xd14d,
-0xd150, 0xd154, 0xd15c, 0xd15d, 0xd15f, 0xd161, 0xd168, 0xd16c,
-0xd17c, 0xd184, 0xd188, 0xd1a0, 0xd1a1, 0xd1a4, 0xd1a8, 0xd1b0,
-0xd1b1, 0xd1b3, 0xd1b5, 0xd1ba, 0xd1bc, 0xd1c0, 0xd1d8, 0xd1f4,
-0xd1f8, 0xd207, 0xd209, 0xd210, 0xd22c, 0xd22d, 0xd230, 0xd234,
-0xd23c, 0xd23d, 0xd23f, 0xd241, 0xd248, 0xd25c,
-94, 0x4621,
-0xd264, 0xd280, 0xd281, 0xd284, 0xd288, 0xd290, 0xd291, 0xd295,
-0xd29c, 0xd2a0, 0xd2a4, 0xd2ac, 0xd2b1, 0xd2b8, 0xd2b9, 0xd2bc,
-0xd2bf, 0xd2c0, 0xd2c2, 0xd2c8, 0xd2c9, 0xd2cb, 0xd2d4, 0xd2d8,
-0xd2dc, 0xd2e4, 0xd2e5, 0xd2f0, 0xd2f1, 0xd2f4, 0xd2f8, 0xd300,
-0xd301, 0xd303, 0xd305, 0xd30c, 0xd30d, 0xd30e, 0xd310, 0xd314,
-0xd316, 0xd31c, 0xd31d, 0xd31f, 0xd320, 0xd321, 0xd325, 0xd328,
-0xd329, 0xd32c, 0xd330, 0xd338, 0xd339, 0xd33b, 0xd33c, 0xd33d,
-0xd344, 0xd345, 0xd37c, 0xd37d, 0xd380, 0xd384, 0xd38c, 0xd38d,
-0xd38f, 0xd390, 0xd391, 0xd398, 0xd399, 0xd39c, 0xd3a0, 0xd3a8,
-0xd3a9, 0xd3ab, 0xd3ad, 0xd3b4, 0xd3b8, 0xd3bc, 0xd3c4, 0xd3c5,
-0xd3c8, 0xd3c9, 0xd3d0, 0xd3d8, 0xd3e1, 0xd3e3, 0xd3ec, 0xd3ed,
-0xd3f0, 0xd3f4, 0xd3fc, 0xd3fd, 0xd3ff, 0xd401,
-94, 0x4721,
-0xd408, 0xd41d, 0xd440, 0xd444, 0xd45c, 0xd460, 0xd464, 0xd46d,
-0xd46f, 0xd478, 0xd479, 0xd47c, 0xd47f, 0xd480, 0xd482, 0xd488,
-0xd489, 0xd48b, 0xd48d, 0xd494, 0xd4a9, 0xd4cc, 0xd4d0, 0xd4d4,
-0xd4dc, 0xd4df, 0xd4e8, 0xd4ec, 0xd4f0, 0xd4f8, 0xd4fb, 0xd4fd,
-0xd504, 0xd508, 0xd50c, 0xd514, 0xd515, 0xd517, 0xd53c, 0xd53d,
-0xd540, 0xd544, 0xd54c, 0xd54d, 0xd54f, 0xd551, 0xd558, 0xd559,
-0xd55c, 0xd560, 0xd565, 0xd568, 0xd569, 0xd56b, 0xd56d, 0xd574,
-0xd575, 0xd578, 0xd57c, 0xd584, 0xd585, 0xd587, 0xd588, 0xd589,
-0xd590, 0xd5a5, 0xd5c8, 0xd5c9, 0xd5cc, 0xd5d0, 0xd5d2, 0xd5d8,
-0xd5d9, 0xd5db, 0xd5dd, 0xd5e4, 0xd5e5, 0xd5e8, 0xd5ec, 0xd5f4,
-0xd5f5, 0xd5f7, 0xd5f9, 0xd600, 0xd601, 0xd604, 0xd608, 0xd610,
-0xd611, 0xd613, 0xd614, 0xd615, 0xd61c, 0xd620,
-94, 0x4821,
-0xd624, 0xd62d, 0xd638, 0xd639, 0xd63c, 0xd640, 0xd645, 0xd648,
-0xd649, 0xd64b, 0xd64d, 0xd651, 0xd654, 0xd655, 0xd658, 0xd65c,
-0xd667, 0xd669, 0xd670, 0xd671, 0xd674, 0xd683, 0xd685, 0xd68c,
-0xd68d, 0xd690, 0xd694, 0xd69d, 0xd69f, 0xd6a1, 0xd6a8, 0xd6ac,
-0xd6b0, 0xd6b9, 0xd6bb, 0xd6c4, 0xd6c5, 0xd6c8, 0xd6cc, 0xd6d1,
-0xd6d4, 0xd6d7, 0xd6d9, 0xd6e0, 0xd6e4, 0xd6e8, 0xd6f0, 0xd6f5,
-0xd6fc, 0xd6fd, 0xd700, 0xd704, 0xd711, 0xd718, 0xd719, 0xd71c,
-0xd720, 0xd728, 0xd729, 0xd72b, 0xd72d, 0xd734, 0xd735, 0xd738,
-0xd73c, 0xd744, 0xd747, 0xd749, 0xd750, 0xd751, 0xd754, 0xd756,
-0xd757, 0xd758, 0xd759, 0xd760, 0xd761, 0xd763, 0xd765, 0xd769,
-0xd76c, 0xd770, 0xd774, 0xd77c, 0xd77d, 0xd781, 0xd788, 0xd789,
-0xd78c, 0xd790, 0xd798, 0xd799, 0xd79b, 0xd79d,
-94, 0x4a21,
-0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475, 0x54e5,
-0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, 0x6b4c,
-0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, 0x8a36,
-0x8cc8, 0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, 0x5404,
-0x606a, 0x6164, 0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, 0x95a3,
-0x4f83, 0x520a, 0x58be, 0x5978, 0x59e6, 0x5e72, 0x5e79, 0x61c7,
-0x63c0, 0x6746, 0x67ec, 0x687f, 0x6f97, 0x764e, 0x770b, 0x78f5,
-0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e, 0x8271, 0x8aeb, 0x9593,
-0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed, 0x845b, 0x8910,
-0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x611f, 0x61be,
-0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, 0x7518, 0x75b3, 0x76e3,
-0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, 0x9f95,
-94, 0x4b21,
-0x5323, 0x5cac, 0x7532, 0x80db, 0x9240, 0x9598, 0x525b, 0x5808,
-0x59dc, 0x5ca1, 0x5d17, 0x5eb7, 0x5f3a, 0x5f4a, 0x6177, 0x6c5f,
-0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1, 0x7f8c, 0x8154, 0x8221,
-0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47, 0x4ecb, 0x4ef7,
-0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539, 0x69ea,
-0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, 0xf900,
-0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, 0x7fb9,
-0x91b5, 0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, 0x64da,
-0x64e7, 0x6e20, 0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, 0x907d,
-0x9245, 0x92f8, 0x4e7e, 0x4ef6, 0x5065, 0x5dfe, 0x5efa, 0x6106,
-0x6957, 0x8171, 0x8654, 0x8e47, 0x9375, 0x9a2b, 0x4e5e, 0x5091,
-0x6770, 0x6840, 0x5109, 0x528d, 0x5292, 0x6aa2,
-94, 0x4c21,
-0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, 0x61a9,
-0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, 0x9694,
-0x5805, 0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, 0x898b,
-0x8b74, 0x9063, 0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, 0x7f3a,
-0x8a23, 0x517c, 0x614a, 0x7b9d, 0x8b19, 0x9257, 0x938c, 0x4eac,
-0x4fd3, 0x501e, 0x50be, 0x5106, 0x52c1, 0x52cd, 0x537f, 0x5770,
-0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac, 0x64ce, 0x656c, 0x666f,
-0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1, 0x749f, 0x74a5,
-0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45, 0x7d93,
-0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x9015, 0x93e1,
-0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, 0x5553, 0x583a, 0x5951,
-0x5b63, 0x5c46, 0x60b8, 0x6212, 0x6842, 0x68b0,
-94, 0x4d21,
-0x68e8, 0x6eaa, 0x754c, 0x7678, 0x78ce, 0x7a3d, 0x7cfb, 0x7e6b,
-0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e, 0x9dc4, 0x53e4, 0x53e9,
-0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b, 0x5eab, 0x62f7,
-0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd, 0x75fc,
-0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, 0x82e6,
-0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, 0x8f9c,
-0x932e, 0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, 0x66f2,
-0x688f, 0x7a40, 0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, 0x6606,
-0x68b1, 0x68cd, 0x6efe, 0x7428, 0x889e, 0x9be4, 0x6c68, 0xf904,
-0x9aa8, 0x4f9b, 0x516c, 0x5171, 0x529f, 0x5b54, 0x5de5, 0x6050,
-0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9, 0x7a7a, 0x86a3, 0x8ca2,
-0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc,
-94, 0x4e21,
-0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, 0x9846,
-0x5ed3, 0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, 0x5bec,
-0x6163, 0x68fa, 0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, 0x7f50,
-0x83c5, 0x89c0, 0x8cab, 0x95dc, 0x9928, 0x522e, 0x605d, 0x62ec,
-0x9002, 0x4f8a, 0x5149, 0x5321, 0x58d9, 0x5ee3, 0x66e0, 0x6d38,
-0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1, 0x945b, 0x5366, 0x639b,
-0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a, 0x6127, 0x62d0,
-0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4, 0x50d1,
-0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, 0x6821,
-0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x81a0, 0x854e,
-0x86df, 0x8f03, 0x8f4e, 0x90ca, 0x9903, 0x9a55, 0x9bab, 0x4e18,
-0x4e45, 0x4e5d, 0x4ec7, 0x4ff1, 0x5177, 0x52fe,
-94, 0x4f21,
-0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614, 0x5775, 0x57a2, 0x5bc7,
-0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8, 0x67e9, 0x69cb,
-0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7, 0x7396,
-0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, 0x8205,
-0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, 0x90b1,
-0x9264, 0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, 0x570b,
-0x5c40, 0x83ca, 0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, 0x7fa4,
-0x88d9, 0x8ecd, 0x90e1, 0x5800, 0x5c48, 0x6398, 0x7a9f, 0x5bae,
-0x5f13, 0x7a79, 0x7aae, 0x828e, 0x8eac, 0x5026, 0x5238, 0x52f8,
-0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a, 0x6dc3, 0x7737, 0x53a5,
-0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3, 0x6f70, 0x8a6d,
-0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4,
-94, 0x5021,
-0x9b3c, 0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, 0x73ea,
-0x7845, 0x7aba, 0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, 0x9035,
-0x95a8, 0x52fb, 0x5747, 0x7547, 0x7b60, 0x83cc, 0x921e, 0xf908,
-0x6a58, 0x514b, 0x524b, 0x5287, 0x621f, 0x68d8, 0x6975, 0x9699,
-0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4, 0x6839, 0x69ff, 0x747e,
-0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1, 0x9949, 0xf909,
-0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981, 0x79bd,
-0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, 0x53ca,
-0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, 0x77dc,
-0x80af, 0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x5668, 0x573b,
-0x57fa, 0x57fc, 0x5914, 0x5947, 0x5993, 0x5bc4, 0x5c90, 0x5d0e,
-0x5df1, 0x5e7e, 0x5fcc, 0x6280, 0x65d7, 0x65e3,
-94, 0x5121,
-0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f, 0x6b3a, 0x6c23,
-0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482, 0x74a3,
-0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, 0x797a,
-0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, 0x8a18,
-0x8b4f, 0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, 0x9a0e,
-0x9a0f, 0x9a65, 0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, 0x6854,
-0x91d1, 0x55ab, 0x513a, 0xf90b, 0xf90c, 0x5a1c, 0x61e6, 0xf90d,
-0x62cf, 0x62ff, 0xf90e, 0xf90f, 0xf910, 0xf911, 0xf912, 0xf913,
-0x90a3, 0xf914, 0xf915, 0xf916, 0xf917, 0xf918, 0x8afe, 0xf919,
-0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156, 0xf91e, 0xf91f,
-0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f, 0x6960,
-0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925,
-94, 0x5221,
-0x7d0d, 0xf926, 0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, 0xf929,
-0xf92a, 0xf92b, 0xf92c, 0x4e43, 0xf92d, 0x5167, 0x5948, 0x67f0,
-0x8010, 0xf92e, 0x5973, 0x5e74, 0x649a, 0x79ca, 0x5ff5, 0x606c,
-0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa, 0xf92f, 0x5974, 0x5f29,
-0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933, 0xf934, 0xf935,
-0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b, 0xf93c,
-0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, 0x6fc3,
-0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, 0x8166,
-0xf948, 0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e,
-0xf94f, 0xf950, 0xf951, 0x5ae9, 0x8a25, 0x677b, 0x7d10, 0xf952,
-0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0x80fd, 0xf958, 0xf959,
-0x5c3c, 0x6ce5, 0x533f, 0x6eba, 0x591a, 0x8336,
-94, 0x5321,
-0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56, 0x65b7,
-0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, 0x7dde,
-0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, 0x75b8,
-0x9054, 0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, 0x6e5b,
-0x6f6d, 0x6fb9, 0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, 0x8ac7,
-0x8b5a, 0x931f, 0x6c93, 0x7553, 0x7b54, 0x8e0f, 0x905d, 0x5510,
-0x5802, 0x5858, 0x5e62, 0x6207, 0x649e, 0x68e0, 0x7576, 0x7cd6,
-0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e, 0x5927, 0x5c0d, 0x5cb1,
-0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa, 0x888b, 0x8cb8,
-0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200, 0x5230,
-0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, 0x5ea6,
-0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843,
-94, 0x5421,
-0x68f9, 0x6ac2, 0x6dd8, 0x6e21, 0x6ed4, 0x6fe4, 0x71fe, 0x76dc,
-0x7779, 0x79b1, 0x7a3b, 0x8404, 0x89a9, 0x8ced, 0x8df3, 0x8e48,
-0x9003, 0x9014, 0x9053, 0x90fd, 0x934d, 0x9676, 0x97dc, 0x6bd2,
-0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf, 0x7be4, 0x7e9b,
-0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c, 0x711e,
-0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, 0x51cd,
-0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, 0x6f7c,
-0x75bc, 0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, 0x6597,
-0x675c, 0x6793, 0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, 0x9017,
-0x982d, 0x5c6f, 0x81c0, 0x829a, 0x9041, 0x906f, 0x920d, 0x5f97,
-0x5d9d, 0x6a59, 0x71c8, 0x767b, 0x7b49, 0x85e4, 0x8b04, 0x9127,
-0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669, 0x7f85,
-94, 0x5521,
-0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, 0x73de,
-0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, 0x5375,
-0x6b04, 0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, 0x8fa3,
-0x5d50, 0x64e5, 0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, 0x85cd,
-0x8964, 0x89bd, 0x62c9, 0x81d8, 0x881f, 0x5eca, 0x6717, 0x6d6a,
-0x72fc, 0x7405, 0x746f, 0x8782, 0x90de, 0x4f86, 0x5d0d, 0x5fa0,
-0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae, 0x5006, 0x5169, 0x51c9,
-0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f, 0x8ad2, 0x8f1b,
-0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e, 0x623e,
-0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, 0x9a62,
-0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, 0x792b,
-0x8f62, 0x9742, 0x6190, 0x6200, 0x6523, 0x6f23,
-94, 0x5621,
-0x7149, 0x7489, 0x7df4, 0x806f, 0x84ee, 0x8f26, 0x9023, 0x934a,
-0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8, 0x88c2, 0x5ec9, 0x6582,
-0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36, 0x56f9, 0xf95f,
-0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce, 0x8046,
-0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, 0x6fa7,
-0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, 0x6ad3,
-0x6f5e, 0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, 0x8def,
-0x8f05, 0x9732, 0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, 0x7da0,
-0x83c9, 0x9304, 0x9e7f, 0x9e93, 0x8ad6, 0x58df, 0x5f04, 0x6727,
-0x7027, 0x74cf, 0x7c60, 0x807e, 0x5121, 0x7028, 0x7262, 0x78ca,
-0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86, 0x50da, 0x5bee, 0x5ed6,
-0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, 0x84fc,
-94, 0x5721,
-0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, 0x6dda,
-0x6f0f, 0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, 0x964b,
-0x5289, 0x65d2, 0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, 0x7409,
-0x7460, 0x7559, 0x7624, 0x786b, 0x8b2c, 0x985e, 0x516d, 0x622e,
-0x9678, 0x4f96, 0x502b, 0x5d19, 0x6dea, 0x7db8, 0x8f2a, 0x5f8b,
-0x6144, 0x6817, 0xf961, 0x9686, 0x52d2, 0x808b, 0x51dc, 0x51cc,
-0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda, 0x5229, 0x5398,
-0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c, 0x7281,
-0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, 0x7fb8,
-0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, 0x541d,
-0x6f7e, 0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, 0x9e9f,
-0x6797, 0x6dcb, 0x7433, 0x81e8, 0x9716, 0x782c,
-94, 0x5821,
-0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a, 0x75f2, 0x78bc, 0x78e8,
-0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20, 0x819c, 0x83ab,
-0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162, 0x633d,
-0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, 0x8513,
-0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, 0x6cab,
-0x8309, 0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, 0x671b,
-0x7db2, 0x7f54, 0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, 0x57cb,
-0x59b9, 0x5a92, 0x5bd0, 0x6627, 0x679a, 0x6885, 0x6bcf, 0x7164,
-0x7f75, 0x8cb7, 0x8ce3, 0x9081, 0x9b45, 0x8108, 0x8c8a, 0x964c,
-0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b, 0x76f2, 0x76df, 0x840c,
-0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, 0x68c9, 0x6c94, 0x7704,
-0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, 0x6ec5,
-94, 0x5921,
-0x8511, 0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, 0x6e9f,
-0x76bf, 0x7791, 0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, 0x9cf4,
-0x8882, 0x4fae, 0x5192, 0x52df, 0x59c6, 0x5e3d, 0x6155, 0x6478,
-0x6479, 0x66ae, 0x67d0, 0x6a21, 0x6bcd, 0x6bdb, 0x725f, 0x7261,
-0x7441, 0x7738, 0x77db, 0x8017, 0x82bc, 0x8305, 0x8b00, 0x8b28,
-0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766, 0x7a46, 0x9da9,
-0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893, 0x5999,
-0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, 0x82d7,
-0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, 0x64ab,
-0x65e0, 0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, 0x7e46,
-0x821e, 0x8302, 0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, 0x58a8,
-0x9ed8, 0x5011, 0x520e, 0x543b, 0x554f, 0x6587,
-94, 0x5a21,
-0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580, 0x96ef, 0x52ff,
-0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c, 0x5fae,
-0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, 0x7f8e,
-0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, 0x610d,
-0x61ab, 0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, 0x73c9,
-0x7de1, 0x9594, 0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, 0x62cd,
-0x640f, 0x64b2, 0x6734, 0x6a38, 0x6cca, 0x73c0, 0x749e, 0x7b94,
-0x7c95, 0x7e1b, 0x818a, 0x8236, 0x8584, 0x8feb, 0x96f9, 0x99c1,
-0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc, 0x642c, 0x6500, 0x6591,
-0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622, 0x76e4, 0x76fc,
-0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, 0x87e0, 0x8fd4, 0x9812,
-0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, 0x6f51,
-94, 0x5b21,
-0x767c, 0x8dcb, 0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, 0x508d,
-0x574a, 0x59a8, 0x5c28, 0x5e47, 0x5f77, 0x623f, 0x653e, 0x65b9,
-0x65c1, 0x6609, 0x678b, 0x699c, 0x6ec2, 0x78c5, 0x7d21, 0x80aa,
-0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c, 0x8a2a, 0x8b17, 0x90a6,
-0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9, 0x5f98, 0x62dc,
-0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da, 0x88f4,
-0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, 0x4f70,
-0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, 0x6a0a,
-0x7169, 0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, 0x98dc,
-0x4f10, 0x7b4f, 0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, 0x6c3e,
-0x6c4e, 0x6cdb, 0x72af, 0x7bc4, 0x8303, 0x6cd5, 0x743a, 0x50fb,
-0x5288, 0x58c1, 0x64d8, 0x6a97, 0x74a7, 0x7656,
-94, 0x5c21,
-0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01, 0x8b8a,
-0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, 0x4e19,
-0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, 0x68c5,
-0x70b3, 0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, 0x9a08,
-0x4fdd, 0x5821, 0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, 0x6e7a,
-0x6f7d, 0x73e4, 0x752b, 0x83e9, 0x88dc, 0x8913, 0x8b5c, 0x8f14,
-0x4f0f, 0x50d5, 0x5310, 0x535c, 0x5b93, 0x5fa9, 0x670d, 0x798f,
-0x8179, 0x832f, 0x8514, 0x8907, 0x8986, 0x8f39, 0x8f3b, 0x99a5,
-0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01, 0x5cef, 0x5cf0,
-0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x84ec, 0x8702,
-0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, 0x4fef, 0x5085, 0x5256,
-0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, 0x5a66,
-94, 0x5d21,
-0x5b5a, 0x5b75, 0x5bcc, 0x5e9c, 0xf966, 0x6276, 0x6577, 0x65a7,
-0x6d6e, 0x6ea5, 0x7236, 0x7b26, 0x7c3f, 0x7f36, 0x8150, 0x8151,
-0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03, 0x8ca0, 0x8ce6, 0x8cfb,
-0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644, 0x99d9, 0x9ce7,
-0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e, 0x5fff,
-0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, 0x7cde,
-0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, 0x5f7f,
-0x62c2, 0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, 0x4e15,
-0x5099, 0x5315, 0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, 0x60b2,
-0x618a, 0x6249, 0x6279, 0x6590, 0x6787, 0x69a7, 0x6bd4, 0x6bd6,
-0x6bd7, 0x6bd8, 0x6cb8, 0xf968, 0x7435, 0x75fa, 0x7812, 0x7891,
-0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1, 0x80a5,
-94, 0x5e21,
-0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, 0x8cbb,
-0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, 0x658c,
-0x6ab3, 0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, 0x8ca7,
-0x8cd3, 0x983b, 0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, 0x4e8b,
-0x4e9b, 0x4ed5, 0x4f3a, 0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, 0x53f2,
-0x53f8, 0x5506, 0x55e3, 0x56db, 0x58eb, 0x5962, 0x5a11, 0x5beb,
-0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99, 0x601d, 0x6368, 0x659c,
-0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99, 0x6cd7, 0x6e23,
-0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1, 0x7be9,
-0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x86c7, 0x88df,
-0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, 0x8fad, 0x90aa, 0x98fc,
-0x99df, 0x9e9d, 0x524a, 0xf969, 0x6714, 0xf96a,
-94, 0x5f21,
-0x5098, 0x522a, 0x5c71, 0x6563, 0x6c55, 0x73ca, 0x7523, 0x759d,
-0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77, 0x6492, 0x6bba, 0x715e,
-0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17, 0x829f, 0x8518,
-0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7, 0x50cf,
-0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, 0x5e38,
-0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, 0x723d,
-0x7240, 0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, 0x89f4,
-0x8a73, 0x8c61, 0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, 0x55c7,
-0xf96c, 0x7a61, 0x7d22, 0x8272, 0x7272, 0x751f, 0x7525, 0xf96d,
-0x7b19, 0x5885, 0x58fb, 0x5dbc, 0x5e8f, 0x5eb6, 0x5f90, 0x6055,
-0x6292, 0x637f, 0x654d, 0x6691, 0x66d9, 0x66f8, 0x6816, 0x68f2,
-0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72,
-94, 0x6021,
-0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, 0x9ecd,
-0x9f20, 0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, 0x6790,
-0x6c50, 0x6dc5, 0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, 0x932b,
-0x4ed9, 0x50ca, 0x5148, 0x5584, 0x5b0b, 0x5ba3, 0x6247, 0x657e,
-0x65cb, 0x6e32, 0x717d, 0x7401, 0x7444, 0x7487, 0x74bf, 0x766c,
-0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a, 0x81b3, 0x8239, 0x861a,
-0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425, 0x994d, 0x9bae,
-0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c, 0x859b,
-0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, 0x6bb2,
-0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x6d89, 0x71ee,
-0xf96e, 0x57ce, 0x59d3, 0x5bac, 0x6027, 0x60fa, 0x6210, 0x661f,
-0x665f, 0x7329, 0x73f9, 0x76db, 0x7701, 0x7b6c,
-94, 0x6121,
-0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192, 0x4e16, 0x52e2, 0x6b72,
-0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0, 0x53ec, 0x562f,
-0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383, 0x6414,
-0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, 0x71d2,
-0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, 0x7d20,
-0x7d39, 0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, 0x90b5,
-0x92b7, 0x97f6, 0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, 0x7c9f,
-0x7e8c, 0x8b16, 0x8d16, 0x901f, 0x5b6b, 0x5dfd, 0x640d, 0x84c0,
-0x905c, 0x98e1, 0x7387, 0x5b8b, 0x609a, 0x677e, 0x6dde, 0x8a1f,
-0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970, 0x7051, 0x788e, 0x9396,
-0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da, 0x5782, 0x58fd,
-0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101,
-94, 0x6221,
-0x620d, 0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, 0x6b8a,
-0x6c34, 0x6d19, 0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, 0x74b2,
-0x7626, 0x7761, 0x79c0, 0x7a57, 0x7aea, 0x7cb9, 0x7d8f, 0x7dac,
-0x7e61, 0x7f9e, 0x8129, 0x8331, 0x8490, 0x84da, 0x85ea, 0x8896,
-0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083, 0x916c, 0x9296, 0x92b9,
-0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808, 0x9996, 0x9ad3,
-0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1, 0x6f5a,
-0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, 0x5faa,
-0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, 0x6df3,
-0x73e3, 0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x821c, 0x8340,
-0x84f4, 0x8563, 0x8a62, 0x8ac4, 0x9187, 0x931e, 0x9806, 0x99b4,
-0x620c, 0x8853, 0x8ff0, 0x9265, 0x5d07, 0x5d27,
-94, 0x6321,
-0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe, 0x7fd2, 0x8936,
-0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f, 0x6607,
-0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, 0x5aa4,
-0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, 0x662f,
-0x6642, 0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, 0x8494,
-0x84cd, 0x8996, 0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, 0x57f4,
-0x5bd4, 0x5f0f, 0x606f, 0x62ed, 0x690d, 0x6b96, 0x6e5c, 0x7184,
-0x7bd2, 0x8755, 0x8b58, 0x8efe, 0x98df, 0x98fe, 0x4f38, 0x4f81,
-0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c, 0x65b0, 0x6668, 0x71fc,
-0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398, 0x85aa, 0x85ce,
-0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931, 0x5ba4,
-0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81,
-94, 0x6421,
-0xf972, 0x6df1, 0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, 0x5341,
-0xf973, 0x96d9, 0x6c0f, 0x4e9e, 0x4fc4, 0x5152, 0x555e, 0x5a25,
-0x5ce8, 0x6211, 0x7259, 0x82bd, 0x83aa, 0x86fe, 0x8859, 0x8a1d,
-0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d, 0x580a, 0x5cb3, 0x5dbd,
-0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25, 0x9102, 0x9354,
-0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f, 0x6848,
-0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, 0x8ecb,
-0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, 0x83f4,
-0x95c7, 0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, 0x600f,
-0x663b, 0x6b83, 0x79e7, 0x9d26, 0x5393, 0x54c0, 0x57c3, 0x5d16,
-0x611b, 0x66d6, 0x6daf, 0x788d, 0x827e, 0x9698, 0x9744, 0x5384,
-0x627c, 0x6396, 0x6db2, 0x7e0a, 0x814b, 0x984d,
-94, 0x6521,
-0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6, 0x591c,
-0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, 0x5f31,
-0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, 0x8e8d,
-0xf977, 0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, 0x63da,
-0x6518, 0x656d, 0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, 0x7001,
-0x716c, 0x75d2, 0x760d, 0x79b3, 0x7a70, 0xf97b, 0x7f8a, 0xf97c,
-0x8944, 0xf97d, 0x8b93, 0x91c0, 0x967d, 0xf97e, 0x990a, 0x5704,
-0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6, 0x8a9e, 0x99ad, 0x9b5a,
-0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6, 0x5043, 0x5830,
-0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa, 0x513c,
-0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, 0x4e88,
-0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982,
-94, 0x6621,
-0xf983, 0x6b5f, 0x6c5d, 0xf984, 0x74b5, 0x7916, 0xf985, 0x8207,
-0x8245, 0x8339, 0x8f3f, 0x8f5d, 0xf986, 0x9918, 0xf987, 0xf988,
-0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79, 0x6613, 0xf98b, 0xf98c,
-0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b, 0x56a5, 0x5827,
-0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990, 0x6350,
-0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, 0x6df5,
-0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, 0x71d5,
-0xf994, 0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, 0x7e2f,
-0xf997, 0x884d, 0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, 0xf99b,
-0x9cf6, 0xf99c, 0xf99d, 0xf99e, 0x6085, 0x6d85, 0xf99f, 0x71b1,
-0xf9a0, 0xf9a1, 0x95b1, 0x53ad, 0xf9a2, 0xf9a3, 0xf9a4, 0x67d3,
-0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276, 0x82d2,
-94, 0x6721,
-0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, 0x8449,
-0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, 0xf9ac,
-0x6620, 0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, 0x6f41,
-0x6fda, 0x701b, 0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, 0x745b,
-0xf9ae, 0x74d4, 0x76c8, 0x7a4e, 0x7e93, 0xf9af, 0xf9b0, 0x82f1,
-0x8a60, 0x8fce, 0xf9b1, 0x9348, 0xf9b2, 0x9719, 0xf9b3, 0xf9b4,
-0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1, 0x66f3, 0x6c6d, 0x6fca,
-0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602, 0xf9b6, 0x88d4,
-0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713, 0x9810,
-0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, 0x55da,
-0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, 0x61ca,
-0x6556, 0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3,
-94, 0x6821,
-0x70cf, 0x71ac, 0x7352, 0x7b7d, 0x8708, 0x8aa4, 0x9c32, 0x9f07,
-0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a, 0x6eab, 0x7465, 0x761f,
-0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1, 0x74ee, 0x7515,
-0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6, 0x7aa9,
-0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, 0x5b9b,
-0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, 0x7de9,
-0x7feb, 0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, 0x66f0,
-0x5f80, 0x65fa, 0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, 0x6b6a,
-0x77ee, 0x5916, 0x5d6c, 0x5dcd, 0x7325, 0x754f, 0xf9ba, 0xf9bb,
-0x50e5, 0x51f9, 0x582f, 0x592d, 0x5996, 0x59da, 0x5be5, 0xf9bc,
-0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493, 0x64fe, 0xf9be, 0x66dc,
-0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, 0xf9c1,
-94, 0x6921,
-0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, 0x87ef,
-0x8981, 0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, 0x6b32,
-0x6d74, 0x7e1f, 0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, 0x52c7,
-0x57c7, 0x5889, 0x5bb9, 0x5eb8, 0x6142, 0x6995, 0x6d8c, 0x6e67,
-0x6eb6, 0x7194, 0x7462, 0x7528, 0x752c, 0x8073, 0x8338, 0x84c9,
-0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e, 0x4f51, 0x5076, 0x512a,
-0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24, 0x611a, 0x6182,
-0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991, 0x79b9,
-0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, 0x90f5,
-0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, 0x6631,
-0x682f, 0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, 0x6a52,
-0x6b9e, 0x6f90, 0x7189, 0x8018, 0x82b8, 0x8553,
-94, 0x6a21,
-0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a, 0x9b31, 0x4e90, 0x718a,
-0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712, 0x57a3, 0x5a9b,
-0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39, 0x6e72,
-0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, 0x9060,
-0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, 0x4f4d,
-0x5049, 0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, 0x6170,
-0x6690, 0x6e2d, 0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, 0x8466,
-0x853f, 0x875f, 0x885b, 0x8918, 0x8b02, 0x9055, 0x97cb, 0x9b4f,
-0x4e73, 0x4f91, 0x5112, 0x516a, 0xf9c7, 0x552f, 0x55a9, 0x5b7a,
-0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0, 0x60df, 0x6108, 0x6109,
-0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, 0x67da, 0xf9c9, 0x6961,
-0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, 0xf9cb,
-94, 0x6b21,
-0x6fe1, 0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, 0x7652,
-0xf9ce, 0xf9cf, 0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, 0x8adb,
-0x8aed, 0x8e30, 0x8e42, 0x904a, 0x903e, 0x907a, 0x9149, 0x91c9,
-0x936e, 0xf9d0, 0xf9d1, 0x5809, 0xf9d2, 0x6bd3, 0x8089, 0x80b2,
-0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39, 0xf9d5, 0xf9d6, 0x6f64,
-0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f, 0xf9d8, 0xf9d9,
-0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d, 0xf9dc,
-0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, 0x4e59,
-0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, 0x6ce3,
-0x9091, 0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, 0x5100,
-0x5b9c, 0x610f, 0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, 0x77e3,
-0x7fa9, 0x8264, 0x858f, 0x87fb, 0x8863, 0x8abc,
-94, 0x6c21,
-0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd, 0xf9de, 0x5937,
-0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0, 0xf9e1,
-0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, 0xf9e5,
-0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, 0xf9e7,
-0xf9e8, 0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, 0x990c,
-0xf9eb, 0xf9ec, 0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, 0x8b1a,
-0x4eba, 0x4ec1, 0x5203, 0x5370, 0xf9ed, 0x54bd, 0x56e0, 0x59fb,
-0x5bc5, 0x5f15, 0x5fcd, 0x6e6e, 0xf9ee, 0xf9ef, 0x7d6a, 0x8335,
-0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d, 0x9777, 0xf9f2, 0xf9f3,
-0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2, 0x9038, 0x93b0,
-0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, 0x6041, 0xf9f4, 0xf9f5,
-0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, 0x5344,
-94, 0x6d21,
-0xf9f7, 0xf9f8, 0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, 0x4ed4,
-0x523a, 0x54a8, 0x59c9, 0x59ff, 0x5b50, 0x5b57, 0x5b5c, 0x6063,
-0x6148, 0x6ecb, 0x7099, 0x716e, 0x7386, 0x74f7, 0x75b5, 0x78c1,
-0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517, 0x85c9, 0x8aee, 0x8cc7,
-0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628, 0x707c, 0x70b8,
-0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71, 0x68e7,
-0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, 0x7c2a,
-0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, 0x58ef,
-0x596c, 0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, 0x6756,
-0x6a1f, 0x6aa3, 0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, 0x748b,
-0x7ae0, 0x7ca7, 0x8178, 0x81df, 0x81e7, 0x838a, 0x846c, 0x8523,
-0x8594, 0x85cf, 0x88dd, 0x8d13, 0x91ac, 0x9577,
-94, 0x6e21,
-0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750, 0x683d,
-0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, 0x8f09,
-0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, 0x4f4e,
-0x5132, 0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, 0x6a17,
-0x6cae, 0x6e1a, 0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, 0x82e7,
-0x83f9, 0x8457, 0x85f7, 0x8a5b, 0x8caf, 0x8e87, 0x9019, 0x90b8,
-0x96ce, 0x9f5f, 0x52e3, 0x540a, 0x5ae1, 0x5bc2, 0x6458, 0x6575,
-0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d, 0x7b1b, 0x7c4d, 0x7e3e,
-0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1, 0x8e5f, 0x8fea,
-0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x5168, 0x5178,
-0x524d, 0x526a, 0x5861, 0x587c, 0x5960, 0x5c08, 0x5c55, 0x5edb,
-0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, 0x6fb1,
-94, 0x6f21,
-0x714e, 0x7420, 0x7530, 0x7538, 0x7551, 0x7672, 0x7b4c, 0x7b8b,
-0x7bad, 0x7bc6, 0x7e8f, 0x8a6e, 0x8f3e, 0x8f49, 0x923f, 0x9293,
-0x9322, 0x942b, 0x96fb, 0x985a, 0x986b, 0x991e, 0x5207, 0x622a,
-0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76, 0x5360, 0x5cbe,
-0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede, 0x63a5,
-0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, 0x5448,
-0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, 0x633a,
-0x653f, 0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, 0x6a89,
-0x6b63, 0x6c40, 0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, 0x70a1,
-0x738e, 0x73fd, 0x753a, 0x775b, 0x7887, 0x798e, 0x7a0b, 0x7a7d,
-0x7cbe, 0x7d8e, 0x8247, 0x8a02, 0x8aea, 0x8c9e, 0x912d, 0x914a,
-0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706, 0x9756,
-94, 0x7021,
-0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, 0x5e1d,
-0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, 0x81cd,
-0x85ba, 0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, 0x973d,
-0x984c, 0x9f4a, 0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, 0x5f14,
-0x5f6b, 0x63aa, 0x64cd, 0x65e9, 0x6641, 0x66fa, 0x66f9, 0x671d,
-0x689d, 0x68d7, 0x69fd, 0x6f15, 0x6f6e, 0x7167, 0x71e5, 0x722a,
-0x74aa, 0x773a, 0x7956, 0x795a, 0x79df, 0x7a20, 0x7a95, 0x7c97,
-0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4, 0x8a54, 0x8abf,
-0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5, 0x9ce5,
-0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x5352, 0x62d9,
-0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, 0x616b, 0x68d5, 0x6dd9,
-0x742e, 0x7a2e, 0x7d42, 0x7d9c, 0x7e31, 0x816b,
-94, 0x7121,
-0x8e2a, 0x8e35, 0x937e, 0x9418, 0x4f50, 0x5750, 0x5de6, 0x5ea7,
-0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f, 0x505a, 0x59dd, 0x80c4,
-0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde, 0x5eda, 0x665d,
-0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d, 0x70b7,
-0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, 0x86db,
-0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, 0x9152,
-0x9444, 0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, 0x57c8,
-0x5bef, 0x5cfb, 0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, 0x710c,
-0x756f, 0x7ae3, 0x8822, 0x9021, 0x9075, 0x96cb, 0x99ff, 0x8301,
-0x4e2d, 0x4ef2, 0x8846, 0x91cd, 0x537d, 0x6adb, 0x696b, 0x6c41,
-0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef, 0x70dd, 0x7511, 0x75c7,
-0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea,
-94, 0x7221,
-0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, 0x652f,
-0x65e8, 0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, 0x6f2c,
-0x77e5, 0x7825, 0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, 0x81f3,
-0x829d, 0x82b7, 0x8718, 0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, 0x9072,
-0x76f4, 0x7a19, 0x7a37, 0x7e54, 0x8077, 0x5507, 0x55d4, 0x5875,
-0x632f, 0x6422, 0x6649, 0x664b, 0x686d, 0x699b, 0x6b84, 0x6d25,
-0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9, 0x76e1, 0x771e,
-0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897, 0x8a3a,
-0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, 0x9707,
-0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x74c6, 0x75be,
-0x79e9, 0x7a92, 0x81a3, 0x86ed, 0x8cea, 0x8dcc, 0x8fed, 0x659f,
-0x6715, 0xf9fd, 0x57f7, 0x6f57, 0x7ddd, 0x8f2f,
-94, 0x7321,
-0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84, 0x4e14, 0x4f98, 0x501f,
-0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64, 0x78cb, 0x7b9a,
-0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740, 0x7a84,
-0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, 0x74da,
-0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, 0x947d,
-0x9910, 0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, 0x50ed,
-0x53c3, 0x5879, 0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, 0x8b92,
-0x8b96, 0x5009, 0x5021, 0x5275, 0x5531, 0x5a3c, 0x5ee0, 0x5f70,
-0x6134, 0x655e, 0x660c, 0x6636, 0x66a2, 0x69cd, 0x6ec4, 0x6f32,
-0x7316, 0x7621, 0x7a93, 0x8139, 0x8259, 0x83d6, 0x84bc, 0x50b5,
-0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826, 0x7db5, 0x83dc,
-0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56,
-94, 0x7421,
-0x8cac, 0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, 0x5254,
-0x5c3a, 0x617d, 0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, 0x7620,
-0x810a, 0x8e60, 0x965f, 0x96bb, 0x4edf, 0x5343, 0x5598, 0x5929,
-0x5ddd, 0x64c5, 0x6cc9, 0x6dfa, 0x7394, 0x7a7f, 0x821b, 0x85a6,
-0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1, 0x9621, 0x97c6, 0x51f8,
-0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4, 0x8f1f, 0x8f4d,
-0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb, 0x7c3d,
-0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, 0x7252,
-0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, 0x6df8,
-0x807d, 0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x5243, 0x66ff,
-0x6d95, 0x6eef, 0x7de0, 0x8ae6, 0x902e, 0x905e, 0x9ad4, 0x521d,
-0x527f, 0x54e8, 0x6194, 0x6284, 0x62db, 0x68a2,
-94, 0x7521,
-0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d, 0x7901, 0x790e,
-0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549, 0x8c82,
-0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, 0x77d7,
-0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, 0x585a,
-0x5bf5, 0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, 0x9283,
-0x64ae, 0x50ac, 0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, 0x690e,
-0x6978, 0x6a1e, 0x6e6b, 0x76ba, 0x79cb, 0x82bb, 0x8429, 0x8acf,
-0x8da8, 0x8ffd, 0x9112, 0x914b, 0x919c, 0x9310, 0x9318, 0x939a,
-0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c, 0x795d, 0x7afa, 0x7b51,
-0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8, 0x9010, 0x6625,
-0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0, 0x6c96,
-0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403,
-94, 0x7621,
-0x8d05, 0x53d6, 0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, 0x7fe0,
-0x805a, 0x8106, 0x81ed, 0x8da3, 0x9189, 0x9a5f, 0x9df2, 0x5074,
-0x4ec4, 0x53a0, 0x60fb, 0x6e2c, 0x5c64, 0x4f88, 0x5024, 0x55e4,
-0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb, 0x6dc4, 0x71be, 0x75d4,
-0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb, 0x7f6e, 0x81f4,
-0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5, 0x98ed,
-0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, 0x6c88,
-0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, 0x7a31,
-0x5feb, 0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, 0x6253,
-0x62d6, 0x6736, 0x6955, 0x8235, 0x9640, 0x99b1, 0x99dd, 0x502c,
-0x5353, 0x5544, 0x577c, 0xfa01, 0x6258, 0xfa02, 0x64e2, 0x666b,
-0x67dd, 0x6fc1, 0x6fef, 0x7422, 0x7438, 0x8a17,
-94, 0x7721,
-0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e, 0x7058,
-0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, 0x803d,
-0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, 0xfa03,
-0x8569, 0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, 0x6c70,
-0x6cf0, 0x7b1e, 0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, 0xfa04,
-0x64c7, 0x6fa4, 0x6491, 0x6504, 0x514e, 0x5410, 0x571f, 0x8a0e,
-0x615f, 0x6876, 0xfa05, 0x75db, 0x7b52, 0x7d71, 0x901a, 0x5806,
-0x69cc, 0x817f, 0x892a, 0x9000, 0x9839, 0x5078, 0x5957, 0x59ac,
-0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6, 0x5761, 0x5a46,
-0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e, 0x722c,
-0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, 0x5742,
-0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211,
-94, 0x7821,
-0x962a, 0x516b, 0x53ed, 0x634c, 0x4f69, 0x5504, 0x6096, 0x6557,
-0x6c9b, 0x6d7f, 0x724c, 0x72fd, 0x7a17, 0x8987, 0x8c9d, 0x5f6d,
-0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf, 0x504f, 0x6241, 0x7247,
-0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19, 0x8cb6, 0x576a,
-0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63, 0x5ee2,
-0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, 0x5305,
-0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, 0x629b,
-0x62b1, 0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, 0x80de,
-0x812f, 0x82de, 0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, 0x92ea,
-0x98fd, 0x9b91, 0x5e45, 0x66b4, 0x66dd, 0x7011, 0x7206, 0xfa07,
-0x4ff5, 0x527d, 0x5f6a, 0x6153, 0x6753, 0x6a19, 0x6f02, 0x74e2,
-0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4, 0x9a43,
-94, 0x7921,
-0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, 0x5f7c,
-0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, 0x5f3c,
-0x5fc5, 0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, 0x999d,
-0x4e4f, 0x903c, 0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, 0x6630,
-0x6cb3, 0x7455, 0x8377, 0x8766, 0x8cc0, 0x9050, 0x971e, 0x9c15,
-0x58d1, 0x5b78, 0x8650, 0x8b14, 0x9db4, 0x5bd2, 0x6068, 0x608d,
-0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a, 0x7f55, 0x7ff0, 0x9591,
-0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd, 0x542b, 0x54b8,
-0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c, 0x9677,
-0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, 0x965c,
-0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, 0x676d,
-0x6841, 0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a,
-94, 0x7a21,
-0xfa08, 0xfa09, 0x9805, 0x4ea5, 0x5055, 0x54b3, 0x5793, 0x595a,
-0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77, 0x7023, 0x87f9, 0x89e3,
-0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be, 0x6838, 0x5016,
-0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae, 0x73e6,
-0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, 0x865b,
-0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, 0x9a57,
-0x5955, 0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, 0x61f8,
-0x665b, 0x6ceb, 0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, 0x774d,
-0x7d43, 0x7d62, 0x7e23, 0x8237, 0x8852, 0xfa0a, 0x8ce2, 0x9249,
-0x986f, 0x5b51, 0x7a74, 0x8840, 0x9801, 0x5acc, 0x4fe0, 0x5354,
-0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9, 0x8105, 0x8107, 0x83a2,
-0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, 0x578b,
-94, 0x7b21,
-0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, 0x73e9,
-0x7469, 0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, 0x99a8,
-0x516e, 0x5f57, 0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, 0x91af,
-0x978b, 0x4e4e, 0x4e92, 0x547c, 0x58d5, 0x58fa, 0x597d, 0x5cb5,
-0x5f27, 0x6236, 0x6248, 0x660a, 0x6667, 0x6beb, 0x6d69, 0x6dcf,
-0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9, 0x705d, 0x72d0, 0x7425,
-0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e, 0x80e1, 0x82a6,
-0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a, 0x93ac,
-0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, 0x6df7,
-0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, 0x5f18,
-0x6c5e, 0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, 0x9d3b,
-0x5316, 0x548c, 0x5b05, 0x6a3a, 0x706b, 0x7575,
-94, 0x7c21,
-0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71, 0x8b41, 0x8ca8, 0x9774,
-0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b, 0x4e38, 0x559a,
-0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665, 0x6853,
-0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, 0x6d3b,
-0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, 0x604d,
-0x60f6, 0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, 0x6e5f,
-0x6ec9, 0x6f62, 0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, 0x8352,
-0x8757, 0x9051, 0x968d, 0x9ec3, 0x532f, 0x56de, 0x5efb, 0x5f8a,
-0x6062, 0x6094, 0x61f7, 0x6666, 0x6703, 0x6a9c, 0x6dee, 0x6fae,
-0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334, 0x86d4, 0x8aa8, 0x8cc4,
-0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, 0x54ee, 0x5686, 0x5b5d,
-0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, 0x6dc6,
-94, 0x7d21,
-0x723b, 0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, 0x540e,
-0x543c, 0x5589, 0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, 0x73dd,
-0x9005, 0x52db, 0x52f3, 0x5864, 0x58ce, 0x7104, 0x718f, 0x71fb,
-0x85b0, 0x8a13, 0x6688, 0x85a8, 0x55a7, 0x6684, 0x714a, 0x8431,
-0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd, 0x63ee, 0x6689, 0x7147,
-0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb, 0x7566, 0x8667,
-0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36, 0x80f8,
-0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, 0x7d07,
-0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, 0x7fd5,
-0x8208, 0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, 0x5b09,
-0x5e0c, 0x6199, 0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, 0x71b9,
-0x71ba, 0x72a7, 0x79a7, 0x7a00, 0x7fb2, 0x8a70,
-0
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/memmove.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#include <stddef.h>
-
-void *memmove(void *p1, const void *p2, size_t n)
-{
-  bcopy(p2, p1, n);
-  return p1;
-}
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/parseAttribute.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,472 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "Parser.h"
-#include "MessageArg.h"
-#include "token.h"
-#include "macros.h"
-#include "ParserMessages.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Boolean Parser::parseAttributeSpec(Boolean inDecl,
-				   AttributeList &atts,
-				   Boolean &netEnabling,
-				   Ptr<AttributeDefinitionList> &newAttDef)
-
-{
-  unsigned specLength = 0;
-  AttributeParameter::Type curParm;
-
-  if (!parseAttributeParameter(inDecl, 0, curParm, netEnabling))
-    return 0;
-  while (curParm != AttributeParameter::end) {
-    switch (curParm) {
-    case AttributeParameter::name:
-      {
-	Text text;
-	text.addChars(currentInput()->currentTokenStart(),
-		      currentInput()->currentTokenLength(),
-		      currentLocation());
-	size_t nameMarkupIndex;
-	if (currentMarkup())
-	  nameMarkupIndex = currentMarkup()->size() - 1;
-	text.subst(*syntax().generalSubstTable(), syntax().space());
-	if (!parseAttributeParameter(inDecl, 1, curParm, netEnabling))
-	  return 0;
-	if (curParm == AttributeParameter::vi) {
-	  specLength += text.size() + syntax().normsep();
-	  if (!parseAttributeValueSpec(inDecl, text.string(), atts,	
-				       specLength, newAttDef))
-	    return 0;
-	  // setup for next attribute
-	  if (!parseAttributeParameter(inDecl, 0, curParm, netEnabling))
-	    return 0;
-	}
-	else {
-	  if (currentMarkup())
-	    currentMarkup()->changeToAttributeValue(nameMarkupIndex);
-	  if (!handleAttributeNameToken(text, atts, specLength))
-	    return 0;
-	}
-      }
-      break;
-    case AttributeParameter::nameToken:
-      {
-	Text text;
-	text.addChars(currentInput()->currentTokenStart(),
-		      currentInput()->currentTokenLength(),
-		      currentLocation());
-	text.subst(*syntax().generalSubstTable(), syntax().space());
-	if (!handleAttributeNameToken(text, atts, specLength))
-	  return 0;
-	if (!parseAttributeParameter(inDecl, 0, curParm, netEnabling))
-	  return 0;
-      }
-      break;
-    case AttributeParameter::recoverUnquoted:
-      {
-	if (!atts.recoverUnquoted(currentToken(), currentLocation(), *this)) {
-	  // Don't treat it as an unquoted attribute value.
-	  currentInput()->endToken(1);
-	  if (!atts.handleAsUnterminated(*this))
-	    message(ParserMessages::attributeSpecCharacter,
-		    StringMessageArg(currentToken()));
-	  return 0;
-	}
-	if (!parseAttributeParameter(inDecl, 0, curParm, netEnabling))
-	  return 0;
-      }
-      break;
-    default:
-      CANNOT_HAPPEN();
-    }
-  }
-  atts.finish(*this);
-  if (specLength > syntax().attsplen())
-    message(ParserMessages::attsplen,
-	    NumberMessageArg(syntax().attsplen()),
-	    NumberMessageArg(specLength));
-  return 1;
-}
-
-Boolean Parser::handleAttributeNameToken(Text &text,
-					 AttributeList &atts,
-					 unsigned &specLength)
-{
-  unsigned index;
-  if (!atts.tokenIndex(text.string(), index)) {
-    if (atts.handleAsUnterminated(*this))
-      return 0;
-    atts.noteInvalidSpec();
-    message(ParserMessages::noSuchAttributeToken,
-	    StringMessageArg(text.string()));
-  }
-  else if (sd().www() && !atts.tokenIndexUnique(text.string(), index)) {
-    atts.noteInvalidSpec();
-    message(ParserMessages::attributeTokenNotUnique,
-	    StringMessageArg(text.string()));
-  }
-  else {
-    if (!sd().attributeOmitName())
-      message(ParserMessages::attributeNameShorttag);
-    else if (options().warnMissingAttributeName)
-      message(ParserMessages::missingAttributeName);
-    atts.setSpec(index, *this);
-    atts.setValueToken(index, text, *this, specLength);
-  }
-  return 1;
-}
-
-Boolean Parser::parseAttributeValueSpec(Boolean inDecl,
-					const StringC &name,
-					AttributeList &atts,
-					unsigned &specLength,
-					Ptr<AttributeDefinitionList> &newAttDef)
-{
-  Mode mode = inDecl ? asMode : tagMode;
-  Markup *markup = currentMarkup();
-  Token token = getToken(mode);
-  if (token == tokenS) {
-    if (markup) {
-      do {
-	markup->addS(currentChar());
-	token = getToken(mode);
-      } while (token == tokenS);
-    }
-    else {
-      do {
-	token = getToken(mode);
-      } while (token == tokenS);
-    }
-  }
-  unsigned index;
-  if (!atts.attributeIndex(name, index)) {
-    if (!implydefAttlist())
-      message(ParserMessages::noSuchAttribute, StringMessageArg(name));
-    if (newAttDef.isNull())
-      newAttDef = new AttributeDefinitionList(atts.def());
-    newAttDef
-      ->append(new ImpliedAttributeDefinition(name,
-					      new CdataDeclaredValue));
-    atts.changeDef(newAttDef);
-    index = atts.size() - 1;
-  }
-  atts.setSpec(index, *this);
-  Text text;
-  switch (token) {
-  case tokenUnrecognized:
-    if (reportNonSgmlCharacter())
-      return 0;
-    // fall through
-  case tokenEtago:
-  case tokenStago:
-  case tokenNestc:
-    message(ParserMessages::unquotedAttributeValue);
-    extendUnquotedAttributeValue();
-    if (markup)
-      markup->addAttributeValue(currentInput());
-    text.addChars(currentInput()->currentTokenStart(),
-		  currentInput()->currentTokenLength(),
-		  currentLocation());
-    break;
-  case tokenEe:
-    message(ParserMessages::attributeSpecEntityEnd);
-    return 0;
-  case tokenTagc:
-  case tokenDsc:
-  case tokenVi:
-    message(ParserMessages::attributeValueExpected);
-    return 0;
-  case tokenNameStart:
-  case tokenDigit:
-  case tokenLcUcNmchar:
-    if (!sd().attributeValueNotLiteral())
-      message(ParserMessages::attributeValueShorttag);
-    else if (options().warnAttributeValueNotLiteral)
-      message(ParserMessages::attributeValueNotLiteral);
-    extendNameToken(syntax().litlen() >= syntax().normsep()
-		    ? syntax().litlen() - syntax().normsep()
-		    : 0,
-		    ParserMessages::attributeValueLength);
-    if (markup)
-      markup->addAttributeValue(currentInput());
-    text.addChars(currentInput()->currentTokenStart(),
-		  currentInput()->currentTokenLength(),
-		  currentLocation());
-    break;
-  case tokenLit:
-  case tokenLita:
-    Boolean lita;
-    lita = (token == tokenLita);
-    if (!(atts.tokenized(index)
-	  ? parseTokenizedAttributeValueLiteral(lita, text)
-	  : parseAttributeValueLiteral(lita, text)))
-      return 0;
-    if (markup)
-      markup->addLiteral(text);
-    break;
-  default:
-      CANNOT_HAPPEN();
-  }
-  return atts.setValue(index, text, *this, specLength);
-}
-
-
-Boolean Parser::parseAttributeParameter(Boolean inDecl,
-					Boolean allowVi,
-					AttributeParameter::Type &result,
-					Boolean &netEnabling)
-{
-  Mode mode = inDecl ? asMode : tagMode;
-  Token token = getToken(mode);
-  Markup *markup = currentMarkup();
-  if (markup) {
-    while (token == tokenS) {
-      markup->addS(currentChar());
-      token = getToken(mode);
-    }
-  }
-  else {
-    while (token == tokenS)
-      token = getToken(mode);
-  }
-  switch (token) {
-  case tokenUnrecognized:
-    if (reportNonSgmlCharacter())
-      return 0;
-    extendUnquotedAttributeValue();
-    result = AttributeParameter::recoverUnquoted;
-    break;
-  case tokenEe:
-    message(ParserMessages::attributeSpecEntityEnd);
-    return 0;
-  case tokenEtago:
-  case tokenStago:
-    if (!sd().startTagUnclosed())
-      message(ParserMessages::unclosedStartTagShorttag);
-    result = AttributeParameter::end;
-    currentInput()->ungetToken();
-    netEnabling = 0;
-    break;
-  case tokenNestc:
-    if (markup)
-      markup->addDelim(Syntax::dNESTC);
-    switch (sd().startTagNetEnable()) {
-    case Sd::netEnableNo:
-      message(ParserMessages::netEnablingStartTagShorttag);
-      break;
-    case Sd::netEnableImmednet:
-      if (getToken(econnetMode) != tokenNet) 
-	message(ParserMessages::nestcWithoutNet);
-      currentInput()->ungetToken();
-      break;
-    case Sd::netEnableAll:
-      break;
-    }
-    netEnabling = 1;
-    result = AttributeParameter::end;
-    break;
-  case tokenTagc:
-    if (markup)
-      markup->addDelim(Syntax::dTAGC);
-    netEnabling = 0;
-    result = AttributeParameter::end;
-    break;
-  case tokenDsc:
-    if (markup)
-      markup->addDelim(Syntax::dDSC);
-    result = AttributeParameter::end;
-    break;
-  case tokenNameStart:
-    extendNameToken(syntax().namelen(), ParserMessages::nameTokenLength);
-    if (markup)
-      markup->addName(currentInput());
-    result = AttributeParameter::name;
-    break;
-  case tokenDigit:
-  case tokenLcUcNmchar:
-    extendNameToken(syntax().namelen(), ParserMessages::nameTokenLength);
-    if (markup)
-      markup->addName(currentInput());
-    result = AttributeParameter::nameToken;
-    break;
-  case tokenLit:
-  case tokenLita:
-    message(allowVi
-	    ? ParserMessages::attributeSpecLiteral
-	    : ParserMessages::attributeSpecNameTokenExpected);
-    return 0;
-  case tokenVi:
-    if (!allowVi) {
-      message(ParserMessages::attributeSpecNameTokenExpected);
-      return 0;
-    }
-    if (markup)
-      markup->addDelim(Syntax::dVI);
-    result = AttributeParameter::vi;
-    break;
-  default:
-    CANNOT_HAPPEN();
-  }
-  return 1;
-}
-
-void Parser::extendUnquotedAttributeValue()
-{
-  InputSource *in = currentInput();
-  size_t length = in->currentTokenLength();
-  const Syntax &syn = syntax();
-  for (;;) {
-    Xchar c = in->tokenChar(messenger());
-    if (syn.isS(c)
-	|| !syn.isSgmlChar(c)
-	|| c == InputSource::eE
-	|| c == syn.delimGeneral(Syntax::dTAGC)[0])
-      break;
-    length++;
-  }
-  in->endToken(length);
-}
-
-Boolean Parser::parseAttributeValueLiteral(Boolean lita, Text &text)
-{
-  size_t maxLength = (syntax().litlen() > syntax().normsep()
-		      ? syntax().litlen() - syntax().normsep()
-		      : 0);
-  if (parseLiteral(lita ? alitaMode : alitMode, aliteMode,
-		   maxLength,
-		   ParserMessages::attributeValueLength,
-		   literalNonSgml
- 		   | (wantMarkup() ? unsigned(literalDelimInfo) : 0),
-		   text)) {
-    if (text.size() == 0
-	&& syntax().normsep() > syntax().litlen())
-      message(ParserMessages::attributeValueLengthNeg,
-	      NumberMessageArg(syntax().normsep() - syntax().litlen()));
-    return 1;
-  }
-  else
-    return 0;
-}
-
-Boolean Parser::parseTokenizedAttributeValueLiteral(Boolean lita, Text &text)
-{
-  size_t maxLength = (syntax().litlen() > syntax().normsep()
-		      ? syntax().litlen() - syntax().normsep()
-		      : 0);
-  if (parseLiteral(lita ? talitaMode : talitMode, taliteMode,
-		   maxLength,
-		   ParserMessages::tokenizedAttributeValueLength,
-		   literalSingleSpace
-		   | (wantMarkup() ? unsigned(literalDelimInfo) : 0),
-		   text)) {
-    if (text.size() == 0
-	&& syntax().normsep() > syntax().litlen())
-      message(ParserMessages::tokenizedAttributeValueLengthNeg,
-	      NumberMessageArg(syntax().normsep() - syntax().litlen()));
-    return 1;
-  }
-  else
-    return 0;
-}
-
-
-Boolean Parser::skipAttributeSpec()
-{
-  AttributeParameter::Type parm;
-  Boolean netEnabling;
-  if (!parseAttributeParameter(0, 0, parm, netEnabling))
-    return 0;
-  while (parm != AttributeParameter::end) {
-    if (parm == AttributeParameter::name) {
-      size_t nameMarkupIndex = 0;
-      if (currentMarkup())
-	nameMarkupIndex = currentMarkup()->size() - 1;
-      if (!parseAttributeParameter(0, 1, parm, netEnabling))
-	return 0;
-      if (parm == AttributeParameter::vi) {
-	Token token = getToken(tagMode);
-	while (token == tokenS) {
-	  if (currentMarkup())
-	    currentMarkup()->addS(currentChar());
-	  token = getToken(tagMode);
-	}
-	switch (token) {
-	case tokenUnrecognized:
-	  if (!reportNonSgmlCharacter())
-	    message(ParserMessages::attributeSpecCharacter,
-		    StringMessageArg(currentToken()));
-	  return 0;
-	case tokenEe:
-	  message(ParserMessages::attributeSpecEntityEnd);
-	  return 0;
-	case tokenEtago:
-	case tokenStago:
-	case tokenNestc:
-	case tokenTagc:
-	case tokenDsc:
-	case tokenVi:
-	  message(ParserMessages::attributeValueExpected);
-	  return 0;
-	case tokenNameStart:
-	case tokenDigit:
-	case tokenLcUcNmchar:
-	  if (!sd().attributeValueNotLiteral())
-	    message(ParserMessages::attributeValueShorttag);
-	  extendNameToken(syntax().litlen() >= syntax().normsep()
-			  ? syntax().litlen() - syntax().normsep()
-			  : 0,
-			  ParserMessages::attributeValueLength);
-	  if (currentMarkup())
-	    currentMarkup()->addAttributeValue(currentInput());
-	  break;
-	case tokenLit:
-	case tokenLita:
-	  {
-	    Text text;
-	    if (!parseLiteral(token == tokenLita ? talitaMode : talitMode,
-			      taliteMode,
-			      syntax().litlen(),
-			      ParserMessages::tokenizedAttributeValueLength,
-			      (currentMarkup() ? literalDelimInfo : 0)
-			      | literalNoProcess,
-			      text))
-	      return 0;
-	    if (currentMarkup())
-	      currentMarkup()->addLiteral(text);
-	  }
-	  break;
-	default:
-	  CANNOT_HAPPEN();
-	}
-	if (!parseAttributeParameter(0, 0, parm, netEnabling))
-	  return 0;
-      }
-      else {
-	if (currentMarkup())
-	  currentMarkup()->changeToAttributeValue(nameMarkupIndex);
-	if (!sd().attributeOmitName())
-	  message(ParserMessages::attributeNameShorttag);
-      }
-    }
-    else {
-      // It's a name token.
-      if (!parseAttributeParameter(0, 0, parm, netEnabling))
-	return 0;
-      if (!sd().attributeOmitName())
-	message(ParserMessages::attributeNameShorttag);
-    }
-  }
-  if (netEnabling)
-    message(ParserMessages::startTagGroupNet);
-  return 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/parseCommon.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,618 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "Parser.h"
-#include "token.h"
-#include "MessageArg.h"
-#include "ParserMessages.h"
-#include "constant.h"
-#include "NumericCharRefOrigin.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Boolean Parser::parseProcessingInstruction()
-{
-  currentInput()->startToken();
-  Location location(currentLocation());
-  StringC buf;
-  for (;;) {
-    Token token = getToken(piMode);
-    if (token == tokenPic)
-      break;
-    switch (token) {
-    case tokenEe:
-      message(ParserMessages::processingInstructionEntityEnd);
-      return 0;
-    case tokenUnrecognized:
-      reportNonSgmlCharacter();
-      // fall through
-    case tokenChar:
-      buf += *currentInput()->currentTokenStart();
-      if (buf.size()/2 > syntax().pilen()) {
-	message(ParserMessages::processingInstructionLength,
-		NumberMessageArg(syntax().pilen()));
-	message(ParserMessages::processingInstructionClose);
-	return 0;
-      }
-      break;
-    }
-  }
-  if (buf.size() > syntax().pilen())
-    message(ParserMessages::processingInstructionLength,
-	    NumberMessageArg(syntax().pilen()));
-  if (options().warnPiMissingName) {
-    size_t i = 0;
-    if (buf.size() && syntax().isNameStartCharacter(buf[0])) {
-      for (i = 1; i < buf.size(); i++)
-	if (!syntax().isNameCharacter(buf[i]))
-	  break;
-    }
-    if (i == 0 || (i < buf.size() && !syntax().isS(buf[i])))
-      message(ParserMessages::piMissingName);
-  }
-  noteMarkup();
-  eventHandler().pi(new (eventAllocator()) ImmediatePiEvent(buf, location));
-  return 1;
-}
-
-Boolean Parser::parseLiteral(Mode litMode,
-			     Mode liteMode,
-			     size_t maxLength,
-			     const MessageType1 &tooLongMessage,
-			     unsigned flags,
-			     Text &text)
-{
-  unsigned startLevel = inputLevel();
-  Mode currentMode = litMode;
-  // If the literal gets to be longer than this, then we assume
-  // that the closing delimiter has been omitted if we're at the end
-  // of a line and at the starting input level.
-  size_t reallyMaxLength = (maxLength > size_t(-1)/2
-			    ? size_t(-1)
-			    : maxLength * 2);
-  text.clear();
-  Location startLoc(currentLocation());
-  if (flags & literalDelimInfo)
-    text.addStartDelim(currentLocation());
-  for (;;) {
-    Token token = getToken(currentMode);
-    switch (token) {
-    case tokenEe:
-      if (inputLevel() == startLevel) {
-	message(ParserMessages::literalLevel);
-	return 0;
-      }
-      text.addEntityEnd(currentLocation());
-      popInputStack();
-      if (inputLevel() == startLevel)
-	currentMode = litMode;
-      break;
-    case tokenUnrecognized:
-      if (reportNonSgmlCharacter())
-	break;
-      message(ParserMessages::literalMinimumData,
-	      StringMessageArg(currentToken()));
-      break;
-    case tokenRs:
-      text.ignoreChar(currentChar(), currentLocation());
-      break;
-    case tokenRe:
-      if (text.size() > reallyMaxLength && inputLevel() == startLevel) {
-#if 0
-	message(tooLongMessage, NumberMessageArg(maxLength));
-#endif
-	// guess that the closing delimiter has been omitted
-	Messenger::setNextLocation(startLoc);
-	message(ParserMessages::literalClosingDelimiter);
-	return 0;
-      }
-      // fall through
-    case tokenSepchar:
-      if ((flags & literalSingleSpace)
-	  && (text.size() == 0 || text.lastChar() == syntax().space()))
-	text.ignoreChar(currentChar(), currentLocation());
-      else
-	text.addChar(syntax().space(),
-		     Location(new ReplacementOrigin(currentLocation(),
-						    currentChar()),
-			      0));
-      break;
-    case tokenSpace:
-      if ((flags & literalSingleSpace)
-	  && (text.size() == 0 || text.lastChar() == syntax().space()))
-	text.ignoreChar(currentChar(), currentLocation());
-      else
-	text.addChar(currentChar(), currentLocation());
-      break;
-    case tokenCroDigit:
-    case tokenHcroHexDigit:
-      {
-	Char c;
-	Location loc;
-	if (!parseNumericCharRef(token== tokenHcroHexDigit, c, loc))
-	  return 0;
-	Boolean isSgmlChar;
-	if (!translateNumericCharRef(c, isSgmlChar))
-	  break;
-	if (!isSgmlChar) {
-	  if (flags & literalNonSgml)
-	    text.addNonSgmlChar(c, loc);
-	  else
-	    message(ParserMessages::numericCharRefLiteralNonSgml,
-	            NumberMessageArg(c));
-	  break;
-	}
-	if (flags & literalDataTag) {
-	  if (!syntax().isSgmlChar(c))
-	    message(ParserMessages::dataTagPatternNonSgml);
-	  else if (syntax().charSet(Syntax::functionChar)->contains(c))
-	    message(ParserMessages::dataTagPatternFunction);
-	}
-	if ((flags & literalSingleSpace)
-	    && c == syntax().space()
-	    && (text.size() == 0 || text.lastChar() == syntax().space()))
-	  text.ignoreChar(c, loc);
-	else
-	  text.addChar(c, loc);
-      }
-      break;
-    case tokenCroNameStart:
-      if (!parseNamedCharRef())
-	return 0;
-      break;
-    case tokenEroGrpo:
-      message(inInstance() ? ParserMessages::eroGrpoStartTag : ParserMessages::eroGrpoProlog);
-      break;
-    case tokenLit:
-    case tokenLita:
-      if (flags & literalDelimInfo)
-	text.addEndDelim(currentLocation(), token == tokenLita);
-      goto done;
-    case tokenPeroNameStart:
-      if (options().warnInternalSubsetLiteralParamEntityRef
-	  && inputLevel() == 1)
-	message(ParserMessages::internalSubsetLiteralParamEntityRef);
-      // fall through
-    case tokenEroNameStart:
-      {
-	ConstPtr<Entity> entity;
-	Ptr<EntityOrigin> origin;
-	if (!parseEntityReference(token == tokenPeroNameStart,
-				  (flags & literalNoProcess) ? 2 : 0,
-				  entity, origin))
-	  return 0;
-	if (!entity.isNull())
-	  entity->litReference(text, *this, origin,
-			       (flags & literalSingleSpace) != 0);
-	if (inputLevel() > startLevel)
-	  currentMode = liteMode;
-      }
-      break;
-    case tokenPeroGrpo:
-      message(ParserMessages::peroGrpoProlog);
-      break;
-    case tokenCharDelim:
-      message(ParserMessages::dataCharDelim,
-	      StringMessageArg(StringC(currentInput()->currentTokenStart(),
-			  	       currentInput()->currentTokenLength())));
-      // fall through
-    case tokenChar:
-      if (text.size() > reallyMaxLength && inputLevel() == startLevel
-	  && currentChar() == syntax().standardFunction(Syntax::fRE)) {
-#if 0
-	message(tooLongMessage, NumberMessageArg(maxLength));
-#endif
-	// guess that the closing delimiter has been omitted
-	Messenger::setNextLocation(startLoc);
-	message(ParserMessages::literalClosingDelimiter);
-	return 0;
-      }
-      text.addChar(currentChar(), currentLocation());
-      break;
-    }
-  }
- done:
-  if ((flags & literalSingleSpace)
-      && text.size() > 0
-      && text.lastChar() == syntax().space())
-    text.ignoreLastChar();
-  if (text.size() > maxLength) {
-    switch (litMode) {
-    case alitMode:
-    case alitaMode:
-    case talitMode:
-    case talitaMode:
-      if (AttributeValue::handleAsUnterminated(text, *this))
-	return 0;
-    default:
-      break;
-    }
-    message(tooLongMessage, NumberMessageArg(maxLength));
-  }
-  return 1;
-}
-
-Boolean Parser::parseNamedCharRef()
-{
-  if (options().warnNamedCharRef)
-    message(ParserMessages::namedCharRef);
-  InputSource *in = currentInput();
-  Index startIndex = currentLocation().index();
-  in->discardInitial();
-  extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-  Char c;
-  Boolean valid;
-  StringC name;
-  getCurrentToken(syntax().generalSubstTable(), name);
-  if (!syntax().lookupFunctionChar(name, &c)) {
-    message(ParserMessages::functionName, StringMessageArg(name));
-    valid = 0;
-  }
-  else {
-    valid = 1;
-    if (wantMarkup())
-      getCurrentToken(name);	// the original name
-  }
-  NamedCharRef::RefEndType refEndType;
-  switch (getToken(refMode)) {
-  case tokenRefc:
-    refEndType = NamedCharRef::endRefc;
-    break;
-  case tokenRe:
-    refEndType = NamedCharRef::endRE;
-    if (options().warnRefc)
-      message(ParserMessages::refc);
-    break;
-  default:
-    refEndType = NamedCharRef::endOmitted;
-    if (options().warnRefc)
-      message(ParserMessages::refc);
-    break;
-  }
-  in->startToken();
-  if (valid)
-    in->pushCharRef(c, NamedCharRef(startIndex, refEndType, name));
-  return 1;
-}
-
-Boolean Parser::parseNumericCharRef(Boolean isHex, Char &ch, Location &loc)
-{
-  InputSource *in = currentInput();
-  Location startLocation = currentLocation();
-  in->discardInitial();
-  Boolean valid = 1;
-  Char c = 0;
-  if (isHex) {
-    extendHexNumber();
-    const Char *lim = in->currentTokenEnd();
-    for (const Char *p = in->currentTokenStart(); p < lim; p++) {
-      int val = sd().hexDigitWeight(*p);
-      if (c <= charMax/16 && (c *= 16) <= charMax - val)
-	c += val;
-      else {
-	message(ParserMessages::characterNumber, StringMessageArg(currentToken()));
-	valid = 0;
-	break;
-      }
-    }
-  }
-  else {
-    extendNumber(syntax().namelen(), ParserMessages::numberLength);
-    const Char *lim = in->currentTokenEnd();
-    for (const Char *p = in->currentTokenStart(); p < lim; p++) {
-      int val = sd().digitWeight(*p);
-      if (c <= charMax/10 && (c *= 10) <= charMax - val)
-	c += val;
-      else {
-	message(ParserMessages::characterNumber, StringMessageArg(currentToken()));
-	valid = 0;
-	break;
-      }
-    }
-  }
-  if (valid && !sd().docCharsetDecl().charDeclared(c)) {
-    valid = 0;
-    message(ParserMessages::characterNumber, StringMessageArg(currentToken()));
-  }
-  Owner<Markup> markupPtr;
-  if (wantMarkup()) {
-    markupPtr = new Markup;
-    markupPtr->addDelim(isHex ? Syntax::dHCRO : Syntax::dCRO);
-    markupPtr->addNumber(in);
-    switch (getToken(refMode)) {
-    case tokenRefc:
-      markupPtr->addDelim(Syntax::dREFC);
-      break;
-    case tokenRe:
-      markupPtr->addRefEndRe();
-      if (options().warnRefc)
-	message(ParserMessages::refc);
-      break;
-    default:
-      if (options().warnRefc)
-	message(ParserMessages::refc);
-      break;
-    }
-  }
-  else if (options().warnRefc) {
-    if (getToken(refMode) != tokenRefc)
-      message(ParserMessages::refc);
-  }
-  else
-    (void)getToken(refMode);
-  if (valid) {
-    ch = c;
-    loc = Location(new NumericCharRefOrigin(startLocation,
-					    currentLocation().index()
-					    + currentInput()->currentTokenLength()
-					    - startLocation.index(),
-					    markupPtr),
-		   0);
-  }
-  return valid;
-}
-
-// Translate a character number in the document character set
-// into the internal character set.
-// If it's a non-SGML char (ie described as UNUSED in SGML declaration),
-// return 1 and set sgmlChar to 0.
-
-Boolean Parser::translateNumericCharRef(Char &ch, Boolean &isSgmlChar)
-{
-  if (sd().internalCharsetIsDocCharset()) {
-    if (options().warnNonSgmlCharRef && !syntax().isSgmlChar(ch))
-      message(ParserMessages::nonSgmlCharRef);
-    isSgmlChar = 1;
-    return 1;
-  }
-  UnivChar univChar;
-  if (!sd().docCharset().descToUniv(ch, univChar)) {
-    const PublicId *pubid;
-    CharsetDeclRange::Type type;
-    Number n;
-    StringC desc;
-    if (sd().docCharsetDecl().getCharInfo(ch, pubid, type, n, desc)) {
-      if (type == CharsetDeclRange::unused) {
-	if (options().warnNonSgmlCharRef)
-	  message(ParserMessages::nonSgmlCharRef);
-	isSgmlChar = 0;
-	return 1;
-      }
-    }
-    else
-      CANNOT_HAPPEN();
-    if (type == CharsetDeclRange::string)
-      message(ParserMessages::numericCharRefUnknownDesc,
-	      NumberMessageArg(ch),
-	      StringMessageArg(desc));
-    else
-      message(ParserMessages::numericCharRefUnknownBase,
-	      NumberMessageArg(ch),
-	      NumberMessageArg(n),
-	      StringMessageArg(pubid->string()));
-  }
-  else {
-    WideChar resultChar;
-    ISet<WideChar> resultChars;
-    switch (sd().internalCharset().univToDesc(univChar,
-					      resultChar,
-					      resultChars)) {
-    case 1:
-      if (resultChar <= charMax) {
-	isSgmlChar = 1;
-	ch = Char(resultChar);
-	return 1;
-      }
-      // fall through
-    case 2:
-      message(ParserMessages::numericCharRefBadInternal,
-	      NumberMessageArg(ch));
-      break;
-    default:
-      message(ParserMessages::numericCharRefNoInternal,
-	      NumberMessageArg(ch));
-      break;
-    }
-  }
-  return 0;
-}
-
-// ignoreLevel: 0 means don't ignore;
-// 1 means parse name group and ignore if inactive
-// 2 means ignore
-
-Boolean Parser::parseEntityReference(Boolean isParameter,
-				     int ignoreLevel,
-				     ConstPtr<Entity> &entity,
-				     Ptr<EntityOrigin> &origin)
-{
-  InputSource *in = currentInput();
-  Location startLocation(in->currentLocation());
-  Owner<Markup> markupPtr;
-  if (wantMarkup()) {
-    markupPtr = new Markup;
-    markupPtr->addDelim(isParameter ? Syntax::dPERO : Syntax::dERO);
-  }
-  if (ignoreLevel == 1) {
-    Markup savedMarkup;
-    Markup *savedCurrentMarkup = currentMarkup();
-    if (savedCurrentMarkup)
-      savedCurrentMarkup->swap(savedMarkup);
-    Location savedMarkupLocation(markupLocation());
-    startMarkup(markupPtr != 0, startLocation);
-    if (markupPtr) {
-      markupPtr->addDelim(Syntax::dGRPO);
-      markupPtr->swap(*currentMarkup());
-    }
-    Boolean ignore;
-    if (!parseEntityReferenceNameGroup(ignore))
-      return 0;
-    if (markupPtr)
-      currentMarkup()->swap(*markupPtr);
-    startMarkup(savedCurrentMarkup != 0, savedMarkupLocation);
-    if (savedCurrentMarkup)
-      savedMarkup.swap(*currentMarkup());
-    if (!ignore)
-      ignoreLevel = 0;
-    in->startToken();
-    Xchar c = in->tokenChar(messenger());
-    if (!syntax().isNameStartCharacter(c)) {
-      message(ParserMessages::entityReferenceMissingName);
-      return 0;
-    }
-  }
-  in->discardInitial();
-  if (isParameter)
-    extendNameToken(syntax().penamelen(), ParserMessages::parameterEntityNameLength);
-  else
-    extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-  StringC &name = nameBuffer();
-  getCurrentToken(syntax().entitySubstTable(), name);
-  if (ignoreLevel)
-    entity = new IgnoredEntity(name,
-			       isParameter
-			       ? Entity::parameterEntity
-			       : Entity::generalEntity);
-  else {
-    entity = lookupEntity(isParameter, name, startLocation, 1);
-    if (entity.isNull()) {
-      if (haveApplicableDtd()) {
-	if (!isParameter) {
-	  entity = createUndefinedEntity(name, startLocation);
-	  message(ParserMessages::entityUndefined,
-		  StringMessageArg(name));
-	}
-	else 
-	  message(ParserMessages::parameterEntityUndefined,
-		  StringMessageArg(name));
-      }
-      else
-	message(ParserMessages::entityApplicableDtd);
-    }
-    else if (entity->defaulted() && options().warnDefaultEntityReference)
-      message(ParserMessages::defaultEntityReference, StringMessageArg(name));
-  }
-  if (markupPtr) {
-    markupPtr->addName(in);
-    switch (getToken(refMode)) {
-    case tokenRefc:
-      markupPtr->addDelim(Syntax::dREFC);
-      break;
-    case tokenRe:
-      markupPtr->addRefEndRe();
-      if (options().warnRefc)
-	message(ParserMessages::refc);
-      break;
-    default:
-      if (options().warnRefc)
-	message(ParserMessages::refc);
-      break;
-    }
-  }
-  else if (options().warnRefc) {
-    if (getToken(refMode) != tokenRefc)
-      message(ParserMessages::refc);
-  }
-  else
-    (void)getToken(refMode);
-  if (!entity.isNull())
-    origin = EntityOrigin::make(internalAllocator(),
-				entity,
-				startLocation,
-				currentLocation().index()
-				+ currentInput()->currentTokenLength()
-				- startLocation.index(),
-				markupPtr);
-  else
-    origin = (EntityOrigin *)0;
-  return 1;
-}
-
-Boolean Parser::parseComment(Mode mode)
-{
-  Location startLoc(currentLocation());
-  Markup *markup = currentMarkup();
-  if (markup)
-    markup->addCommentStart();
-  Token token;
-  while ((token = getToken(mode)) != tokenCom)
-    switch (token) {
-    case tokenUnrecognized:
-      if (!reportNonSgmlCharacter())
-	message(ParserMessages::sdCommentSignificant,
-		StringMessageArg(currentToken()));
-      break;
-    case tokenEe:
-      message(ParserMessages::commentEntityEnd, startLoc);
-      return 0;
-    default:
-      if (markup)
-	markup->addCommentChar(currentChar());
-      break;
-    }
-  return 1;
-}
-
-void Parser::extendNameToken(size_t maxLength,
-			     const MessageType1 &tooLongMessage)
-{
-  InputSource *in = currentInput();
-  size_t length = in->currentTokenLength();
-  const Syntax &syn = syntax();
-  while (syn.isNameCharacter(in->tokenChar(messenger())))
-    length++;
-  if (length > maxLength)
-    message(tooLongMessage, NumberMessageArg(maxLength));
-  in->endToken(length);
-}
-
-void Parser::extendNumber(size_t maxLength, const MessageType1 &tooLongMessage)
-{
-  InputSource *in = currentInput();
-  size_t length = in->currentTokenLength();
-  while (syntax().isDigit(in->tokenChar(messenger())))
-    length++;
-  if (length > maxLength)
-    message(tooLongMessage, NumberMessageArg(maxLength));
-  in->endToken(length);
-}
-
-void Parser::extendHexNumber()
-{
-  InputSource *in = currentInput();
-  size_t length = in->currentTokenLength();
-  while (syntax().isHexDigit(in->tokenChar(messenger())))
-    length++;
-  if (length > syntax().namelen())
-    message(ParserMessages::hexNumberLength, NumberMessageArg(syntax().namelen()));
-  in->endToken(length);
-}
-
-Boolean Parser::reportNonSgmlCharacter()
-{
-  // In scanSuppress mode the non-SGML character will have been read.
-  Char c = currentInput()->currentTokenLength() ? currentChar() : getChar();
-  if (!syntax().isSgmlChar(c)) {
-    message(ParserMessages::nonSgmlCharacter, NumberMessageArg(c));
-    return 1;
-  }
-  return 0;
-}
-
-void Parser::extendS()
-{
-  InputSource *in = currentInput();
-  size_t length = in->currentTokenLength();
-  while (syntax().isS(in->tokenChar(messenger())))
-    length++;
-  in->endToken(length);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/parseDecl.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3336 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-// Prolog, dtd and declaration parsing.
-
-#include "splib.h"
-#include "Parser.h"
-#include "Param.h"
-#include "Markup.h"
-#include "ParserMessages.h"
-#include "MessageArg.h"
-#include "TokenMessageArg.h"
-#include "token.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-static const AllowedParams allowMdc(Param::mdc);
-static const AllowedParams allowName(Param::name);
-static const AllowedParams allowParamLiteral(Param::paramLiteral);
-static const AllowedParams allowNameNameGroup(Param::name, Param::nameGroup);
-static const AllowedParams allowDsoMdc(Param::dso, Param::mdc);
-static AllowedParams allowNameMdc(Param::name, Param::mdc);
-static AllowedParams
-  allowExplicitLinkRuleMdc(Param::mdc,
-			   Param::name,
-			   Param::nameGroup,
-			   Param::indicatedReservedName + Syntax::rIMPLIED);
-static AllowedParams
-  allowNameNameGroupMdc(Param::name, Param::nameGroup, Param::mdc);
-
-static const AllowedParams
-  allowLinkSetSpec(Param::name,
-		   Param::indicatedReservedName + Syntax::rINITIAL,
-		   Param::indicatedReservedName + Syntax::rEMPTY,
-		   Param::indicatedReservedName + Syntax::rRESTORE);
-
-void Parser::doProlog()
-{
-  const unsigned maxTries = 10;
-  unsigned tries = 0;
-  do {
-    if (cancelled()) {
-      allDone();
-      return;
-    }
-    Token token = getToken(proMode);
-    switch (token) {
-    case tokenUnrecognized:
-      if (reportNonSgmlCharacter())
-	break;
-      if (hadDtd()) {
-	currentInput()->ungetToken();
-	endProlog();
-	return;
-      }
-      {
-	StringC gi;
-	if (lookingAtStartTag(gi)) {
-	  currentInput()->ungetToken();
-	  implyDtd(gi);
-	  return;
-	}
-      }
-	    
-      if (++tries >= maxTries) {
-	message(ParserMessages::notSgml);
-	giveUp();
-	return;
-      }
-      message(ParserMessages::prologCharacter, StringMessageArg(currentToken()));
-      prologRecover();
-      break;
-    case tokenEe:
-      if (hadDtd()) {
-	endProlog();
-	return;
-      }
-      message(ParserMessages::documentEndProlog);
-      allDone();
-      return;
-    case tokenMdoMdc:
-      // empty comment
-      emptyCommentDecl();
-      break;
-    case tokenMdoCom:
-      if (!parseCommentDecl())
-	prologRecover();
-      break;
-    case tokenMdoNameStart:
-      setPass2Start();
-      if (startMarkup(eventsWanted().wantPrologMarkup(), currentLocation()))
-	currentMarkup()->addDelim(Syntax::dMDO);
-      Syntax::ReservedName name;
-      if (parseDeclarationName(&name)) {
-	switch (name) {
-	case Syntax::rDOCTYPE:
-	  if (!parseDoctypeDeclStart())
-	    giveUp();
-	  return;
-	case Syntax::rLINKTYPE:
-	  if (!parseLinktypeDeclStart())
-	    giveUp();
-	  return;
-	case Syntax::rELEMENT:
-	case Syntax::rATTLIST:
-	case Syntax::rENTITY:
-	case Syntax::rNOTATION:
-	case Syntax::rSHORTREF:
-	case Syntax::rUSEMAP:
-	case Syntax::rUSELINK:
-	case Syntax::rLINK:
-	case Syntax::rIDLINK:
-	  message(ParserMessages::prologDeclaration,
-		  StringMessageArg(syntax().reservedName(name)));
-	  if (!hadDtd())
-	    tries++;
-	  prologRecover();
-	  break;
-	default:
-	  message(ParserMessages::noSuchDeclarationType,
-		  StringMessageArg(syntax().reservedName(name)));
-	  prologRecover();
-	  break;
-	}
-      }
-      else
-	prologRecover();
-      break;
-    case tokenPio:
-      if (!parseProcessingInstruction())
-	prologRecover();
-      break;
-    case tokenS:
-      if (eventsWanted().wantPrologMarkup()) {
-	extendS();
-	eventHandler().sSep(new (eventAllocator())
-			    SSepEvent(currentInput()->currentTokenStart(),
-				      currentInput()->currentTokenLength(),
-				      currentLocation(),
-				      1));
-      }
-      break;
-    default:
-      CANNOT_HAPPEN();
-    }
-  } while (eventQueueEmpty());
-}
-
-void Parser::endProlog()
-{
-  if (baseDtd().isNull()
-#if 0
-      || baseDtd()->documentElementType()->definition()->undefined()
-#endif
-      ) {
-    // We could continue, but there's not a lot of point.
-    giveUp();
-    return;
-  }
-  if (maybeStartPass2())
-    setPhase(prologPhase);
-  else {
-    if (inputLevel() == 0) {
-      allDone();
-      return;
-    }
-    if (pass2())
-      checkEntityStability();
-    setPhase(instanceStartPhase);
-    startInstance();
-    ConstPtr<ComplexLpd> lpd;
-    Vector<AttributeList> simpleLinkAtts;
-    Vector<StringC> simpleLinkNames;
-    for (size_t i = 0; i < nActiveLink(); i++)
-      if (activeLpd(i).type() == Lpd::simpleLink) {
-	const SimpleLpd &lpd = (SimpleLpd &)activeLpd(i);
-	simpleLinkNames.push_back(lpd.name());
-	simpleLinkAtts.resize(simpleLinkAtts.size() + 1);
-	simpleLinkAtts.back().init(lpd.attributeDef());
-	simpleLinkAtts.back().finish(*this);
-      }
-      else 
-	lpd = (ComplexLpd *)&activeLpd(i);
-    eventHandler().endProlog(new (eventAllocator())
-			     EndPrologEvent(baseDtd(),
-					    lpd,
-					    simpleLinkNames,
-					    simpleLinkAtts,
-					    currentLocation()));
-  }
-}
-
-void Parser::prologRecover()
-{
-  unsigned skipCount = 0;
-  const unsigned skipMax = 250;
-  for (;;) {
-    Token token = getToken(proMode);
-    skipCount++;
-    if (token == tokenUnrecognized) {
-      token = getToken(mdMode);
-      if (token == tokenMdc) {
-	token = getToken(proMode);
-	if (token == tokenS)
-	  return;
-      }
-    }
-    switch (token) {
-    case tokenUnrecognized:
-      (void)getChar();
-      break;
-    case tokenEe:
-      return;
-    case tokenMdoMdc:
-    case tokenMdoCom:
-    case tokenMdoNameStart:
-    case tokenPio:
-      currentInput()->ungetToken();
-      return;
-    case tokenS:
-      if (currentChar() == syntax().standardFunction(Syntax::fRE)
-	  && skipCount >= skipMax)
-	return;
-    default:
-      break;
-    }
-  }
-}
-
-void Parser::doDeclSubset()
-{
-  do {
-    if (cancelled()) {
-      allDone();
-      return;
-    }
-    Token token = getToken(currentMode());
-    unsigned startLevel = inputLevel();
-    Boolean inDtd = !haveDefLpd();
-    switch (token) {
-    case tokenUnrecognized:
-      if (reportNonSgmlCharacter())
-	break;
-      message(ParserMessages::declSubsetCharacter, StringMessageArg(currentToken()));
-      declSubsetRecover(startLevel);
-      break;
-    case tokenEe:
-      if (inputLevel() == specialParseInputLevel()) {
-	// FIXME have separate messages for each type of special parse
-	message(ParserMessages::specialParseEntityEnd);
-      }
-      if (eventsWanted().wantPrologMarkup())
-	eventHandler().entityEnd(new (eventAllocator())
-				 EntityEndEvent(currentLocation()));
-      if (inputLevel() == 2) {
-	const Entity *e
-	  = currentLocation().origin()->entity();
-	if (e
-	    && (e->declType() == Entity::doctype
-		|| e->declType() == Entity::linktype)) {
-	  // popInputStack may destroy e
-	  Boolean fake = e->defLocation().origin().isNull();
-	  popInputStack();
-	  if (!(inDtd
-		? parseDoctypeDeclEnd(fake)
-		: parseLinktypeDeclEnd()))
-	    ;			// FIXME recover
-	  setPhase(prologPhase);
-	  return;
-	}
-      }
-      if (inputLevel() == 1) {
-	if (finalPhase() == declSubsetPhase) {
-	  checkDtd(defDtd());
-	  endDtd();
-	}
-	else
-	  // Give message before popping stack.
-	  message(inDtd
-		  ? ParserMessages::documentEndDtdSubset
-		  : ParserMessages::documentEndLpdSubset);
-	popInputStack();
-	allDone();
-      }
-      else
-	popInputStack();
-      return;
-    case tokenDsc:		// end of declaration subset
-      // FIXME what's the right location?
-      if (!referenceDsEntity(currentLocation())) {
-	if (!(inDtd ? parseDoctypeDeclEnd() : parseLinktypeDeclEnd()))
-	  ;			// FIXME recover
-	setPhase(prologPhase);
-      }
-      return;
-    case tokenMdoNameStart:	// named markup declaration
-      if (startMarkup(eventsWanted().wantPrologMarkup(), currentLocation()))
-	currentMarkup()->addDelim(Syntax::dMDO);
-      Syntax::ReservedName name;
-      Boolean result;
-      if (parseDeclarationName(&name,
-			       inDtd && !options().errorAfdr)) {
-	switch (name) {
-	case Syntax::rANY:	// used for <!AFDR
-	  result = parseAfdrDecl();
-	  break;
-	case Syntax::rELEMENT:
-	  if (inDtd)
-	    result = parseElementDecl();
-	  else {
-	    message(ParserMessages::lpdSubsetDeclaration,
-		    StringMessageArg(syntax().reservedName(name)));
-	    result = 0;
-	  }
-	  break;
-	case Syntax::rATTLIST:
-	  result = parseAttlistDecl();
-	  break;
-	case Syntax::rENTITY:
-	  result = parseEntityDecl();
-	  break;
-	case Syntax::rNOTATION:
-	  result = parseNotationDecl();
-	  if (!inDtd && !sd().www())
-	    message(ParserMessages::lpdSubsetDeclaration,
-		    StringMessageArg(syntax().reservedName(name)));
-	  break;
-	case Syntax::rSHORTREF:
-	  if (inDtd)
-	    result = parseShortrefDecl();
-	  else {
-	    message(ParserMessages::lpdSubsetDeclaration,
-		    StringMessageArg(syntax().reservedName(name)));
-	    result = 0;
-	  }
-	  break;
-	case Syntax::rUSEMAP:
-	  if (inDtd)
-	    result = parseUsemapDecl();
-	  else {
-	    message(ParserMessages::lpdSubsetDeclaration,
-		    StringMessageArg(syntax().reservedName(name)));
-	    result = 0;
-	  }
-	  break;
-	case Syntax::rLINK:
-	  if (inDtd) {
-	    message(ParserMessages::dtdSubsetDeclaration,
-		    StringMessageArg(syntax().reservedName(name)));
-	    result = 0;
-	  }
-	  else
-	    result = parseLinkDecl();
-	  break;
-	case Syntax::rIDLINK:
-	  if (inDtd) {
-	    message(ParserMessages::dtdSubsetDeclaration,
-		    StringMessageArg(syntax().reservedName(name)));
-	    result = 0;
-	  }
-	  else
-	    result = parseIdlinkDecl();
-	  break;
-	case Syntax::rDOCTYPE:
-	case Syntax::rLINKTYPE:
-	case Syntax::rUSELINK:
-	  result = 0;
-	  message(inDtd
-		  ? ParserMessages::dtdSubsetDeclaration
-		  : ParserMessages::lpdSubsetDeclaration,
-		  StringMessageArg(syntax().reservedName(name)));
-	  break;
-	default:
-	  result = 0;
-	  message(ParserMessages::noSuchDeclarationType,
-		  StringMessageArg(syntax().reservedName(name)));
-	  break;
-	}
-      }
-      else
-	result = 0;
-      if (!result)
-	declSubsetRecover(startLevel);
-      break;
-    case tokenMdoMdc:		// empty comment declaration
-      // empty comment
-      emptyCommentDecl();
-      break;
-    case tokenMdoCom:		// comment declaration
-      if (!parseCommentDecl())
-	declSubsetRecover(startLevel);
-      break;
-    case tokenMdoDso:		// marked section declaration
-      if (!parseMarkedSectionDeclStart())
-	declSubsetRecover(startLevel);
-      break;
-    case tokenMscMdc:
-      handleMarkedSectionEnd();
-      break;
-    case tokenPeroGrpo:		// parameter entity reference with name group
-      message(ParserMessages::peroGrpoProlog);
-      // fall through
-    case tokenPeroNameStart:	// parameter entity reference
-      {
-	ConstPtr<Entity> entity;
-	Ptr<EntityOrigin> origin;
-	if (parseEntityReference(1, token == tokenPeroGrpo, entity, origin)) {
-	  if (!entity.isNull())
-	    entity->dsReference(*this, origin);
-	}
-	else
-	  declSubsetRecover(startLevel);
-      }
-      break;
-    case tokenPio:		// processing instruction
-      if (!parseProcessingInstruction())
-	declSubsetRecover(startLevel);
-      break;
-    case tokenS:		// white space
-      if (eventsWanted().wantPrologMarkup()) {
-	extendS();
-	eventHandler().sSep(new (eventAllocator())
-			    SSepEvent(currentInput()->currentTokenStart(),
-				      currentInput()->currentTokenLength(),
-				      currentLocation(),
-				      1));
-      }
-      break;
-    case tokenIgnoredChar:
-      // from an ignored marked section
-      if (eventsWanted().wantPrologMarkup())
-	eventHandler().ignoredChars(new (eventAllocator())
-				    IgnoredCharsEvent(currentInput()->currentTokenStart(),
-						      currentInput()->currentTokenLength(),
-						      currentLocation(),
-						      1));
-      break;
-    case tokenRe:
-    case tokenRs:
-    case tokenCroNameStart:
-    case tokenCroDigit:
-    case tokenHcroHexDigit:
-    case tokenEroNameStart:
-    case tokenEroGrpo:
-    case tokenChar:
-      // these can occur in a cdata or rcdata marked section
-      message(ParserMessages::dataMarkedSectionDeclSubset);
-      declSubsetRecover(startLevel);
-      break;
-    default:
-      CANNOT_HAPPEN();
-    }
-  } while (eventQueueEmpty());
-}
-
-void Parser::declSubsetRecover(unsigned startLevel)
-{
-  for (;;) {
-    Token token = getToken(currentMode());
-    switch (token) {
-    case tokenUnrecognized:
-      (void)getChar();
-      break;
-    case tokenEe:
-      if (inputLevel() <= startLevel)
-	return;
-      popInputStack();
-      break;
-    case tokenMdoCom:
-    case tokenDsc:
-    case tokenMdoNameStart:
-    case tokenMdoMdc:
-    case tokenMdoDso:
-    case tokenMscMdc:
-    case tokenPio:
-      if (inputLevel() == startLevel) {
-	currentInput()->ungetToken();
-	return;
-      }
-      break;
-    default:
-      break;
-    }
-  }
-}
-
-Boolean Parser::lookingAtStartTag(StringC &gi)
-{
-  // This is harder than might be expected since we may not have compiled
-  // the recognizers for the instance yet.
-  const StringC &stago = instanceSyntax().delimGeneral(Syntax::dSTAGO);
-  for (size_t i = currentInput()->currentTokenLength();
-       i < stago.size();
-       i++)
-    if (currentInput()->tokenChar(messenger()) == InputSource::eE)
-      return 0;
-  StringC delim;
-  getCurrentToken(instanceSyntax().generalSubstTable(), delim);
-  if (delim != stago)
-    return 0;
-  Xchar c = currentInput()->tokenChar(messenger());
-  if (!instanceSyntax().isNameStartCharacter(c))
-    return 0;
-  do {
-    gi += (*instanceSyntax().generalSubstTable())[(Char)c];
-    c = currentInput()->tokenChar(messenger());
-  } while (instanceSyntax().isNameCharacter(c));
-  return 1;
-}
-
-Boolean Parser::parseDeclarationName(Syntax::ReservedName *result,
-				     Boolean allowAfdr)
-{
-  currentInput()->discardInitial();
-  extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-  StringC &name = nameBuffer();
-  getCurrentToken(syntax().generalSubstTable(), name);
-  if (!syntax().lookupReservedName(name, result)) {
-    if (allowAfdr && name == sd().execToInternal("AFDR")) {
-      *result = Syntax::rANY;
-      if (currentMarkup())
-	currentMarkup()->addName(currentInput());
-    }
-    else {
-      message(ParserMessages::noSuchDeclarationType, StringMessageArg(name));
-      return 0;
-    }
-  }
-  else if (currentMarkup())
-    currentMarkup()->addReservedName(*result, currentInput());
-  return 1;
-}
-
-Boolean Parser::parseElementDecl()
-{
-  unsigned declInputLevel = inputLevel();
-  Param parm;
-  if (!parseParam(allowNameNameGroup, declInputLevel, parm))
-    return 0;
-  Vector<NameToken> nameVector;
-  if (parm.type == Param::nameGroup) {
-    parm.nameTokenVector.swap(nameVector);
-    if (options().warnElementGroupDecl)
-      message(ParserMessages::elementGroupDecl);
-  }
-  else {
-    nameVector.resize(1);
-    parm.token.swap(nameVector[0].name);
-  }
-  static AllowedParams
-    allowRankOmissionContent(Param::number,
-			     Param::reservedName + Syntax::rO,
-			     Param::minus,
-			     Param::reservedName + Syntax::rCDATA,
-			     Param::reservedName + Syntax::rRCDATA,
-			     Param::reservedName + Syntax::rEMPTY,
-			     Param::reservedName + Syntax::rANY,
-			     Param::modelGroup);
-  if (!parseParam(allowRankOmissionContent, declInputLevel, parm))
-    return 0;
-  StringC rankSuffix;
-  Vector<ElementType *> elements(nameVector.size());
-  Vector<RankStem *> rankStems;
-  Vector<const RankStem *> constRankStems;
-  size_t i;
-  if (parm.type == Param::number) {
-    if (options().warnRank)
-      message(ParserMessages::rank);
-    parm.token.swap(rankSuffix);
-    rankStems.resize(nameVector.size());
-    constRankStems.resize(nameVector.size());
-    for (i = 0; i < elements.size(); i++) {
-      StringC name(nameVector[i].name);
-      name += rankSuffix;
-      if (name.size() > syntax().namelen()
-	  && nameVector[i].name.size() <= syntax().namelen())
-	message(ParserMessages::genericIdentifierLength,
-		NumberMessageArg(syntax().namelen()));
-      elements[i] = lookupCreateElement(name);
-      rankStems[i] = lookupCreateRankStem(nameVector[i].name);
-      constRankStems[i] = rankStems[i];
-    }
-    static AllowedParams
-      allowOmissionContent(Param::reservedName + Syntax::rO,
-			   Param::minus,
-			   Param::reservedName + Syntax::rCDATA,
-			   Param::reservedName + Syntax::rRCDATA,
-			   Param::reservedName + Syntax::rEMPTY,
-			   Param::reservedName + Syntax::rANY,
-			   Param::modelGroup);
-    Token token = getToken(mdMinusMode);
-    if (token == tokenNameStart)
-      message(ParserMessages::psRequired);
-    currentInput()->ungetToken();
-    if (!parseParam(allowOmissionContent, declInputLevel, parm))
-      return 0;
-  }
-  else {
-    for (i = 0; i < elements.size(); i++)
-      elements[i] = lookupCreateElement(nameVector[i].name);
-  }
-  for (i = 0; i < elements.size(); i++)
-    if (defDtd().lookupRankStem(elements[i]->name()) && validate())
-      message(ParserMessages::rankStemGenericIdentifier,
-	      StringMessageArg(elements[i]->name()));
-  unsigned char omitFlags = 0;
-  if (parm.type == Param::minus
-      || parm.type == Param::reservedName + Syntax::rO) {
-    if (options().warnMinimizationParam)
-      message(ParserMessages::minimizationParam);
-    omitFlags |= ElementDefinition::omitSpec;
-    if (parm.type != Param::minus)
-      omitFlags |= ElementDefinition::omitStart;
-    static AllowedParams allowOmission(Param::reservedName + Syntax::rO,
-				       Param::minus);
-    if (!parseParam(allowOmission, declInputLevel, parm))
-      return 0;
-    if (parm.type != Param::minus)
-      omitFlags |= ElementDefinition::omitEnd;
-    static AllowedParams allowContent(Param::reservedName + Syntax::rCDATA,
-				      Param::reservedName + Syntax::rRCDATA,
-				      Param::reservedName + Syntax::rEMPTY,
-				      Param::reservedName + Syntax::rANY,
-				      Param::modelGroup);
-    if (!parseParam(allowContent, declInputLevel, parm))
-      return 0;
-  }
-  else {
-    if (sd().omittag())
-      message(ParserMessages::missingTagMinimization);
-  }
-  Ptr<ElementDefinition> def;
-  switch (parm.type) {
-  case Param::reservedName + Syntax::rCDATA:
-    def = new ElementDefinition(markupLocation(),
-				defDtd().allocElementDefinitionIndex(),
-				omitFlags,
-				ElementDefinition::cdata);
-    if (!parseParam(allowMdc, declInputLevel, parm))
-      return 0;
-    if (options().warnCdataContent)
-      message(ParserMessages::cdataContent);
-    break;
-  case Param::reservedName + Syntax::rRCDATA:
-    def = new ElementDefinition(markupLocation(),
-				defDtd().allocElementDefinitionIndex(),
-				omitFlags,
-				ElementDefinition::rcdata);
-    if (!parseParam(allowMdc, declInputLevel, parm))
-      return 0;
-    if (options().warnRcdataContent)
-      message(ParserMessages::rcdataContent);
-    break;
-  case Param::reservedName + Syntax::rEMPTY:
-    def = new ElementDefinition(markupLocation(),
-				defDtd().allocElementDefinitionIndex(),
-				omitFlags,
-				ElementDefinition::empty);
-    if ((omitFlags & ElementDefinition::omitSpec)
-	&& !(omitFlags & ElementDefinition::omitEnd)
-	&& options().warnShould)
-      message(ParserMessages::emptyOmitEndTag);
-    if (!parseParam(allowMdc, declInputLevel, parm))
-      return 0;
-    break;
-  case Param::reservedName + Syntax::rANY:
-    def = new ElementDefinition(markupLocation(),
-				defDtd().allocElementDefinitionIndex(),
-				omitFlags,
-				ElementDefinition::any);
-    if (!parseExceptions(declInputLevel, def))
-      return 0;
-    break;
-  case Param::modelGroup:
-    {
-      unsigned long cnt = parm.modelGroupPtr->grpgtcnt();
-      // The outermost model group isn't formally a content token.
-      if (cnt - 1 > syntax().grpgtcnt())
-	message(ParserMessages::grpgtcnt, NumberMessageArg(syntax().grpgtcnt()));
-      Owner<CompiledModelGroup>
-	modelGroup(new CompiledModelGroup(parm.modelGroupPtr));
-      Vector<ContentModelAmbiguity> ambiguities;
-      Boolean pcdataUnreachable;
-      modelGroup->compile(currentDtd().nElementTypeIndex(), ambiguities,
-			  pcdataUnreachable);
-      if (pcdataUnreachable && options().warnMixedContent)
-	message(ParserMessages::pcdataUnreachable);
-      if (validate()) {
-	for (i = 0; i < ambiguities.size(); i++) {
-	  const ContentModelAmbiguity &a = ambiguities[i];
-	  reportAmbiguity(a.from, a.to1, a.to2, a.andDepth);
-	}
-      }
-      def = new ElementDefinition(markupLocation(),
-				  defDtd().allocElementDefinitionIndex(),
-				  omitFlags,
-				  ElementDefinition::modelGroup,
-				  modelGroup);
-      if (!parseExceptions(declInputLevel, def))
-	return 0;
-    }
-    break;
-  }
-  if (rankSuffix.size() > 0)
-    def->setRank(rankSuffix, constRankStems);
-  ConstPtr<ElementDefinition> constDef(def);
-  for (i = 0; i < elements.size(); i++) {
-    if (elements[i]->definition() != 0) {
-      if (validate())
-	message(ParserMessages::duplicateElementDefinition,
-	        StringMessageArg(elements[i]->name()));
-    }
-    else {
-      elements[i]->setElementDefinition(constDef, i);
-      if (!elements[i]->attributeDef().isNull())
-	checkElementAttribute(elements[i]);
-    }
-    if (rankStems.size() > 0)
-      rankStems[i]->addDefinition(constDef);
-  }
-  if (currentMarkup()) {
-    Vector<const ElementType *> v(elements.size());
-    for (i = 0; i < elements.size(); i++)
-      v[i] = elements[i];
-    eventHandler().elementDecl(new (eventAllocator())
-			       ElementDeclEvent(v, currentDtdPointer(),
-						markupLocation(),
-						currentMarkup()));
-  }
-  return 1;
-}
-
-void Parser::reportAmbiguity(const LeafContentToken *from,
-			     const LeafContentToken *to1,
-			     const LeafContentToken *to2,
-			     unsigned ambigAndDepth)
-{
-  StringC toName;
-  const ElementType *toType = to1->elementType();
-  if (toType)
-    toName = toType->name();
-  else {
-    toName = syntax().delimGeneral(Syntax::dRNI);
-    toName += syntax().reservedName(Syntax::rPCDATA);
-  }
-  unsigned to1Index = to1->typeIndex() + 1;
-  unsigned to2Index = to2->typeIndex() + 1;
-  if (from->isInitial())
-    message(ParserMessages::ambiguousModelInitial,
-	    StringMessageArg(toName),
-	    OrdinalMessageArg(to1Index),
-	    OrdinalMessageArg(to2Index));
-  else {
-    StringC fromName;
-    const ElementType *fromType = from->elementType();
-    if (fromType)
-      fromName = fromType->name();
-    else {
-      fromName = syntax().delimGeneral(Syntax::dRNI);
-      fromName += syntax().reservedName(Syntax::rPCDATA);
-    }
-    unsigned fromIndex = from->typeIndex() + 1;
-    unsigned andMatches = from->andDepth() - ambigAndDepth;
-    if (andMatches == 0)
-      message(ParserMessages::ambiguousModel,
-	      StringMessageArg(fromName),
-	      OrdinalMessageArg(fromIndex),
-	      StringMessageArg(toName),
-	      OrdinalMessageArg(to1Index),
-	      OrdinalMessageArg(to2Index));
-    else if (andMatches == 1)
-      message(ParserMessages::ambiguousModelSingleAnd,
-	      StringMessageArg(fromName),
-	      OrdinalMessageArg(fromIndex),
-	      StringMessageArg(toName),
-	      OrdinalMessageArg(to1Index),
-	      OrdinalMessageArg(to2Index));
-    else
-      message(ParserMessages::ambiguousModelMultipleAnd,
-	      StringMessageArg(fromName),
-	      OrdinalMessageArg(fromIndex),
-	      NumberMessageArg(andMatches),
-	      StringMessageArg(toName),
-	      OrdinalMessageArg(to1Index),
-	      OrdinalMessageArg(to2Index));
-  }
-}
-
-
-// Check the compatibility of the attribute definition with
-// the element definition.
-
-void Parser::checkElementAttribute(const ElementType *e, size_t checkFrom)
-{
-  if (!validate())
-    return;
-  const AttributeDefinitionList *attDef = e->attributeDef().pointer();
-  Boolean conref = 0;
-  ASSERT(e != 0);
-  const ElementDefinition *edef = e->definition();
-  ASSERT(edef != 0);
-  ASSERT(attDef != 0);
-  size_t attDefLength = attDef->size();
-  for (size_t i = checkFrom; i < attDefLength; i++) {
-    const AttributeDefinition *p = attDef->def(i);
-    if (p->isConref())
-      conref = 1;
-    if (p->isNotation()
-	&& edef->declaredContent() == ElementDefinition::empty)
-      message(ParserMessages::notationEmpty, StringMessageArg(e->name()));
-  }
-  if (conref) {
-#if 0
-    if (edef->omittedTagSpec() && !edef->canOmitEndTag()
-	&& options().warnShould)
-      message(ParserMessages::conrefOmitEndTag, StringMessageArg(e->name()));
-#endif
-    if (edef->declaredContent() == ElementDefinition::empty)
-      message(ParserMessages::conrefEmpty, StringMessageArg(e->name()));
-  }
-}
-
-ElementType *Parser::lookupCreateElement(const StringC &name)
-{
-  ElementType *e = defDtd().lookupElementType(name);
-  if (!e) {
-    if (haveDefLpd()) 
-      message(ParserMessages::noSuchSourceElement, StringMessageArg(name));
-    else {
-      e = new ElementType(name, defDtd().allocElementTypeIndex());
-      defDtd().insertElementType(e);
-    }
-  }
-  return e;
-}
-
-RankStem *Parser::lookupCreateRankStem(const StringC &name)
-{
-  RankStem *r = defDtd().lookupRankStem(name);
-  if (!r) {
-    r = new RankStem(name, defDtd().nRankStem());
-    defDtd().insertRankStem(r);
-    const ElementType *e = defDtd().lookupElementType(name);
-    if (e && e->definition() != 0)
-      message(ParserMessages::rankStemGenericIdentifier, StringMessageArg(name));
-  }
-  return r;
-}
-
-Boolean Parser::parseExceptions(unsigned declInputLevel,
-				Ptr<ElementDefinition> &def)
-{
-  Param parm;
-  static AllowedParams
-    allowExceptionsMdc(Param::mdc, Param::exclusions, Param::inclusions);
-  if (!parseParam(allowExceptionsMdc, declInputLevel, parm))
-    return 0;
-  if (parm.type == Param::exclusions) {
-    if (options().warnExclusion)
-      message(ParserMessages::exclusion);
-    def->setExclusions(parm.elementVector);
-    static AllowedParams allowInclusionsMdc(Param::mdc, Param::inclusions);
-    if (!parseParam(allowInclusionsMdc, declInputLevel, parm))
-      return 0;
-  }
-  if (parm.type == Param::inclusions) {
-    if (options().warnInclusion)
-      message(ParserMessages::inclusion);
-    def->setInclusions(parm.elementVector);
-    size_t nI = def->nInclusions();
-    size_t nE = def->nExclusions();
-    if (nE) {
-      for (size_t i = 0; i < nI; i++) {
-	const ElementType *e = def->inclusion(i);
-	for (size_t j = 0; j < nE; j++)
-	  if (def->exclusion(j) == e)
-	    message(ParserMessages::excludeIncludeSame,
-		    StringMessageArg(e->name()));
-      }
-    }
-    if (!parseParam(allowMdc, declInputLevel, parm))
-      return 0;
-  }
-  return 1;
-}
-
-Boolean Parser::parseAttlistDecl()
-{
-  unsigned declInputLevel = inputLevel();
-  Param parm;
-  size_t attcnt = 0;
-  size_t idIndex = size_t(-1);
-  size_t notationIndex = size_t(-1);
-  Boolean anyCurrent = 0;
-  
-  Boolean isNotation;
-  Vector<Attributed *> attributed;
-  if (!parseAttributed(declInputLevel, parm, attributed, isNotation))
-    return 0;
-  Vector<CopyOwner<AttributeDefinition> > defs;
-  if (!parseParam(sd().www() ? allowNameMdc : allowName, declInputLevel, parm))
-    return 0;
-  while (parm.type != Param::mdc) {
-    StringC attributeName;
-    parm.token.swap(attributeName);
-    attcnt++;
-    Boolean duplicate = 0;
-    size_t i;
-    for (i = 0; i < defs.size(); i++)
-      if (defs[i]->name() == attributeName) {
-	message(ParserMessages::duplicateAttributeDef,
-		StringMessageArg(attributeName));
-	duplicate = 1;
-	break;
-      }
-    Owner<DeclaredValue> declaredValue;
-    if (!parseDeclaredValue(declInputLevel, isNotation, parm, declaredValue))
-      return 0;
-    if (!duplicate) {
-      if (declaredValue->isId()) {
-	if (idIndex != size_t(-1))
-	  message(ParserMessages::multipleIdAttributes,
-		  StringMessageArg(defs[idIndex]->name()));
-	idIndex = defs.size();
-      }
-      else if (declaredValue->isNotation()) {
-	if (notationIndex != size_t(-1))
-	  message(ParserMessages::multipleNotationAttributes,
-		  StringMessageArg(defs[notationIndex]->name()));
-	notationIndex = defs.size();
-      }
-    }
-    const Vector<StringC> *tokensPtr = declaredValue->getTokens();
-    if (tokensPtr) {
-      size_t nTokens = tokensPtr->size();
-      if (!sd().www()) {
-	Vector<StringC>::const_iterator tokens = tokensPtr->begin();
-	for (i = 0; i < nTokens; i++) {
-	  for (size_t j = 0; j < defs.size(); j++)
-	    if (defs[j]->containsToken(tokens[i])) {
-	      message(ParserMessages::duplicateAttributeToken,
-		      StringMessageArg(tokens[i]));
-	      break;
-	    }
-	}
-      }
-      attcnt += nTokens;
-    }
-    Owner<AttributeDefinition> def;
-    if (!parseDefaultValue(declInputLevel, isNotation, parm, attributeName,
-			   declaredValue, def, anyCurrent))
-      return 0;
-    if (haveDefLpd() && defLpd().type() == Lpd::simpleLink && !def->isFixed())
-      message(ParserMessages::simpleLinkFixedAttribute);
-    if (!duplicate) {
-      defs.resize(defs.size() + 1);
-      defs.back() = def.extract();
-    }
-    static AllowedParams allowNameMdc(Param::name, Param::mdc);
-    if (!parseParam(allowNameMdc, declInputLevel, parm))
-      return 0;
-  }
-  if (attcnt > syntax().attcnt())
-    message(ParserMessages::attcnt,
-	    NumberMessageArg(attcnt),
-	    NumberMessageArg(syntax().attcnt()));
-  if (haveDefLpd() && !isNotation) {
-    if (defLpd().type() == Lpd::simpleLink) {
-      for (size_t i = 0; i < attributed.size(); i++) {
-	const ElementType *e = (const ElementType *)attributed[i];
-	if (e) {
-	  if (e->name() == defLpd().sourceDtd()->name()) {
-	    SimpleLpd &lpd = (SimpleLpd &)defLpd();
-	    if (lpd.attributeDef().isNull())
-	      lpd.setAttributeDef(new AttributeDefinitionList(defs, 0));
-	    else
-	      message(ParserMessages::duplicateAttlistElement,
-		      StringMessageArg(e->name()));
-	  }
-	  else
-	    message(ParserMessages::simpleLinkAttlistElement,
-		    StringMessageArg(e->name()));
-	}
-      }
-    }
-    else {
-      Ptr<AttributeDefinitionList>
-	adl(new AttributeDefinitionList(defs,
-					defComplexLpd()
-					.allocAttributeDefinitionListIndex()));
-      for (size_t i = 0; i < attributed.size(); i++) {
-	const ElementType *e = (const ElementType *)attributed[i];
-	if (e) {
-	  if (defComplexLpd().attributeDef(e).isNull())
-	    defComplexLpd().setAttributeDef(e, adl);
-	  else
-	    message(ParserMessages::duplicateAttlistElement,
-		    StringMessageArg(e->name()));
-	}
-      }
-    }
-  }
-  else {
-    Ptr<AttributeDefinitionList>
-      adl(new AttributeDefinitionList(defs,
-				      defDtd()
-				      .allocAttributeDefinitionListIndex(),
-				      anyCurrent,
-				      idIndex,
-				      notationIndex));
-    for (size_t i = 0; i < attributed.size(); i++) {
-      if (attributed[i]->attributeDef().isNull()) {
-	attributed[i]->setAttributeDef(adl);
-	if (!isNotation) {
-	  ElementType *e = (ElementType *)attributed[i];
-	  if (e->definition() != 0)
-	    checkElementAttribute(e);
-	}
-      }
-      else if (options().errorAfdr && !sd().www()) {
-	if (isNotation)
-	  message(ParserMessages::duplicateAttlistNotation,
-		  StringMessageArg(((Notation *)attributed[i])->name()));
-	else
-	  message(ParserMessages::duplicateAttlistElement,
-		  StringMessageArg(((ElementType *)attributed[i])->name()));
-      }
-      else {
-	if (!hadAfdrDecl() && !sd().www()) {
-	  message(ParserMessages::missingAfdrDecl);
-	  setHadAfdrDecl();
-	}
-	AttributeDefinitionList *curAdl;
-	{
-	  // Use block to make sure temporary gets destroyed.
-	  curAdl = attributed[i]->attributeDef().pointer();
-	}
-	size_t oldSize = curAdl->size();
-	if (curAdl->count() != 1) {
-	  Vector<CopyOwner<AttributeDefinition> > copy(oldSize);
-	  for (size_t j = 0; j < oldSize; j++)
-	    copy[j] = curAdl->def(j)->copy();
-	  Ptr<AttributeDefinitionList> adlCopy
-	    = new AttributeDefinitionList(copy,
-					  defDtd().allocAttributeDefinitionListIndex(),
-					  curAdl->anyCurrent(),
-					  curAdl->idIndex(),
-					  curAdl->notationIndex());
-	  attributed[i]->setAttributeDef(adlCopy);
-	  curAdl = adlCopy.pointer();
-	}
-	// FIXME check for multiple ID and NOTATION attributes
-	for (size_t j = 0; j < adl->size(); j++) {
-	  unsigned tem;
-	  if (!curAdl->attributeIndex(adl->def(j)->name(), tem))
-	    curAdl->append(adl->def(j)->copy());
-	}
-	if (!isNotation) {
-	  ElementType *e = (ElementType *)attributed[i];
-	  if (e->definition() != 0)
-	    checkElementAttribute(e, oldSize);
-	}
-      }
-    }
-  }
-  if (currentMarkup()) {
-    if (isNotation) {
-      Vector<ConstPtr<Notation> > v(attributed.size());
-      for (size_t i = 0; i < attributed.size(); i++)
-	v[i] = (Notation *)attributed[i];
-      eventHandler()
-	.attlistNotationDecl(new (eventAllocator())
-			     AttlistNotationDeclEvent(v,
-						      markupLocation(),
-						      currentMarkup()));
-    }
-    else {
-      Vector<const ElementType *> v(attributed.size());
-      for (size_t i = 0; i < attributed.size(); i++)
-	v[i] = (ElementType *)attributed[i];
-      if (haveDefLpd())
-	eventHandler()
-	  .linkAttlistDecl(new (eventAllocator())
-			   LinkAttlistDeclEvent(v,
-						defLpdPointer(),
-						markupLocation(),
-						currentMarkup()));
-      else
-	eventHandler().attlistDecl(new (eventAllocator())
-				   AttlistDeclEvent(v,
-						    currentDtdPointer(),
-						    markupLocation(),
-						    currentMarkup()));
-    }
-  }
-  if (isNotation) {
-    Dtd::EntityIter entityIter(defDtd().generalEntityIter());
-    for (;;) {
-      Ptr<Entity> entity(entityIter.next());
-      if (entity.isNull())
-	break;
-      const ExternalDataEntity *external = entity->asExternalDataEntity();
-      if (external) {
-	const Notation *entityNotation = external->notation();
-	for (size_t  i = 0; i < attributed.size(); i++)
-	  if ((Notation *)attributed[i] == entityNotation) {
-	    AttributeList attributes(entityNotation->attributeDef());
-	    attributes.finish(*this);
-	    ((ExternalDataEntity *)entity.pointer())
-	      ->setNotation((Notation *)attributed[i], attributes);
-	  }
-      }
-    }
-  }
-  return 1;
-}
-
-
-Boolean Parser::parseAttributed(unsigned declInputLevel,
-				Param &parm,
-				Vector<Attributed *> &attributed,
-				Boolean &isNotation)
-{
-  static AllowedParams
-    allowNameGroupNotation(Param::name,
-			   Param::nameGroup,
-			   Param::indicatedReservedName + Syntax::rNOTATION);
-  static AllowedParams
-    allowNameGroupNotationAll(Param::name,
-			      Param::nameGroup,
-			      Param::indicatedReservedName
-			      + Syntax::rNOTATION,
-			      Param::indicatedReservedName
-			      + Syntax::rALL,
-			      Param::indicatedReservedName
-			      + Syntax::rIMPLICIT);
-  if (!parseParam(haveDefLpd()
-		  ? allowNameGroupNotation
-		  : allowNameGroupNotationAll,
-		  declInputLevel, parm))
-    return 0;
-  if (parm.type == Param::indicatedReservedName + Syntax::rNOTATION) {
-    if (options().warnDataAttributes)
-      message(ParserMessages::dataAttributes);
-    isNotation = 1;
-    static AllowedParams
-      allowNameGroupAll(Param::name,
-			Param::nameGroup,
-			Param::indicatedReservedName + Syntax::rALL,
-			Param::indicatedReservedName + Syntax::rIMPLICIT);
-    if (!parseParam(haveDefLpd()
-		    ? allowNameNameGroup
-		    : allowNameGroupAll,
-		    declInputLevel, parm))
-      return 0;
-    if (parm.type == Param::nameGroup) {
-      attributed.resize(parm.nameTokenVector.size());
-      for (size_t i = 0; i < attributed.size(); i++)
-	attributed[i] = lookupCreateNotation(parm.nameTokenVector[i].name);
-    }
-    else {
-      if (parm.type != Param::name && !hadAfdrDecl() && !sd().www()) {
-	message(ParserMessages::missingAfdrDecl);
-	setHadAfdrDecl();
-      }
-      attributed.resize(1);
-      attributed[0]
-	= lookupCreateNotation(parm.type == Param::name
-			       ? parm.token
-			       : syntax().rniReservedName(Syntax::ReservedName(parm.type - Param::indicatedReservedName)));
-    }
-  }
-  else {
-    isNotation = 0;
-    if (parm.type == Param::nameGroup) {
-      if (options().warnAttlistGroupDecl)
-	message(ParserMessages::attlistGroupDecl);
-      attributed.resize(parm.nameTokenVector.size());
-      for (size_t i = 0; i < attributed.size(); i++)
-	attributed[i] = lookupCreateElement(parm.nameTokenVector[i].name);
-    }
-    else {
-      if (parm.type != Param::name && !hadAfdrDecl() && !sd().www()) {
-	message(ParserMessages::missingAfdrDecl);
-	setHadAfdrDecl();
-      }
-      attributed.resize(1);
-      attributed[0]
-	= lookupCreateElement(parm.type == Param::name
-			      ? parm.token
-			      : syntax().rniReservedName(Syntax::ReservedName(parm.type - Param::indicatedReservedName)));
-    }
-  }
-  return 1;
-}
-
-Boolean Parser::parseDeclaredValue(unsigned declInputLevel,
-				   Boolean isNotation,
-				   Param &parm,
-				   Owner<DeclaredValue> &declaredValue)
-{
-  static Param::Type declaredValues[] = {
-    Param::reservedName + Syntax::rCDATA,
-    Param::reservedName + Syntax::rENTITY,
-    Param::reservedName + Syntax::rENTITIES,
-    Param::reservedName + Syntax::rID,
-    Param::reservedName + Syntax::rIDREF,
-    Param::reservedName + Syntax::rIDREFS,
-    Param::reservedName + Syntax::rNAME,
-    Param::reservedName + Syntax::rNAMES,
-    Param::reservedName + Syntax::rNMTOKEN,
-    Param::reservedName + Syntax::rNMTOKENS,
-    Param::reservedName + Syntax::rNUMBER,
-    Param::reservedName + Syntax::rNUMBERS,
-    Param::reservedName + Syntax::rNUTOKEN,
-    Param::reservedName + Syntax::rNUTOKENS,
-    Param::reservedName + Syntax::rNOTATION,
-    Param::nameTokenGroup
-    };
-  static AllowedParams allowDeclaredValue(declaredValues,
-					  SIZEOF(declaredValues));
-  if (!parseParam(allowDeclaredValue, declInputLevel, parm))
-    return 0;
-  enum { asDataAttribute = 01, asLinkAttribute = 02 };
-  unsigned allowedFlags = asDataAttribute|asLinkAttribute;
-  switch (parm.type) {
-  case Param::reservedName + Syntax::rCDATA:
-    declaredValue = new CdataDeclaredValue;
-    break;
-  case Param::reservedName + Syntax::rENTITY:
-    declaredValue = new EntityDeclaredValue(0);
-    allowedFlags = asLinkAttribute;
-    break;
-  case Param::reservedName + Syntax::rENTITIES:
-    declaredValue = new EntityDeclaredValue(1);
-    allowedFlags = asLinkAttribute;
-    break;
-  case Param::reservedName + Syntax::rID:
-    declaredValue = new IdDeclaredValue;
-    allowedFlags = 0;
-    break;
-  case Param::reservedName + Syntax::rIDREF:
-    declaredValue = new IdrefDeclaredValue(0);
-    allowedFlags = 0;
-    break;
-  case Param::reservedName + Syntax::rIDREFS:
-    declaredValue = new IdrefDeclaredValue(1);
-    allowedFlags = 0;
-    break;
-  case Param::reservedName + Syntax::rNAME:
-    declaredValue
-      = new TokenizedDeclaredValue(TokenizedDeclaredValue::name, 0);
-    if (options().warnNameDeclaredValue)
-      message(ParserMessages::nameDeclaredValue);
-    break;
-  case Param::reservedName + Syntax::rNAMES:
-    declaredValue
-      = new TokenizedDeclaredValue(TokenizedDeclaredValue::name, 1);
-    if (options().warnNameDeclaredValue)
-      message(ParserMessages::nameDeclaredValue);
-    break;
-  case Param::reservedName + Syntax::rNMTOKEN:
-    declaredValue
-      = new TokenizedDeclaredValue(TokenizedDeclaredValue::nameToken, 0);
-    break;
-  case Param::reservedName + Syntax::rNMTOKENS:
-    declaredValue
-      = new TokenizedDeclaredValue(TokenizedDeclaredValue::nameToken, 1);
-    break;
-  case Param::reservedName + Syntax::rNUMBER:
-    declaredValue
-      = new TokenizedDeclaredValue(TokenizedDeclaredValue::number, 0);
-    if (options().warnNumberDeclaredValue)
-      message(ParserMessages::numberDeclaredValue);
-    break;
-  case Param::reservedName + Syntax::rNUMBERS:
-    declaredValue
-      = new TokenizedDeclaredValue(TokenizedDeclaredValue::number, 1);
-    if (options().warnNumberDeclaredValue)
-      message(ParserMessages::numberDeclaredValue);
-    break;
-  case Param::reservedName + Syntax::rNUTOKEN:
-    declaredValue
-      = new TokenizedDeclaredValue(TokenizedDeclaredValue::numberToken, 0);
-    if (options().warnNutokenDeclaredValue)
-      message(ParserMessages::nutokenDeclaredValue);
-    break;
-  case Param::reservedName + Syntax::rNUTOKENS:
-    declaredValue
-      = new TokenizedDeclaredValue(TokenizedDeclaredValue::numberToken, 1);
-    if (options().warnNutokenDeclaredValue)
-      message(ParserMessages::nutokenDeclaredValue);
-    break;
-  case Param::reservedName + Syntax::rNOTATION:
-    {
-      static AllowedParams allowNameGroup(Param::nameGroup);
-      if (!parseParam(allowNameGroup, declInputLevel, parm))
-	return 0;
-      Vector<StringC> group(parm.nameTokenVector.size());
-      for (size_t i = 0; i < group.size(); i++)
-	parm.nameTokenVector[i].name.swap(group[i]);
-      declaredValue = new NotationDeclaredValue(group);
-      allowedFlags = 0;
-    }
-    break;
-  case Param::nameTokenGroup:
-    {
-      Vector<StringC> group(parm.nameTokenVector.size());
-      for (size_t i = 0; i < group.size(); i++)
-	parm.nameTokenVector[i].name.swap(group[i]);
-      declaredValue = new NameTokenGroupDeclaredValue(group);
-    }
-    break;
-  default:
-    CANNOT_HAPPEN();
-  }
-  if (isNotation) {
-    if (!(allowedFlags & asDataAttribute))
-      message(ParserMessages::dataAttributeDeclaredValue);
-  }
-  else if (haveDefLpd() && !isNotation && !(allowedFlags & asLinkAttribute))
-    message(ParserMessages::linkAttributeDeclaredValue);
-  return 1;
-}
-
-Boolean Parser::parseDefaultValue(unsigned declInputLevel,
-				  Boolean isNotation,
-				  Param &parm,
-				  const StringC &attributeName,
-				  Owner<DeclaredValue> &declaredValue,
-				  Owner<AttributeDefinition> &def,
-				  Boolean &anyCurrent)
-{
-  // default value
-  static AllowedParams
-    allowDefaultValue(Param::indicatedReservedName + Syntax::rFIXED,
-		      Param::indicatedReservedName + Syntax::rREQUIRED,
-		      Param::indicatedReservedName + Syntax::rCURRENT,
-		      Param::indicatedReservedName + Syntax::rCONREF,
-		      Param::indicatedReservedName + Syntax::rIMPLIED,
-		      Param::attributeValue,
-		      Param::attributeValueLiteral);
-  static AllowedParams
-    allowTokenDefaultValue(Param::indicatedReservedName + Syntax::rFIXED,
-		      Param::indicatedReservedName + Syntax::rREQUIRED,
-		      Param::indicatedReservedName + Syntax::rCURRENT,
-		      Param::indicatedReservedName + Syntax::rCONREF,
-		      Param::indicatedReservedName + Syntax::rIMPLIED,
-		      Param::attributeValue,
-		      Param::tokenizedAttributeValueLiteral);
-  if (!parseParam(declaredValue->tokenized()
-		  ? allowTokenDefaultValue
-		  : allowDefaultValue, declInputLevel, parm))
-    return 0;
-  switch (parm.type) {
-  case Param::indicatedReservedName + Syntax::rFIXED:
-    {
-      static AllowedParams allowValue(Param::attributeValue,
-				      Param::attributeValueLiteral);
-      static AllowedParams
-	allowTokenValue(Param::attributeValue,
-			Param::tokenizedAttributeValueLiteral);
-      if (!parseParam(declaredValue->tokenized()
-		      ? allowTokenValue
-		      : allowValue, declInputLevel, parm))
-	return 0;
-      unsigned specLength = 0;
-      AttributeValue *value = declaredValue->makeValue(parm.literalText,
-						       *this,
-						       attributeName,
-						       specLength);
-      if (declaredValue->isId())
-	message(ParserMessages::idDeclaredValue);
-      def = new FixedAttributeDefinition(attributeName,
-					 declaredValue.extract(),
-					 value);
-    }
-    break;
-  case Param::attributeValue:
-    if (options().warnAttributeValueNotLiteral)
-      message(ParserMessages::attributeValueNotLiteral);
-    // falll through
-  case Param::attributeValueLiteral:
-  case Param::tokenizedAttributeValueLiteral:
-    {
-      unsigned specLength = 0;
-      AttributeValue *value = declaredValue->makeValue(parm.literalText,
-						       *this,
-						       attributeName,
-						       specLength);
-      if (declaredValue->isId())
-	message(ParserMessages::idDeclaredValue);
-      def = new DefaultAttributeDefinition(attributeName,
-					   declaredValue.extract(),
-					   value);
-    }
-    break;
-  case Param::indicatedReservedName + Syntax::rREQUIRED:
-    def = new RequiredAttributeDefinition(attributeName,
-					  declaredValue.extract());
-    break;
-  case Param::indicatedReservedName + Syntax::rCURRENT:
-    anyCurrent = 1;	       
-    if (declaredValue->isId())
-      message(ParserMessages::idDeclaredValue);
-    def = new CurrentAttributeDefinition(attributeName,
-					 declaredValue.extract(),
-					 defDtd().allocCurrentAttributeIndex());
-    if (isNotation)
-      message(ParserMessages::dataAttributeDefaultValue);
-    else if (haveDefLpd())
-      message(ParserMessages::linkAttributeDefaultValue);
-    else if (options().warnCurrent)
-      message(ParserMessages::currentAttribute);
-    break;
-  case Param::indicatedReservedName + Syntax::rCONREF:
-    if (declaredValue->isId())
-      message(ParserMessages::idDeclaredValue);
-    def = new ConrefAttributeDefinition(attributeName,
-					declaredValue.extract());
-    if (isNotation)
-      message(ParserMessages::dataAttributeDefaultValue);
-    else if (haveDefLpd())
-      message(ParserMessages::linkAttributeDefaultValue);
-    else if (options().warnConref)
-      message(ParserMessages::conrefAttribute);
-    break;
-  case Param::indicatedReservedName + Syntax::rIMPLIED:
-    def = new ImpliedAttributeDefinition(attributeName,
-					 declaredValue.extract());
-    break;
-  default:
-    CANNOT_HAPPEN();
-  }
-  return 1;
-}
-
-// parm contains either system or public
-
-Boolean Parser::parseExternalId(const AllowedParams &sysidAllow,
-				const AllowedParams &endAllow,
-				Boolean maybeWarnMissingSystemId,
-				unsigned declInputLevel,
-				Param &parm,
-				ExternalId &id)
-{
-  id.setLocation(currentLocation());
-  if (parm.type == Param::reservedName + Syntax::rPUBLIC) {
-    static AllowedParams allowMinimumLiteral(Param::minimumLiteral);
-    if (!parseParam(allowMinimumLiteral, declInputLevel, parm))
-      return 0;
-    const MessageType1 *err;
-    if (id.setPublic(parm.literalText, sd().internalCharset(), syntax().space(),
-		      err)) {
-      PublicId::TextClass textClass;
-      if (sd().formal() && id.publicId()->getTextClass(textClass) && textClass == PublicId::SD)
-	message(ParserMessages::wwwRequired);
-    }
-    else if (sd().formal())
-      message(*err,
-	      StringMessageArg(*id.publicIdString()));
-  }
-  if (!parseParam(sysidAllow, declInputLevel, parm))
-    return 0;
-  if (parm.type == Param::systemIdentifier) {
-    id.setSystem(parm.literalText);
-    if (!parseParam(endAllow, declInputLevel, parm))
-      return 0;
-  }
-  else if (options().warnMissingSystemId && maybeWarnMissingSystemId)
-    message(ParserMessages::missingSystemId);
-  return 1;
-}
-
-Boolean Parser::parseNotationDecl()
-{
-  unsigned declInputLevel = inputLevel();
-  Param parm;
-  if (!parseParam(allowName, declInputLevel, parm))
-    return 0;
-  Notation *nt = lookupCreateNotation(parm.token);
-  if (validate() && nt->defined())
-    message(ParserMessages::duplicateNotationDeclaration,
-	    StringMessageArg(parm.token));
-  static AllowedParams
-    allowPublicSystem(Param::reservedName + Syntax::rPUBLIC,
-		      Param::reservedName + Syntax::rSYSTEM);
-  if (!parseParam(allowPublicSystem, declInputLevel, parm))
-    return 0;
-
-
-  static AllowedParams allowSystemIdentifierMdc(Param::systemIdentifier,
-						Param::mdc);
-
-  ExternalId id;
-  if (!parseExternalId(allowSystemIdentifierMdc, allowMdc,
-		       parm.type == Param::reservedName + Syntax::rSYSTEM,
-		       declInputLevel, parm, id))
-    return 0;
-  if (validate() && sd().formal()) {
-    PublicId::TextClass textClass;
-    const PublicId *publicId = id.publicId();
-    if (publicId
-	&& publicId->getTextClass(textClass)
-	&& textClass != PublicId::NOTATION)
-      message(ParserMessages::notationIdentifierTextClass);
-  }
-  if (!nt->defined()) {
-    nt->setExternalId(id, markupLocation());
-    nt->generateSystemId(*this);
-    if (currentMarkup())
-      eventHandler().notationDecl(new (eventAllocator())
-				  NotationDeclEvent(nt, markupLocation(),
-						    currentMarkup()));
-  }
-  return 1;
-}
-
-Boolean Parser::parseEntityDecl()
-{
-  unsigned declInputLevel = inputLevel();
-  Param parm;
-
-  static AllowedParams
-    allowEntityNamePero(Param::entityName,
-			Param::indicatedReservedName + Syntax::rDEFAULT,
-			Param::pero);
-
-  if (!parseParam(allowEntityNamePero, declInputLevel, parm))
-    return 0;
-
-  Entity::DeclType declType;
-  StringC name;			// empty for default entity
-  if (parm.type == Param::pero) {
-    declType = Entity::parameterEntity;
-    static AllowedParams allowParamEntityName(Param::paramEntityName);
-    if (!parseParam(allowParamEntityName, declInputLevel, parm))
-      return 0;
-    parm.token.swap(name);
-  }
-  else {
-    declType = Entity::generalEntity;
-    if (parm.type == Param::entityName)
-      parm.token.swap(name);
-    else if (options().warnDefaultEntityDecl)
-      message(ParserMessages::defaultEntityDecl);
-  }
-  static AllowedParams
-    allowEntityTextType(Param::paramLiteral,
-			Param::reservedName + Syntax::rCDATA,
-			Param::reservedName + Syntax::rSDATA,
-			Param::reservedName + Syntax::rPI,
-			Param::reservedName + Syntax::rSTARTTAG,
-			Param::reservedName + Syntax::rENDTAG,
-			Param::reservedName + Syntax::rMS,
-			Param::reservedName + Syntax::rMD,
-			Param::reservedName + Syntax::rSYSTEM,
-			Param::reservedName + Syntax::rPUBLIC);
-
-  if (!parseParam(allowEntityTextType, declInputLevel, parm))
-    return 0;
-  Location typeLocation(currentLocation());
-  Entity::DataType dataType = Entity::sgmlText;
-  InternalTextEntity::Bracketed bracketed = InternalTextEntity::none;
-  switch (parm.type) {
-  case Param::reservedName + Syntax::rSYSTEM:
-  case Param::reservedName + Syntax::rPUBLIC:
-    return parseExternalEntity(name, declType, declInputLevel, parm);
-  case Param::reservedName + Syntax::rCDATA:
-    dataType = Entity::cdata;
-    if (options().warnInternalCdataEntity)
-      message(ParserMessages::internalCdataEntity);
-    break;
-  case Param::reservedName + Syntax::rSDATA:
-    dataType = Entity::sdata;
-    if (options().warnInternalSdataEntity)
-      message(ParserMessages::internalSdataEntity);
-    break;
-  case Param::reservedName + Syntax::rPI:
-    dataType = Entity::pi;
-    if (options().warnPiEntity)
-      message(ParserMessages::piEntity);
-    break;
-  case Param::reservedName + Syntax::rSTARTTAG:
-    bracketed = InternalTextEntity::starttag;
-    if (options().warnBracketEntity)
-      message(ParserMessages::bracketEntity);
-    break;
-  case Param::reservedName + Syntax::rENDTAG:
-    bracketed = InternalTextEntity::endtag;
-    if (options().warnBracketEntity)
-      message(ParserMessages::bracketEntity);
-    break;
-  case Param::reservedName + Syntax::rMS:
-    bracketed = InternalTextEntity::ms;
-    if (options().warnBracketEntity)
-      message(ParserMessages::bracketEntity);
-    break;
-  case Param::reservedName + Syntax::rMD:
-    bracketed = InternalTextEntity::md;
-    if (options().warnBracketEntity)
-      message(ParserMessages::bracketEntity);
-    break;
-  }
-  if (parm.type != Param::paramLiteral) {
-    if (!parseParam(allowParamLiteral, declInputLevel, parm))
-      return 0;
-  }
-  Text text;
-  parm.literalText.swap(text);
-  if (bracketed != InternalTextEntity::none) {
-    StringC open;
-    StringC close;
-    switch (bracketed) {
-    case InternalTextEntity::starttag:
-      open = syntax().delimGeneral(Syntax::dSTAGO);
-      close = syntax().delimGeneral(Syntax::dTAGC);
-      break;
-    case InternalTextEntity::endtag:
-      open = syntax().delimGeneral(Syntax::dETAGO);
-      close = syntax().delimGeneral(Syntax::dTAGC);
-      break;
-    case InternalTextEntity::ms:
-      open = syntax().delimGeneral(Syntax::dMDO);
-      open += syntax().delimGeneral(Syntax::dDSO);
-      close = syntax().delimGeneral(Syntax::dMSC);
-      close += syntax().delimGeneral(Syntax::dMDC);
-      break;
-    case InternalTextEntity::md:
-      open = syntax().delimGeneral(Syntax::dMDO);
-      close = syntax().delimGeneral(Syntax::dMDC);
-      break;
-    default:
-      CANNOT_HAPPEN();
-    }
-    text.insertChars(open, Location(new BracketOrigin(typeLocation,
-						      BracketOrigin::open),
-				    0));
-    text.addChars(close, Location(new BracketOrigin(typeLocation,
-						    BracketOrigin::close),
-				  0));
-    if (text.size() > syntax().litlen()
-	&& text.size() - open.size() - close.size() <= syntax().litlen())
-      message(ParserMessages::bracketedLitlen,
-	      NumberMessageArg(syntax().litlen()));
-  }
-  if (!parseParam(allowMdc, declInputLevel, parm))
-    return 0;
-  if (declType == Entity::parameterEntity
-      && (dataType == Entity::cdata || dataType == Entity::sdata)) {
-    message(ParserMessages::internalParameterDataEntity,
-	    StringMessageArg(name));
-    return 1;
-  }
-  Ptr<Entity> entity;
-  switch (dataType) {
-  case Entity::cdata:
-    entity = new InternalCdataEntity(name, markupLocation(), text);
-    break;
-  case Entity::sdata:
-    entity = new InternalSdataEntity(name, markupLocation(), text);
-    break;
-  case Entity::pi:
-    entity = new PiEntity(name, declType, markupLocation(), text);
-    break;
-  case Entity::sgmlText:
-    entity = new InternalTextEntity(name, declType, markupLocation(), text, bracketed);
-    break;
-  default:
-    CANNOT_HAPPEN();
-    break;
-  }
-  maybeDefineEntity(entity);
-  return 1;
-}
-
-Boolean Parser::parseExternalEntity(StringC &name,
-				    Entity::DeclType declType,
-				    unsigned declInputLevel,
-				    Param &parm)
-{
-  static AllowedParams
-    allowSystemIdentifierEntityTypeMdc(Param::systemIdentifier,
-				       Param::reservedName + Syntax::rSUBDOC,
-				       Param::reservedName + Syntax::rCDATA,
-				       Param::reservedName + Syntax::rSDATA,
-				       Param::reservedName + Syntax::rNDATA,
-				       Param::mdc);
-  static AllowedParams
-    allowEntityTypeMdc(Param::reservedName + Syntax::rSUBDOC,
-		       Param::reservedName + Syntax::rCDATA,
-		       Param::reservedName + Syntax::rSDATA,
-		       Param::reservedName + Syntax::rNDATA,
-		       Param::mdc);
-  
-  ExternalId id;
-  if (!parseExternalId(allowSystemIdentifierEntityTypeMdc, allowEntityTypeMdc,
-		       1, declInputLevel, parm, id))
-    return 0;
-  if (parm.type == Param::mdc) {
-    maybeDefineEntity(new ExternalTextEntity(name, declType, markupLocation(),
-					     id));
-    return 1;
-  }
-  Ptr<Entity> entity;
-  if (parm.type == Param::reservedName + Syntax::rSUBDOC) {
-    if (sd().subdoc() == 0)
-      message(ParserMessages::subdocEntity, StringMessageArg(name));
-    if (!parseParam(allowMdc, declInputLevel, parm))
-      return 0;
-    entity = new SubdocEntity(name, markupLocation(), id);
-  }
-  else {
-    Entity::DataType dataType;
-    switch (parm.type) {
-    case Param::reservedName + Syntax::rCDATA:
-      dataType = Entity::cdata;
-      if (options().warnExternalCdataEntity)
-	message(ParserMessages::externalCdataEntity);
-      break;
-    case Param::reservedName + Syntax::rSDATA:
-      dataType = Entity::sdata;
-      if (options().warnExternalSdataEntity)
-	message(ParserMessages::externalSdataEntity);
-      break;
-    case Param::reservedName + Syntax::rNDATA:
-      dataType = Entity::ndata;
-      break;
-    default:
-      CANNOT_HAPPEN();
-    }
-    if (!parseParam(allowName, declInputLevel, parm))
-      return 0;
-    Ptr<Notation> notation(lookupCreateNotation(parm.token));
-    if (!parseParam(allowDsoMdc, declInputLevel, parm))
-      return 0;
-    AttributeList attributes(notation->attributeDef());
-    if (parm.type == Param::dso) {
-      if (attributes.size() == 0)
-	message(ParserMessages::notationNoAttributes,
-		StringMessageArg(notation->name()));
-      Boolean netEnabling;
-      Ptr<AttributeDefinitionList> newAttDef;
-      if (!parseAttributeSpec(1, attributes, netEnabling, newAttDef))
-	return 0;
-      if (!newAttDef.isNull()) {
-	newAttDef->setIndex(defDtd().allocAttributeDefinitionListIndex());
-	notation->setAttributeDef(newAttDef);
-      }
-      if (attributes.nSpec() == 0)
-	message(ParserMessages::emptyDataAttributeSpec);
-      if (!parseParam(allowMdc, declInputLevel, parm))
-	return 0;
-    }
-    else
-      attributes.finish(*this);
-    entity = new ExternalDataEntity(name, dataType, markupLocation(), id, notation,
-				    attributes);
-  }
-  if (declType == Entity::parameterEntity) {
-    message(ParserMessages::externalParameterDataSubdocEntity,
-	    StringMessageArg(name));
-    return 1;
-  }
-  maybeDefineEntity(entity);
-  return 1;
-}
-
-Notation *Parser::lookupCreateNotation(const StringC &name)
-{
-  Ptr<Notation> nt = defDtd().lookupNotation(name);
-  if (nt.isNull()) {
-    nt = new Notation(name, defDtd().namePointer(), defDtd().isBase());
-    defDtd().insertNotation(nt);
-  }
-  return nt.pointer();
-}
-
-void Parser::maybeDefineEntity(const Ptr<Entity> &entity)
-{
-  Dtd &dtd = defDtd();
-  if (haveDefLpd())
-    entity->setDeclIn(dtd.namePointer(),
-		      dtd.isBase(),
-		      defLpd().namePointer(),
-		      defLpd().active());
-  else
-    entity->setDeclIn(dtd.namePointer(), dtd.isBase());
-  Boolean ignored = 0;
-  if (entity->name().size() == 0) {
-    const Entity *oldEntity = dtd.defaultEntity().pointer();
-    if (oldEntity == 0
-	|| (!oldEntity->declInActiveLpd() && entity->declInActiveLpd()))
-      dtd.setDefaultEntity(entity, *this);
-    else {
-      ignored = 1;
-      if (options().warnDuplicateEntity)
-	message(ParserMessages::duplicateEntityDeclaration,
-		StringMessageArg(syntax().rniReservedName(Syntax::rDEFAULT)));
-    }
-  }
-  else {
-    Ptr<Entity> oldEntity = dtd.insertEntity(entity);
-    if (oldEntity.isNull())
-      entity->generateSystemId(*this);
-    else if (oldEntity->defaulted()) {
-      dtd.insertEntity(entity, 1);
-      message(ParserMessages::defaultedEntityDefined,
-	      StringMessageArg(entity->name()));
-      entity->generateSystemId(*this);
-    }
-    else {
-      if (entity->declInActiveLpd() && !oldEntity->declInActiveLpd()) {
-	dtd.insertEntity(entity, 1);
-	entity->generateSystemId(*this);
-      }
-      else {
-	ignored = 1;
-	if (options().warnDuplicateEntity)
-	  message(entity->declType() == Entity::parameterEntity
-		  ? ParserMessages::duplicateParameterEntityDeclaration
-		  : ParserMessages::duplicateEntityDeclaration,
-		  StringMessageArg(entity->name()));
-      }
-    }
-  }
-  if (currentMarkup())
-    eventHandler().entityDecl(new (eventAllocator())
-			      EntityDeclEvent(entity, ignored,
-					      markupLocation(),
-					      currentMarkup()));
-}
-
-Boolean Parser::parseShortrefDecl()
-{
-  if (!defDtd().isBase())
-    message(ParserMessages::shortrefOnlyInBaseDtd);
-
-  unsigned declInputLevel = inputLevel();
-  Param parm;
-
-  if (!parseParam(allowName, declInputLevel, parm))
-    return 0;
-  ShortReferenceMap *map = lookupCreateMap(parm.token);
-  int valid = 1;
-  if (map->defined()) {
-    message(ParserMessages::duplicateShortrefDeclaration,
-	    StringMessageArg(parm.token),
-	    map->defLocation());
-    valid = 0;
-  }
-  else
-    map->setDefLocation(markupLocation());
-  if (!parseParam(allowParamLiteral, declInputLevel, parm))
-    return 0;
-  Vector<StringC> vec;
-  do {
-    StringC delim(parm.literalText.string());
-    const SubstTable<Char> *table = instanceSyntax().generalSubstTable();
-    for (size_t i = 0; i < delim.size(); i++)
-      table->subst(delim[i]);
-    size_t srIndex;
-    if (!defDtd().shortrefIndex(delim, instanceSyntax(), srIndex)) {
-      message(ParserMessages::unknownShortrefDelim,
-	      StringMessageArg(prettifyDelim(delim)));
-      valid = 0;
-    }
-    static AllowedParams allowEntityName(Param::entityName);
-    if (!parseParam(allowEntityName, declInputLevel, parm))
-      return 0;
-    if (valid) {
-      if (srIndex >= vec.size())
-	vec.resize(srIndex + 1);
-      if (vec[srIndex].size() > 0) {
-	message(ParserMessages::delimDuplicateMap,
-		StringMessageArg(prettifyDelim(delim)));
-	valid = 0;
-      }
-      else
-	parm.token.swap(vec[srIndex]);
-    }
-    static AllowedParams allowParamLiteralMdc(Param::paramLiteral, Param::mdc);
-    if (!parseParam(allowParamLiteralMdc, declInputLevel, parm))
-      return 0;
-  } while (parm.type != Param::mdc);
-  if (valid) {
-    map->setNameMap(vec);
-    if (currentMarkup())
-      eventHandler().shortrefDecl(new (eventAllocator())
-				  ShortrefDeclEvent(map,
-						    currentDtdPointer(),
-						    markupLocation(),
-						    currentMarkup()));
-  }
-  return 1;
-}
-
-StringC Parser::prettifyDelim(const StringC &delim)
-{
-  StringC prettyDelim;
-  for (size_t i = 0; i < delim.size(); i++) {
-    const StringC *nameP;
-    if (syntax().charFunctionName(delim[i], nameP)) {
-      prettyDelim += syntax().delimGeneral(Syntax::dCRO);
-      prettyDelim += *nameP;
-      prettyDelim += syntax().delimGeneral(Syntax::dREFC);
-    }
-    else
-      prettyDelim += delim[i];
-  }
-  return prettyDelim;
-}
-
-ShortReferenceMap *Parser::lookupCreateMap(const StringC &name)
-{
-  ShortReferenceMap *map = defDtd().lookupShortReferenceMap(name);
-  if (!map) {
-    map = new ShortReferenceMap(name);
-    defDtd().insertShortReferenceMap(map);
-  }
-  return map;
-}
-
-Boolean Parser::parseUsemapDecl()
-{
-  if (!inInstance() && !defDtd().isBase())
-    message(ParserMessages::usemapOnlyInBaseDtd);
-
-  unsigned declInputLevel = inputLevel();
-  Param parm;
-  static AllowedParams
-    allowNameEmpty(Param::name,
-		   Param::indicatedReservedName + Syntax::rEMPTY);
-  if (!parseParam(allowNameEmpty, declInputLevel, parm))
-    return 0;
-  const ShortReferenceMap *map;
-  if (parm.type == Param::name) {
-    if (inInstance()) {
-      map = currentDtd().lookupShortReferenceMap(parm.token);
-      if (!map)
-	message(ParserMessages::undefinedShortrefMapInstance,
-		StringMessageArg(parm.token));
-    }
-    else {
-      ShortReferenceMap *tem = lookupCreateMap(parm.token);
-      tem->setUsed();
-      map = tem;
-    }
-  }
-  else
-    map = &theEmptyMap;
-  static AllowedParams
-    allowNameNameGroupMdc(Param::name, Param::nameGroup, Param::mdc);
-  if (!parseParam(allowNameNameGroupMdc, declInputLevel, parm))
-    return 0;
-  if (parm.type != Param::mdc) {
-    if (inInstance()) {
-      message(ParserMessages::usemapAssociatedElementTypeInstance);
-      if (!parseParam(allowMdc, declInputLevel, parm))
-	return 0;
-    }
-    else {
-      Vector<const ElementType *> v;
-      if (parm.type == Param::name) {
-	ElementType *e = lookupCreateElement(parm.token);
-	v.push_back(e);
-	if (!e->map())
-	  e->setMap(map);
-      }
-      else {
-	v.resize(parm.nameTokenVector.size());
-	for (size_t i = 0; i < parm.nameTokenVector.size(); i++) {
-	  ElementType *e
-	    = lookupCreateElement(parm.nameTokenVector[i].name);
-	  v[i] = e;
-	  if (!e->map())
-	    e->setMap(map);
-	}
-      }
-      if (!parseParam(allowMdc, declInputLevel, parm))
-	return 0;
-      if (currentMarkup())
-	eventHandler().usemap(new (eventAllocator())
-			      UsemapEvent(map, v,
-					  currentDtdPointer(),
-					  markupLocation(),
-					  currentMarkup()));
-    }
-  }
-  else {
-    if (!inInstance())
-      message(ParserMessages::usemapAssociatedElementTypeDtd);
-    else if (map) {
-      if (map != &theEmptyMap && !map->defined())
-	message(ParserMessages::undefinedShortrefMapInstance,
-		StringMessageArg(map->name()));
-      else {
-	if (currentMarkup()) {
-	  Vector<const ElementType *> v;
-	  eventHandler().usemap(new (eventAllocator())
-				UsemapEvent(map, v,
-					    currentDtdPointer(),
-					    markupLocation(),
-					    currentMarkup()));
-	}
-	currentElement().setMap(map);
-      }
-    }
-  }
-  return 1;
-}
-
-Boolean Parser::parseDoctypeDeclStart()
-{
-  if (hadDtd() && !sd().concur() && !sd().explicitLink())
-    message(ParserMessages::multipleDtds);
-  if (hadLpd())
-    message(ParserMessages::dtdAfterLpd);
-  unsigned declInputLevel = inputLevel();
-  Param parm;
-  
-  if (!parseParam(allowName, declInputLevel, parm))
-    return 0;
-  StringC name;
-  parm.token.swap(name);
-  if (!lookupDtd(name).isNull())
-    message(ParserMessages::duplicateDtd, StringMessageArg(name));
-  static AllowedParams
-    allowPublicSystemDsoMdc(Param::reservedName + Syntax::rPUBLIC,
-			    Param::reservedName + Syntax::rSYSTEM,
-			    Param::dso,
-			    Param::mdc);
-  if (!parseParam(allowPublicSystemDsoMdc, declInputLevel, parm))
-    return 0;
-  ConstPtr<Entity> entity;
-  if (parm.type == Param::reservedName + Syntax::rPUBLIC
-      || parm.type == Param::reservedName + Syntax::rSYSTEM) {
-    static AllowedParams allowSystemIdentifierDsoMdc(Param::systemIdentifier,
-						     Param::dso, Param::mdc);
-    ExternalId id;
-    if (!parseExternalId(allowSystemIdentifierDsoMdc, allowDsoMdc,
-			 1, declInputLevel, parm, id))
-      return 0;
-    Ptr<Entity> tem
-      = new ExternalTextEntity(name, Entity::doctype, markupLocation(), id);
-    tem->generateSystemId(*this);
-    entity = tem;
-#if 0
-    eventHandler()
-      .externalEntityDecl(new (eventAllocator())
-			  ExternalEntityDeclEvent(entity, 0));
-#endif
-  }
-  else if (parm.type == Param::mdc) {
-    if (!sd().implydefElement()) {
-      message(ParserMessages::noDtdSubset);
-      enableImplydef();
-    }
-  }
-  // Discard mdc or dso
-  if (currentMarkup())
-    currentMarkup()->resize(currentMarkup()->size() - 1);
-  eventHandler().startDtd(new (eventAllocator())
-			  StartDtdEvent(name, entity, parm.type == Param::dso,
-					markupLocation(),
-					currentMarkup()));
-  startDtd(name);
-  if (parm.type == Param::mdc) {
-    // unget the mdc
-    currentInput()->ungetToken();
-    if (entity.isNull()) {
-      (void)parseDoctypeDeclEnd();
-      return 1;
-    }
-    // reference the entity
-    Ptr<EntityOrigin> origin
-      = EntityOrigin::make(internalAllocator(), entity, currentLocation());
-    entity->dsReference(*this, origin);
-    if (inputLevel() == 1) {	// reference failed
-      (void)parseDoctypeDeclEnd();
-      return 1;
-    }
-  }
-  else if (!entity.isNull())
-    setDsEntity(entity);
-  setPhase(declSubsetPhase);
-  return 1;
-}
-
-void Parser::implyDtd(const StringC &gi)
-{
-  startMarkup(eventsWanted().wantPrologMarkup(), Location());
-#if 0
-  if (currentMarkup()) {
-    currentMarkup()->addDelim(Syntax::dMDO);
-    currentMarkup()->addReservedName(Syntax::rDOCTYPE,
-				     syntax().reservedName(Syntax::rDOCTYPE));
-    currentMarkup()->addS(syntax().space());
-    currentMarkup()->addName(gi.data(), gi.size());
-  }
-#endif
-  if (sd().implydefElement() && !sd().implydefDoctype()) {
-    eventHandler().startDtd(new (eventAllocator())
-				  StartDtdEvent(gi, ConstPtr<Entity>(), 0,
-					markupLocation(),
-					currentMarkup()));
-    startDtd(gi);
-    parseDoctypeDeclEnd(1);
-    return;
-  }
-  ExternalId id;
-  // The null location indicates that this is a fake entity.
-  Entity *tem = new ExternalTextEntity(gi, Entity::doctype, Location(), id);
-  ConstPtr<Entity> entity(tem);
-  if (sd().implydefDoctype())
-    tem->generateSystemId(*this);
-  else {
-    // Don't use Entity::generateSystemId because we don't want an error
-    // if it fails.
-    StringC str;
-    if (!entityCatalog().lookup(*entity, syntax(), sd().internalCharset(),
-			        messenger(), str)) {
-      message(ParserMessages::noDtd);
-      enableImplydef();
-      eventHandler().startDtd(new (eventAllocator())
-				   StartDtdEvent(gi, ConstPtr<Entity>(), 0,
-				                 markupLocation(),
-					         currentMarkup()));
-      startDtd(gi);
-      parseDoctypeDeclEnd(1);
-      return;
-    }
-    id.setEffectiveSystem(str);
-#if 0
-    if (currentMarkup()) {
-      currentMarkup()->addS(syntax().space());
-      currentMarkup()->addReservedName(Syntax::rSYSTEM,
-				       syntax().reservedName(Syntax::rSYSTEM));
-    }
-#endif
-    entity = new ExternalTextEntity(gi,
-				    Entity::doctype,
-				    Location(),
-				    id);
-    StringC declStr;
-    declStr += syntax().delimGeneral(Syntax::dMDO);
-    declStr += syntax().reservedName(Syntax::rDOCTYPE);
-    declStr += syntax().space();
-    declStr += gi;
-    declStr += syntax().space();
-    declStr += syntax().reservedName(Syntax::rSYSTEM);
-    declStr += syntax().delimGeneral(Syntax::dMDC);
-    message(ParserMessages::implyingDtd, StringMessageArg(declStr));
-  }
-  Ptr<EntityOrigin> origin
-    = EntityOrigin::make(internalAllocator(), entity, currentLocation());
-  eventHandler().startDtd(new (eventAllocator())
-			  StartDtdEvent(gi, entity, 0,
-					markupLocation(),
-					currentMarkup()));
-  startDtd(gi);
-  entity->dsReference(*this, origin);
-  if (inputLevel() == 1)
-    parseDoctypeDeclEnd(1);
-  else
-    setPhase(declSubsetPhase);
-}
-
-Boolean Parser::parseDoctypeDeclEnd(Boolean fake)
-{
-  checkDtd(defDtd());
-  Ptr<Dtd> tem(defDtdPointer());
-  endDtd();
-  if (fake) {
-    startMarkup(eventsWanted().wantPrologMarkup(), Location());
-#if 0
-    if (currentMarkup())
-      currentMarkup()->addDelim(Syntax::dMDC);
-#endif
-  }
-  else {
-    startMarkup(eventsWanted().wantPrologMarkup(), currentLocation());
-    Param parm;
-    // End DTD before parsing final param so parameter entity reference
-    // not allowed between ] and >.
-    if (!parseParam(allowMdc, inputLevel(), parm))
-      return 0;
-  }
-  eventHandler().endDtd(new (eventAllocator()) EndDtdEvent(tem,
-							   markupLocation(),
-							   currentMarkup()));
-#if 0
-  if (fake) {
-    Char c = syntax().standardFunction(Syntax::fRE);
-    eventHandler().sSep(new (eventAllocator())
-			SSepEvent(&c, 1, Location(), 1));
-  }
-#endif
-  return 1;
-}
-
-void Parser::checkDtd(Dtd &dtd)
-{
-  if (dtd.isBase())
-    addNeededShortrefs(dtd, instanceSyntax());
-  if (sd().www() || !options().errorAfdr)
-    addCommonAttributes(dtd);
-  Dtd::ElementTypeIter elementIter(dtd.elementTypeIter());
-  ElementType *p;
-  ConstPtr<ElementDefinition> def;
-  int i = 0;
-  while ((p = elementIter.next()) != 0) {
-    if (p->definition() == 0) {
-      if (p->name() == dtd.name()) {
-	if (validate() && !implydefElement())
-	  message(ParserMessages::documentElementUndefined);
-      }
-      else if (options().warnUndefinedElement)
-	message(ParserMessages::dtdUndefinedElement, StringMessageArg(p->name()));
-      if (def.isNull())
-	def = new ElementDefinition(currentLocation(),
-				    size_t(ElementDefinition::undefinedIndex),
-				    0,
-				    ElementDefinition::any);
-      p->setElementDefinition(def, i++);
-    }
-    const ShortReferenceMap *map = p->map();
-    if (map != 0 && map != &theEmptyMap && !map->defined()) {
-      if (validate())
-	message(ParserMessages::undefinedShortrefMapDtd,
-	        StringMessageArg(map->name()),
-	        StringMessageArg(p->name()));
-      p->setMap(0);
-    }
-  }
-  Dtd::ShortReferenceMapIter mapIter(dtd.shortReferenceMapIter());
-  int nShortref = dtd.nShortref();
-  for (;;) {
-    ShortReferenceMap *map = mapIter.next();
-    if (!map)
-      break;
-    Vector<ConstPtr<Entity> > entityMap(nShortref);
-    for (i = 0; i < nShortref; i++) {
-      const StringC *entityName = map->entityName(i);
-      if (entityName) {
-	ConstPtr<Entity> entity
-	  = lookupEntity(0, *entityName, map->defLocation(), 0);
-	if (entity.isNull()) {
-	  setNextLocation(map->defLocation());
-	  message(ParserMessages::mapEntityUndefined,
-		  StringMessageArg(*entityName),
-		  StringMessageArg(map->name()));
-	}
-	else {
-	  if (entity->defaulted() && options().warnDefaultEntityReference) {
-	    setNextLocation(map->defLocation());
-	    message(ParserMessages::mapDefaultEntity,
-		    StringMessageArg(*entityName),
-		    StringMessageArg(map->name()));
-	  }
-	  entityMap[i] = entity;
-	}
-      }
-    }
-    map->setEntityMap(entityMap);
-    if (options().warnUnusedMap && !map->used()) {
-      setNextLocation(map->defLocation());
-      message(ParserMessages::unusedMap, StringMessageArg(map->name()));
-    }
-  }
-  if (options().warnUnusedParam) {
-    Dtd::ConstEntityIter entityIter(((const Dtd &)dtd).parameterEntityIter());
-    for (;;) {
-      ConstPtr<Entity> entity(entityIter.next());
-      if (entity.isNull())
-	break;
-      if (!entity->used() && !maybeStatusKeyword(*entity)) {
-	setNextLocation(entity->defLocation());
-	message(ParserMessages::unusedParamEntity,
-		StringMessageArg(entity->name()));
-      }
-    }
-  }
-  if (!validate())
-    return;
-  Dtd::ConstEntityIter entityIter(((const Dtd &)dtd).generalEntityIter());
-  for (;;) {
-    ConstPtr<Entity> entity(entityIter.next());
-    if (entity.isNull())
-      break;
-    const ExternalDataEntity *external = entity->asExternalDataEntity();
-    if (external) {
-      const Notation *notation = external->notation();
-      if (!notation->defined()) {
-	setNextLocation(external->defLocation());
-	message(ParserMessages::entityNotationUndefined,
-		StringMessageArg(notation->name()),
-		StringMessageArg(external->name()));
-      }
-    }
-  }
-  Dtd::NotationIter notationIter(dtd.notationIter());
-  for (;;) {
-    ConstPtr<Notation> notation(notationIter.next());
-    if (notation.isNull())
-      break;
-    if (!notation->defined() && !notation->attributeDef().isNull())
-      message(ParserMessages::attlistNotationUndefined,
-	      StringMessageArg(notation->name()));
-  }
-}
-
-void Parser::addCommonAttributes(Dtd &dtd)
-{
-  Ptr<AttributeDefinitionList> commonAdl[2];
-  {
-    ElementType *e = dtd.removeElementType(syntax()
-					   .rniReservedName(Syntax::rALL));
-    if (e) {
-      commonAdl[0] = e->attributeDef();
-      delete e;
-      lookupCreateElement(syntax().rniReservedName(Syntax::rIMPLICIT));
-    }
-  }
-  {
-    Ptr<Notation> allNotation
-      = dtd.removeNotation(syntax().rniReservedName(Syntax::rALL));
-    if (!allNotation.isNull()) {
-      commonAdl[1] = allNotation->attributeDef();
-      lookupCreateNotation(syntax().rniReservedName(Syntax::rIMPLICIT));
-    }
-  }
-  Dtd::ElementTypeIter elementIter(dtd.elementTypeIter());
-  Dtd::NotationIter notationIter(dtd.notationIter());
-  Vector<PackedBoolean> doneAdl(dtd.nAttributeDefinitionList(),
-				PackedBoolean(0));
-  for (int isNotation = 0; isNotation < 2; isNotation++) {
-    if (!commonAdl[isNotation].isNull()) {
-      doneAdl[commonAdl[isNotation]->index()] = 1;
-      for (;;) {
-	Attributed *a;
-	if (!isNotation)
-	  a = elementIter.next();
-	else
-	  a = notationIter.next().pointer();
-	if (!a)
-	  break;
-	Ptr<AttributeDefinitionList> adl = a->attributeDef();
-	if (adl.isNull())
-	  a->setAttributeDef(commonAdl[isNotation]);
-	else if (!doneAdl[adl->index()]) {
-	  doneAdl[adl->index()] = 1;
-	  for (size_t j = 0; j < commonAdl[isNotation]->size(); j++) {
-	    unsigned tem;
-	    if (!adl->attributeIndex(commonAdl[isNotation]->def(j)->name(),
-				     tem))
-	      adl->append(commonAdl[isNotation]->def(j)->copy());
-	  }
-	}
-      }
-    }
-  }
-  {
-    ElementType *e = dtd.removeElementType(syntax()
-					   .rniReservedName(Syntax::rIMPLICIT));
-    if (e)
-      dtd.setImplicitElementAttributeDef(e->attributeDef());
-    delete e;
-  }
-  {
-    Ptr<Notation> n
-      = dtd.removeNotation(syntax().rniReservedName(Syntax::rIMPLICIT));
-    if (!n.isNull())
-      dtd.setImplicitNotationAttributeDef(n->attributeDef());
-  }
-}
-
-Boolean Parser::maybeStatusKeyword(const Entity &entity)
-{
-  const InternalEntity *internal = entity.asInternalEntity();
-  if (!internal)
-    return 0;
-  const StringC &text = internal->string();
-  static const Syntax::ReservedName statusKeywords[] = {
-    Syntax::rINCLUDE, Syntax::rIGNORE
-    };
-  for (size_t i = 0; i < SIZEOF(statusKeywords); i++) {
-    const StringC &keyword = instanceSyntax().reservedName(statusKeywords[i]);
-    size_t j = 0;
-    while (j < text.size() && instanceSyntax().isS(text[j]))
-      j++;
-    size_t k = 0;
-    while (j < text.size()
-	   && k < keyword.size()
-	   && ((*instanceSyntax().generalSubstTable())[text[j]]
-	       == keyword[k]))
-      j++, k++;
-    if (k == keyword.size()) {
-      while (j < text.size() && instanceSyntax().isS(text[j]))
-	j++;
-      if (j == text.size())
-	return 1;
-    }
-  }
-  return 0;
-}
-
-Boolean Parser::parseLinktypeDeclStart()
-{
-  if (baseDtd().isNull())
-    message(ParserMessages::lpdBeforeBaseDtd);
-  unsigned declInputLevel = inputLevel();
-  Param parm;
-  
-  if (!parseParam(allowName, declInputLevel, parm))
-    return 0;
-  StringC name;
-  parm.token.swap(name);
-  if (!lookupDtd(name).isNull())
-    message(ParserMessages::duplicateDtdLpd, StringMessageArg(name));
-  else if (!lookupLpd(name).isNull())
-    message(ParserMessages::duplicateLpd, StringMessageArg(name));
-  static AllowedParams
-    allowSimpleName(Param::indicatedReservedName + Syntax::rSIMPLE,
-		    Param::name);
-  if (!parseParam(allowSimpleName, declInputLevel, parm))
-    return 0;
-  Boolean simple;
-  Ptr<Dtd> sourceDtd;
-  if (parm.type == Param::indicatedReservedName + Syntax::rSIMPLE) {
-    simple = 1;
-    sourceDtd = baseDtd();
-    if (sourceDtd.isNull())
-      sourceDtd = new Dtd(StringC(), 1);
-  }
-  else {
-    simple = 0;
-    sourceDtd = lookupDtd(parm.token);
-    if (sourceDtd.isNull()) {
-      message(ParserMessages::noSuchDtd, StringMessageArg(parm.token));
-      sourceDtd = new Dtd(parm.token, 0);
-    }
-  }
-  static AllowedParams
-    allowImpliedName(Param::indicatedReservedName + Syntax::rIMPLIED,
-		     Param::name);
-  if (!parseParam(allowImpliedName, declInputLevel, parm))
-    return 0;
-  Ptr<Dtd> resultDtd;
-  Boolean implied = 0;
-  if (parm.type == Param::indicatedReservedName + Syntax::rIMPLIED) {
-    if (simple) {
-      if (!sd().simpleLink())
-	message(ParserMessages::simpleLinkFeature);
-    }
-    else {
-      implied = 1;
-      if (!sd().implicitLink())
-	message(ParserMessages::implicitLinkFeature);
-    }
-  }
-  else {
-    if (simple)
-      message(ParserMessages::simpleLinkResultNotImplied);
-    else {
-      if (!sd().explicitLink())
-	message(ParserMessages::explicitLinkFeature);
-      resultDtd = lookupDtd(parm.token);
-      if (resultDtd.isNull())
-	message(ParserMessages::noSuchDtd, StringMessageArg(parm.token));
-    }
-  }
-  static AllowedParams
-    allowPublicSystemDsoMdc(Param::reservedName + Syntax::rPUBLIC,
-			    Param::reservedName + Syntax::rSYSTEM,
-			    Param::dso,
-			    Param::mdc);
-  if (!parseParam(allowPublicSystemDsoMdc, declInputLevel, parm))
-    return 0;
-  ConstPtr<Entity> entity;
-  if (parm.type == Param::reservedName + Syntax::rPUBLIC
-      || parm.type == Param::reservedName + Syntax::rSYSTEM) {
-    static AllowedParams allowSystemIdentifierDsoMdc(Param::systemIdentifier,
-						     Param::dso, Param::mdc);
-    ExternalId id;
-    if (!parseExternalId(allowSystemIdentifierDsoMdc, allowDsoMdc,
-			 1, declInputLevel, parm, id))
-      return 0;
-    Ptr<Entity> tem
-      = new ExternalTextEntity(name, Entity::linktype, markupLocation(), id);
-    tem->generateSystemId(*this);
-    entity = tem;
-#if 0
-    eventHandler()
-      .externalEntityDecl(new (eventAllocator())
-			  ExternalEntityDeclEvent(entity, 0));
-#endif
-  }
-  Ptr<Lpd> lpd;
-  if (simple)
-    lpd = new SimpleLpd(name, markupLocation(), sourceDtd);
-  else
-    lpd = new ComplexLpd(name,
-			 implied ? Lpd::implicitLink : Lpd::explicitLink,
-			 markupLocation(),
-			 syntax(),
-			 sourceDtd,
-			 resultDtd);
-  if (!baseDtd().isNull() && shouldActivateLink(name)) {
-    size_t nActive = nActiveLink();
-    if (simple) {
-      size_t nSimple = 0;
-      for (size_t i = 0; i < nActive; i++)
-	if (activeLpd(i).type() == Lpd::simpleLink)
-	  nSimple++;
-      if (nSimple == sd().simpleLink())
-	message(ParserMessages::simpleLinkCount,
-		NumberMessageArg(sd().simpleLink()));
-      lpd->activate();
-    }
-    else {
-      Boolean haveImplicit = 0;
-      Boolean haveExplicit = 0;
-      size_t i;
-      for (i = 0; i < nActive; i++) {
-	if (activeLpd(i).type() == Lpd::implicitLink)
-	  haveImplicit = 1;
-	else if (activeLpd(i).type() == Lpd::explicitLink)
-	  haveExplicit = 1;
-      }
-      const Dtd *sourceDtd = lpd->sourceDtd().pointer();
-      if (implied && haveImplicit)
-	message(ParserMessages::oneImplicitLink);
-      else if (sd().explicitLink() <= 1 && sourceDtd != baseDtd().pointer())
-	message(sd().explicitLink() == 0
-		? ParserMessages::explicitNoRequiresSourceTypeBase
-		: ParserMessages::explicit1RequiresSourceTypeBase,
-		StringMessageArg(lpd->name()));
-      else if (sd().explicitLink() == 1 && haveExplicit && !implied)
-	message(ParserMessages::duplicateExplicitChain);
-      else if (haveExplicit || haveImplicit
-	       || sourceDtd != baseDtd().pointer())
-	message(ParserMessages::sorryLink, StringMessageArg(lpd->name()));
-      else
-	lpd->activate();
-    }
-  }
-  // Discard mdc or dso
-  if (currentMarkup())
-    currentMarkup()->resize(currentMarkup()->size() - 1);
-  eventHandler().startLpd(new (eventAllocator())
-			  StartLpdEvent(lpd->active(),
-					name,
-					entity,
-					parm.type == Param::dso,
-					markupLocation(),
-					currentMarkup()));
-  startLpd(lpd);
-  if (parm.type == Param::mdc) {
-    // unget the mdc
-    currentInput()->ungetToken();
-    if (entity.isNull()) {
-      message(ParserMessages::noLpdSubset, StringMessageArg(name));
-      (void)parseLinktypeDeclEnd();
-      return 1;
-    }
-    // reference the entity
-    Ptr<EntityOrigin> origin
-      = EntityOrigin::make(internalAllocator(), entity, currentLocation());
-    entity->dsReference(*this, origin);
-    if (inputLevel() == 1) {	// reference failed
-      (void)parseLinktypeDeclEnd();
-      return 1;
-    }
-  }
-  else if (!entity.isNull())
-    setDsEntity(entity);
-  setPhase(declSubsetPhase);
-  return 1;
-}
-
-Boolean Parser::parseLinktypeDeclEnd()
-{
-
-  if (defLpd().type() != Lpd::simpleLink) {
-    if (!defComplexLpd().initialLinkSet()->defined())
-      message(ParserMessages::noInitialLinkSet,
-	      StringMessageArg(defLpd().name()));
-    ComplexLpd::ConstLinkSetIter iter = defComplexLpd().linkSetIter();
-    const LinkSet *linkSet;
-    while ((linkSet = iter.next()) != 0)
-      if (!linkSet->defined())
-	message(ParserMessages::undefinedLinkSet, StringMessageArg(linkSet->name()));
-  }
-  ConstPtr<Lpd> tem(defLpdPointer());
-  endLpd();
-  startMarkup(eventsWanted().wantPrologMarkup(), currentLocation());
-  Param parm;
-  Boolean result = parseParam(allowMdc, inputLevel(), parm);
-  eventHandler().endLpd(new (eventAllocator()) EndLpdEvent(tem,
-							   markupLocation(),
-							   currentMarkup()));
-  return result;
-}
-
-Boolean Parser::parseLinkDecl()
-{
-  return parseLinkSet(0);
-}
-
-Boolean Parser::parseIdlinkDecl()
-{
-  return parseLinkSet(1);
-}
-
-// This will only get called if we're defining a complex lpd.
-
-Boolean Parser::parseLinkSet(Boolean idlink)
-{
-  if (defLpd().type() == Lpd::simpleLink) {
-    message(idlink ? ParserMessages::idlinkDeclSimple : ParserMessages::linkDeclSimple);
-    return 0;
-  }
-  if (idlink) {
-    if (defComplexLpd().hadIdLinkSet())
-      message(ParserMessages::duplicateIdLinkSet);
-    else
-      defComplexLpd().setHadIdLinkSet();
-  }
-  unsigned declInputLevel = inputLevel();
-  Param parm;
-  
-  Boolean isExplicit = (defLpd().type() == Lpd::explicitLink);
-  LinkSet *linkSet;
-  if (idlink) {
-    if (!parseParam(allowName, declInputLevel, parm))
-      return 0;
-    linkSet = 0;
-  }
-  else {
-    static AllowedParams
-      allowNameInitial(Param::name,
-		       Param::indicatedReservedName + Syntax::rINITIAL);
-    if (!parseParam(allowNameInitial, declInputLevel, parm))
-      return 0;
-    if (parm.type == Param::name)
-      linkSet = lookupCreateLinkSet(parm.token);
-    else
-      linkSet = defComplexLpd().initialLinkSet();
-    if (linkSet->defined())
-      message(ParserMessages::duplicateLinkSet, StringMessageArg(linkSet->name()));
-    static AllowedParams
-      allowExplicitLinkRule(Param::name,
-			    Param::nameGroup,
-			    Param::indicatedReservedName + Syntax::rIMPLIED);
-    if (!parseParam(isExplicit ? allowExplicitLinkRule : allowNameNameGroup,
-		    declInputLevel, parm))
-      return 0;
-  }
-
-  do {
-    StringC id;
-    if (idlink) {
-      parm.token.swap(id);
-      if (!parseParam(isExplicit ? allowExplicitLinkRuleMdc : allowNameNameGroupMdc,
-		      declInputLevel, parm))
-	return 0;
-    }
-    if (parm.type == Param::indicatedReservedName + Syntax::rIMPLIED) {
-      if (!parseParam(allowName, declInputLevel, parm))
-	return 0;
-      Boolean resultImplied;
-      const ElementType *resultType;
-      AttributeList resultAttributes;
-      if (!parseResultElementSpec(declInputLevel,
-				  parm,
-				  idlink,
-				  resultImplied,
-				  resultType,
-				  resultAttributes))
-	return 0;
-      if (resultType) {
-	const AttributeList *dummy;
-	if (linkSet->impliedResultAttributes(resultType, dummy))
-	  message(ParserMessages::duplicateImpliedResult,
-		  StringMessageArg(resultType->name()));
-	else
-	  linkSet->addImplied(resultType, resultAttributes);
-      }
-    }
-    else {
-      SourceLinkRule *linkRule = 0;
-      IdLinkRule idLinkRule;
-      Ptr<SourceLinkRuleResource> linkRuleResource;
-      if (idlink)
-	linkRule = &idLinkRule;
-      else {
-	linkRuleResource = new SourceLinkRuleResource;
-	linkRule = linkRuleResource.pointer();
-      }
-      Vector<const ElementType *> assocElementTypes;
-      if (parm.type == Param::name) {
-	assocElementTypes.resize(1);
-	assocElementTypes[0] = lookupCreateElement(parm.token);
-      }
-      else {
-	assocElementTypes.resize(parm.nameTokenVector.size());
-	for (size_t i = 0; i < assocElementTypes.size(); i++)
-	  assocElementTypes[i]
-	    = lookupCreateElement(parm.nameTokenVector[i].name);
-      }
-      static AllowedParams
-	allow2i(Param::indicatedReservedName + Syntax::rUSELINK,
-		Param::indicatedReservedName + Syntax::rPOSTLINK,
-		Param::dso,
-		Param::mdc,
-		Param::name,
-		Param::nameGroup);
-      static AllowedParams
-	allow2id(Param::indicatedReservedName + Syntax::rUSELINK,
-		 Param::indicatedReservedName + Syntax::rPOSTLINK,
-		 Param::dso,
-		 Param::mdc,
-		 Param::name);
-      static AllowedParams
-	allow2e(Param::indicatedReservedName + Syntax::rUSELINK,
-		Param::indicatedReservedName + Syntax::rPOSTLINK,
-		Param::dso,
-		Param::name,
-		Param::indicatedReservedName + Syntax::rIMPLIED);
-
-      if (!parseParam(isExplicit
-		      ? allow2e
-		      : (idlink ? allow2id : allow2i), declInputLevel, parm))
-	return 0;
-      if (parm.type == Param::indicatedReservedName + Syntax::rUSELINK) {
-	static AllowedParams
-	  allowLinkSetEmpty(Param::name,
-			    Param::indicatedReservedName + Syntax::rINITIAL,
-			    Param::indicatedReservedName + Syntax::rEMPTY);
-	if (!parseParam(allowLinkSetEmpty, declInputLevel, parm))
-	  return 0;
-	const LinkSet *uselink;
-	if (parm.type == Param::name)
-	  uselink = lookupCreateLinkSet(parm.token);
-	else if (parm.type == Param::indicatedReservedName + Syntax::rINITIAL)
-	  uselink = defComplexLpd().initialLinkSet();
-	else
-	  uselink = defComplexLpd().emptyLinkSet();
-	linkRule->setUselink(uselink);
-	static AllowedParams
-	  allow3i(Param::indicatedReservedName + Syntax::rPOSTLINK,
-		  Param::dso,
-		  Param::mdc,
-		  Param::name,
-		  Param::nameGroup);
-	static AllowedParams
-	  allow3id(Param::indicatedReservedName + Syntax::rPOSTLINK,
-		   Param::dso,
-		   Param::mdc,
-		   Param::name);
-	static AllowedParams
-	  allow3e(Param::indicatedReservedName + Syntax::rPOSTLINK,
-		  Param::dso,
-		  Param::name,
-		  Param::indicatedReservedName + Syntax::rIMPLIED);
-	
-	if (!parseParam(isExplicit
-			? allow3e
-			: (idlink ? allow3id : allow3i),
-			declInputLevel, parm))
-	  return 0;
-      }
-      if (parm.type == Param::indicatedReservedName + Syntax::rPOSTLINK) {
-	if (!parseParam(allowLinkSetSpec, declInputLevel, parm))
-	  return 0;
-	const LinkSet *postlink;
-	if (parm.type == Param::indicatedReservedName + Syntax::rRESTORE)
-	  linkRule->setPostlinkRestore();
-	else {
-	  if (parm.type == Param::name)
-	    postlink = lookupCreateLinkSet(parm.token);
-	  else if (parm.type
-		   == Param::indicatedReservedName + Syntax::rINITIAL)
-	    postlink = defComplexLpd().initialLinkSet();
-	  else
-	    postlink = defComplexLpd().emptyLinkSet();
-	  linkRule->setPostlink(postlink);
-	}
-	static AllowedParams
-	  allow4i(Param::dso,
-		  Param::mdc,
-		  Param::name,
-		  Param::nameGroup);
-	static AllowedParams
-	  allow4id(Param::dso,
-		   Param::mdc,
-		   Param::name);
-	static AllowedParams
-	  allow4e(Param::dso,
-		  Param::name,
-		  Param::indicatedReservedName + Syntax::rIMPLIED);
-	if (!parseParam(isExplicit
-			? allow4e
-			: (idlink ? allow4id : allow4i),
-			declInputLevel, parm))
-	  return 0;
-      }
-      AttributeList attributes;
-      ConstPtr<AttributeDefinitionList> attDef;
-      for (size_t i = 0; i < assocElementTypes.size(); i++) {
-	const ElementType *e = assocElementTypes[i];
-	if (e) {
-	  if (i == 0)
-	    attDef = defComplexLpd().attributeDef(e);
-	  else if (attDef != defComplexLpd().attributeDef(e))
-	    message(ParserMessages::assocElementDifferentAtts);
-	  // FIXME recover from this
-	}
-      }
-      attributes.init(attDef);
-      
-      if (parm.type == Param::dso) {
-	Boolean netEnabling;
-	Ptr<AttributeDefinitionList> newAttDef;
-	if (!parseAttributeSpec(1, attributes, netEnabling, newAttDef))
-	  return 0;
-	if (!newAttDef.isNull()) {
-	  newAttDef->setIndex(defComplexLpd().allocAttributeDefinitionListIndex());
-	  for (size_t i = 0; i < assocElementTypes.size(); i++) {
-	    const ElementType *e = assocElementTypes[i];
-	    if (e && defComplexLpd().attributeDef(e) == attDef)
-	      defComplexLpd().setAttributeDef(e, newAttDef);
-	  }
-	}
-	static AllowedParams
-	  allow5e(Param::name,
-		  Param::indicatedReservedName + Syntax::rIMPLIED);
-	if (!parseParam(isExplicit
-			? allow5e
-			: (idlink ? allowNameMdc : allowNameNameGroupMdc),
-			declInputLevel, parm))
-	  return 0;
-      }
-      else
-	attributes.finish(*this);
-      linkRule->setLinkAttributes(attributes);
-      if (isExplicit) {
-	Boolean resultImplied;
-	const ElementType *resultType;
-	AttributeList resultAttributes;
-	if (!parseResultElementSpec(declInputLevel,
-				    parm,
-				    idlink,
-				    resultImplied,
-				    resultType,
-				    resultAttributes))
-	  return 0;
-	if (!resultImplied)
-	  linkRule->setResult(resultType, resultAttributes);
-      }
-      // Install the link rule.
-      if (idlink) {
-	idLinkRule.setAssocElementTypes(assocElementTypes);
-	addIdLinkRule(id, idLinkRule);
-      }
-      else {
-	if (!linkSet->defined()) {
-	  for (size_t i = 0; i < assocElementTypes.size(); i++)
-	    if (assocElementTypes[i])
-	      addLinkRule(linkSet, assocElementTypes[i], linkRuleResource);
-	}
-      }
-    }
-  } while (parm.type != Param::mdc);
-  if (linkSet)
-    linkSet->setDefined();
-  if (currentMarkup()) {
-    if (idlink)
-      eventHandler().idLinkDecl(new (eventAllocator())
-				IdLinkDeclEvent(defComplexLpdPointer(),
-						markupLocation(),
-						currentMarkup()));
-    else
-      eventHandler().linkDecl(new (eventAllocator())
-			      LinkDeclEvent(linkSet,
-					    defComplexLpdPointer(),
-					    markupLocation(),
-					    currentMarkup()));
-  }
-  return 1;
-}
-
-void Parser::addIdLinkRule(const StringC &id,
-			   IdLinkRule &rule)
-{
-  IdLinkRuleGroup *group = defComplexLpd().lookupCreateIdLink(id);
-  size_t nRules = group->nLinkRules();
-  if ((nRules == 1 && group->linkRule(0).attributes().nSpec() == 0)
-      || nRules >= 1 && rule.attributes().nSpec() == 0)
-    message(ParserMessages::multipleIdLinkRuleAttribute,
-	    StringMessageArg(id));
-  group->addLinkRule(rule);
-}
-
-void Parser::addLinkRule(LinkSet *linkSet,
-			 const ElementType *sourceElement,
-			 const ConstPtr<SourceLinkRuleResource> &linkRule)
-{
-  size_t nRules = linkSet->nLinkRules(sourceElement);
-  if ((nRules == 1
-       && linkSet->linkRule(sourceElement, 0).attributes().nSpec() == 0)
-      || nRules >= 1 && linkRule->attributes().nSpec() == 0)
-    message(ParserMessages::multipleLinkRuleAttribute,
-	    StringMessageArg(sourceElement->name()));
-  linkSet->addLinkRule(sourceElement, linkRule);
-}
-
-class ResultAttributeSpecModeSetter {
-public:
-  ResultAttributeSpecModeSetter(ParserState *state) : state_(state) {
-    state_->setResultAttributeSpecMode();
-  }
-  ~ResultAttributeSpecModeSetter() { clear(); }
-  void clear() {
-    if (state_) {
-      state_->clearResultAttributeSpecMode();
-      state_ = 0;
-    }
-  }
-private:
-  ParserState *state_;
-};
-
-Boolean Parser::parseResultElementSpec(unsigned declInputLevel,
-				       Param &parm,
-				       Boolean idlink,
-				       Boolean &implied,
-				       const ElementType *&resultType,
-				       AttributeList &attributes)
-{
-  if (parm.type == Param::indicatedReservedName + Syntax::rIMPLIED) {
-    if (!parseParam(idlink ? allowNameMdc : allowExplicitLinkRuleMdc,
-		    declInputLevel, parm))
-      return 0;
-    implied = 1;
-  }
-  else {
-    implied = 0;
-    ElementType *e = lookupResultElementType(parm.token);
-    resultType = e;
-    static AllowedParams
-      allow(Param::dso,
-	    Param::mdc,
-	    Param::name,
-	    Param::nameGroup,
-	    Param::indicatedReservedName + Syntax::rIMPLIED);
-    static AllowedParams
-      allowNameDsoMdc(Param::dso,
-		      Param::mdc,
-		      Param::name);
-    if (!parseParam(idlink ? allowNameDsoMdc : allow,
-		    declInputLevel, parm))
-      return 0;
-    ConstPtr<AttributeDefinitionList> attDef;
-    if (e)
-      attDef = e->attributeDef();
-    attributes.init(attDef);
-    if (parm.type == Param::dso) {
-      ResultAttributeSpecModeSetter modeSetter(this);
-      Boolean netEnabling;
-      Ptr<AttributeDefinitionList> newAttDef;
-      if (!parseAttributeSpec(1, attributes, netEnabling, newAttDef))
-	return 0;
-      if (!newAttDef.isNull()) {
-	Ptr<Dtd> r(defComplexLpd().resultDtd());
-	if (!r.isNull()) {
-	  newAttDef->setIndex(r->allocAttributeDefinitionListIndex());
-	  if (e)
-	    e->setAttributeDef(newAttDef);
-	}
-      }
-      modeSetter.clear();
-      if (attributes.nSpec() == 0)
-	message(ParserMessages::emptyResultAttributeSpec);
-      if (!parseParam(idlink ? allowNameMdc : allowExplicitLinkRuleMdc,
-		      declInputLevel, parm))
-	return 0;
-    }
-    else {
-      // For entity and notation attributes.
-      ResultAttributeSpecModeSetter modeSetter(this);
-      attributes.finish(*this);
-      modeSetter.clear();
-    }
-  }
-  return 1;
-}
-
-ElementType *Parser::lookupResultElementType(const StringC &name)
-{
-  Dtd *dtd = defComplexLpd().resultDtd().pointer();
-  if (!dtd)
-    return 0;
-  ElementType *e = dtd->lookupElementType(name);
-  if (!e)
-    message(ParserMessages::noSuchResultElement, StringMessageArg(name));
-  return e;
-}
-
-Boolean Parser::parseUselinkDecl()
-{
-  unsigned declInputLevel = inputLevel();
-  Param parm;
-  if (!parseParam(allowLinkSetSpec, declInputLevel, parm))
-    return 0;
-  Param parm2;
-  if (!parseParam(allowName, declInputLevel, parm2))
-    return 0;
-  StringC linkType;
-  parm2.token.swap(linkType);
-  if (!parseParam(allowMdc, declInputLevel, parm2))
-    return 0;
-  ConstPtr<Lpd> lpd = lookupLpd(linkType);
-  if (lpd.isNull()) 
-    message(ParserMessages::uselinkBadLinkType, StringMessageArg(linkType));
-  else if (lpd->type() == Lpd::simpleLink)
-    message(ParserMessages::uselinkSimpleLpd, StringMessageArg(linkType));
-  else {
-    const ComplexLpd *complexLpd = (const ComplexLpd *)lpd.pointer();
-    const LinkSet *linkSet;
-    Boolean restore = 0;
-    if (parm.type == Param::name) {
-      linkSet = complexLpd->lookupLinkSet(parm.token);
-      if (!linkSet) {
-	message(ParserMessages::uselinkBadLinkSet,
-		StringMessageArg(complexLpd->name()),
-		StringMessageArg(parm.token));
-	return 1;
-      }
-    }
-    else if (parm.type == Param::indicatedReservedName + Syntax::rINITIAL)
-      linkSet = complexLpd->initialLinkSet();
-    else if (parm.type == Param::indicatedReservedName + Syntax::rEMPTY)
-      linkSet = complexLpd->emptyLinkSet();
-    else {
-      linkSet = 0;
-      restore = 1;
-    }
-    if (lpd->active())
-      eventHandler().uselink(new (eventAllocator())
-			     UselinkEvent(lpd, linkSet,
-					  restore, markupLocation(),
-					  currentMarkup()));
-    else
-      eventHandler().ignoredMarkup(new (eventAllocator())
-				   IgnoredMarkupEvent(markupLocation(),
-						      currentMarkup()));
-  }
-  return 1;
-}
-
-LinkSet *Parser::lookupCreateLinkSet(const StringC &name)
-{
-  LinkSet *linkSet = defComplexLpd().lookupLinkSet(name);
-  if (!linkSet) {
-    linkSet = new LinkSet(name, defComplexLpd().sourceDtd().pointer());
-    defComplexLpd().insertLinkSet(linkSet);
-  }
-  return linkSet;
-}
-
-Boolean Parser::parseMarkedSectionDeclStart()
-{
-  if (markedSectionLevel() == syntax().taglvl())
-    message(ParserMessages::markedSectionLevel,
-	    NumberMessageArg(syntax().taglvl()));
-  if (!inInstance()
-      && options().warnInternalSubsetMarkedSection
-      && inputLevel() == 1)
-    message(ParserMessages::internalSubsetMarkedSection);
-  if (markedSectionSpecialLevel() > 0) {
-    startMarkedSection(markupLocation());
-    if (inInstance()
-	? eventsWanted().wantMarkedSections()
-	: eventsWanted().wantPrologMarkup())
-      eventHandler().ignoredChars(new (eventAllocator())
-				  IgnoredCharsEvent(currentInput()->currentTokenStart(),
-						    currentInput()->currentTokenLength(),
-						    currentLocation(),
-						    0));
-				  
-    return 1;
-  }
-  Boolean discardMarkup;
-  if (startMarkup(inInstance()
-		  ? eventsWanted().wantMarkedSections()
-		  : eventsWanted().wantPrologMarkup(),
-		  currentLocation())) {
-    currentMarkup()->addDelim(Syntax::dMDO);
-    currentMarkup()->addDelim(Syntax::dDSO);
-    discardMarkup = 0;
-  }
-  else if (options().warnInstanceStatusKeywordSpecS && inInstance()) {
-    startMarkup(1, currentLocation());
-    discardMarkup = 1;
-  }
-  unsigned declInputLevel = inputLevel();
-  static AllowedParams allowStatusDso(Param::dso,
-				      Param::reservedName + Syntax::rCDATA,
-				      Param::reservedName + Syntax::rRCDATA,
-				      Param::reservedName + Syntax::rIGNORE,
-				      Param::reservedName + Syntax::rINCLUDE,
-				      Param::reservedName + Syntax::rTEMP);
-  Param parm;
-  MarkedSectionEvent::Status status = MarkedSectionEvent::include;
-  if (!parseParam(allowStatusDso, declInputLevel, parm))
-    return 0;
-  if (options().warnMissingStatusKeyword && parm.type == Param::dso)
-    message(ParserMessages::missingStatusKeyword);
-  while (parm.type != Param::dso) {
-    switch (parm.type) {
-    case Param::reservedName + Syntax::rCDATA:
-      if (status < MarkedSectionEvent::cdata)
-	status = MarkedSectionEvent::cdata;
-      break;
-    case Param::reservedName + Syntax::rRCDATA:
-      if (status < MarkedSectionEvent::rcdata)
-	status = MarkedSectionEvent::rcdata;
-      if (options().warnRcdataMarkedSection)
-	message(ParserMessages::rcdataMarkedSection);
-      break;
-    case Param::reservedName + Syntax::rIGNORE:
-      if (status < MarkedSectionEvent::ignore)
-	status = MarkedSectionEvent::ignore;
-      if (inInstance() && options().warnInstanceIgnoreMarkedSection)
-	message(ParserMessages::instanceIgnoreMarkedSection);
-      break;
-    case Param::reservedName + Syntax::rINCLUDE:
-      if (inInstance() && options().warnInstanceIncludeMarkedSection)
-	message(ParserMessages::instanceIncludeMarkedSection);
-      break;
-    case Param::reservedName + Syntax::rTEMP:
-      if (options().warnTempMarkedSection)
-	message(ParserMessages::tempMarkedSection);
-      break;
-    }
-    if (!parseParam(allowStatusDso, declInputLevel, parm))
-      return 0;
-    if (options().warnMultipleStatusKeyword
-        && parm.type != Param::dso)
-      message(ParserMessages::multipleStatusKeyword);
-  }
-  // FIXME this disallows
-  // <!entity % e "include [ stuff ">
-  // ...
-  // <![ %e; ]]>
-  // which I think is legal.
-
-  if (inputLevel() > declInputLevel)
-    message(ParserMessages::parameterEntityNotEnded);
-  switch (status) {
-  case MarkedSectionEvent::include:
-    startMarkedSection(markupLocation());
-    break;
-  case MarkedSectionEvent::cdata:
-    startSpecialMarkedSection(cmsMode, markupLocation());
-    break;
-  case MarkedSectionEvent::rcdata:
-    startSpecialMarkedSection(rcmsMode, markupLocation());
-    break;
-  case MarkedSectionEvent::ignore:
-    startSpecialMarkedSection(imsMode, markupLocation());
-    break;
-  }
-  if (currentMarkup()) {
-    if (options().warnInstanceStatusKeywordSpecS && inInstance()) {
-      Location loc(markupLocation());
-      for (MarkupIter iter(*currentMarkup()); iter.valid(); iter.advance(loc, syntaxPointer())) {
-	if (iter.type() == Markup::s) {
-	  setNextLocation(loc);
-	  message(ParserMessages::instanceStatusKeywordSpecS);
-	}
-      }
-      if (discardMarkup)
-	startMarkup(0, markupLocation());
-    }
-    eventHandler().markedSectionStart(new (eventAllocator())
-				      MarkedSectionStartEvent(status,
-							      markupLocation(),
-							      currentMarkup()));
-  }
-  return 1;
-}
-
-void Parser::handleMarkedSectionEnd()
-{
-  if (markedSectionLevel() == 0)
-    message(ParserMessages::markedSectionEnd);
-  else {
-    if (inInstance()
-	? eventsWanted().wantMarkedSections()
-	: eventsWanted().wantPrologMarkup()) {
-      if (markedSectionSpecialLevel() > 1)
-	eventHandler().ignoredChars(new (eventAllocator())
-				    IgnoredCharsEvent(currentInput()->currentTokenStart(),
-						      currentInput()->currentTokenLength(),
-						      currentLocation(),
-						      0));
-      else {
-	MarkedSectionEvent::Status status;
-	switch (currentMode()) {
-	case cmsMode:
-	  status = MarkedSectionEvent::cdata;
-	  break;
-	case rcmsMode:
-	  status = MarkedSectionEvent::rcdata;
-	  break;
-	case imsMode:
-	  status = MarkedSectionEvent::ignore;
-	  break;
-	default:
-	  status = MarkedSectionEvent::include;
-	  break;
-	}
-	startMarkup(1, currentLocation());
-	currentMarkup()->addDelim(Syntax::dMSC);
-	currentMarkup()->addDelim(Syntax::dMDC);
-	eventHandler().markedSectionEnd(new (eventAllocator())
-					MarkedSectionEndEvent(status,
-							      markupLocation(),
-							      currentMarkup()));
-      }
-    }
-    endMarkedSection();
-  }
-}
-
-void Parser::emptyCommentDecl()
-{
-  if (startMarkup(eventsWanted().wantCommentDecls(), currentLocation())) {
-    currentMarkup()->addDelim(Syntax::dMDO);
-    currentMarkup()->addDelim(Syntax::dMDC);
-    eventHandler().commentDecl(new (eventAllocator())
-			       CommentDeclEvent(markupLocation(),
-						currentMarkup()));
-  }
-  if (options().warnEmptyCommentDecl)
-    message(ParserMessages::emptyCommentDecl);
-}
-
-Boolean Parser::parseCommentDecl()
-{
-  if (startMarkup(inInstance()
-		  ? eventsWanted().wantCommentDecls()
-		  : eventsWanted().wantPrologMarkup(),
-		  currentLocation()))
-    currentMarkup()->addDelim(Syntax::dMDO);
-  if (!parseComment(comMode))
-    return 0;
-  for (;;) {
-    Token token = getToken(mdMode);
-    switch (token) {
-    case tokenS:
-      if (currentMarkup())
-	currentMarkup()->addS(currentChar());
-      if (options().warnCommentDeclS)
-	message(ParserMessages::commentDeclS);
-      break;
-    case tokenCom:
-      if (!parseComment(comMode))
-	return 0;
-      if (options().warnCommentDeclMultiple)
-	message(ParserMessages::commentDeclMultiple);
-      break;
-    case tokenMdc:
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dMDC);
-      goto done;
-    case tokenEe:
-      message(ParserMessages::declarationLevel);
-      return 0;
-    case tokenUnrecognized:
-      if (reportNonSgmlCharacter())
-	break;
-      // braces to work round Sun C++ 4.0 bug
-      {
-	message(ParserMessages::commentDeclarationCharacter,
-		StringMessageArg(currentToken()),
-		markupLocation());
-      }
-      return 0;
-    default:
-      // braces to work round Sun C++ 4.0 bug
-      {
-	message(ParserMessages::commentDeclInvalidToken,
-		TokenMessageArg(token, mdMode, syntaxPointer(), sdPointer()),
-		markupLocation());
-      }
-      return 0;
-    }
-  }
- done:
-  if (currentMarkup())
-    eventHandler().commentDecl(new (eventAllocator())
-			       CommentDeclEvent(markupLocation(),
-						currentMarkup()));
-  return 1;
-}
-
-Boolean Parser::parseAfdrDecl()
-{
-  unsigned declInputLevel = inputLevel();
-  static AllowedParams allowMinimumLiteral(Param::minimumLiteral);
-  Param parm;
-  setHadAfdrDecl();
-  if (!parseParam(allowMinimumLiteral, declInputLevel, parm))
-    return 0;
-  if (parm.literalText.string() != sd().execToInternal("ISO/IEC 10744:1997"))
-    message(ParserMessages::afdrVersion,
-	    StringMessageArg(parm.literalText.string()));
-  if (!parseParam(allowMdc, declInputLevel, parm))
-    return 0;
-  eventHandler().ignoredMarkup(new (eventAllocator())
-			       IgnoredMarkupEvent(markupLocation(),
-						  currentMarkup()));
-  return 1;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/parseInstance.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1414 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "Parser.h"
-#include "ParserMessages.h"
-#include "MessageArg.h"
-#include "TokenMessageArg.h"
-#include "StringVectorMessageArg.h"
-#include "token.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-void Parser::doInstanceStart()
-{
-  if (cancelled()) {
-    allDone();
-    return;
-  }
-  // FIXME check here that we have a valid dtd
-  compileInstanceModes();
-  setPhase(contentPhase);
-  Token token = getToken(currentMode());
-  switch (token) {
-  case tokenEe:
-  case tokenStagoNameStart:
-  case tokenStagoTagc:
-  case tokenStagoGrpo:
-  case tokenEtagoNameStart:
-  case tokenEtagoTagc:
-  case tokenEtagoGrpo:
-    break;
-  default:
-    if (sd().omittag()) {
-      unsigned startImpliedCount = 0;
-      unsigned attributeListIndex = 0;
-      IList<Undo> undoList;
-      IList<Event> eventList;
-      if (!tryImplyTag(currentLocation(),
-		       startImpliedCount,
-		       attributeListIndex,
-		       undoList,
-		       eventList))
-	CANNOT_HAPPEN();
-      queueElementEvents(eventList);
-    }
-    else
-      message(ParserMessages::instanceStartOmittag);
-  }
-  currentInput()->ungetToken();
-}
-
-void Parser::endInstance()
-{
-  // Do checking before popping entity stack so that there's a
-  // current location for error messages.
-  endAllElements();
-  while (markedSectionLevel() > 0) {
-    message(ParserMessages::unclosedMarkedSection,
-	    currentMarkedSectionStartLocation());
-    endMarkedSection();
-  }
-  checkIdrefs();
-  popInputStack();
-  allDone();
-}
-
-void Parser::checkIdrefs()
-{
-  IdTableIter iter(idTableIter());
-  Id *id;
-  while ((id = iter.next()) != 0) {
-    for (size_t i = 0; i < id->pendingRefs().size(); i++) {
-      Messenger::setNextLocation(id->pendingRefs()[i]);
-      message(ParserMessages::missingId, StringMessageArg(id->name()));
-    }
-  }
-}
-
-void Parser::doContent()
-{
-  do {
-    if (cancelled()) {
-      allDone();
-      return;
-    }
-    Token token = getToken(currentMode());
-    switch (token) {
-    case tokenEe:
-      if (inputLevel() == 1) {
-	endInstance();
-	return;
-      }
-      if (inputLevel() == specialParseInputLevel()) {
-	// FIXME have separate messages for each type of special parse
-	// perhaps force end of marked section or element
-	message(ParserMessages::specialParseEntityEnd);
-      }
-      if (eventsWanted().wantInstanceMarkup())
-	eventHandler().entityEnd(new (eventAllocator())
-				 EntityEndEvent(currentLocation()));
-      if (afterDocumentElement())
-	message(ParserMessages::afterDocumentElementEntityEnd);
-      if (sd().integrallyStored()
-	  && tagLevel()
-	  && currentElement().index() != currentInputElementIndex())
-	message(ParserMessages::contentAsyncEntityRef);
-      popInputStack();
-      break;
-    case tokenCroDigit:
-    case tokenHcroHexDigit:
-      {
-	if (afterDocumentElement())
-	  message(ParserMessages::characterReferenceAfterDocumentElement);
-	Char ch;
-	Location loc;
-	if (parseNumericCharRef(token == tokenHcroHexDigit, ch, loc)) {
-	  acceptPcdata(loc);
-	  noteData();
-	  Boolean isSgmlChar;
-	  if (!translateNumericCharRef(ch, isSgmlChar))
-	    break;
-	  if (!isSgmlChar) {
-	    eventHandler().nonSgmlChar(new (eventAllocator())
-	                               NonSgmlCharEvent(ch, loc));
-	    break;
-	  }
-	  eventHandler().data(new (eventAllocator())
-			      ImmediateDataEvent(Event::characterData,
-						 &ch, 1, loc, 1));
-	  break;
-	}
-      }
-      break;
-    case tokenCroNameStart:
-      if (afterDocumentElement())
-	message(ParserMessages::characterReferenceAfterDocumentElement);
-      parseNamedCharRef();
-      break;
-    case tokenEroGrpo:
-    case tokenEroNameStart:
-      {
-	if (afterDocumentElement())
-	  message(ParserMessages::entityReferenceAfterDocumentElement);
-	ConstPtr<Entity> entity;
-	Ptr<EntityOrigin> origin;
-	if (parseEntityReference(0, token == tokenEroGrpo, entity, origin)) {
-	  if (!entity.isNull()) {
-	    if (entity->isCharacterData())
-	      acceptPcdata(Location(origin.pointer(), 0));
-	    if (inputLevel() == specialParseInputLevel())
-	      entity->rcdataReference(*this, origin);
-	    else
-	      entity->contentReference(*this, origin);
-	  }
-	}
-      }
-      break;
-    case tokenEtagoNameStart:
-      acceptEndTag(parseEndTag());
-      break;
-    case tokenEtagoTagc:
-      parseEmptyEndTag();
-      break;
-    case tokenEtagoGrpo:
-      parseGroupEndTag();
-      break;
-    case tokenMdoNameStart:
-      if (startMarkup(eventsWanted().wantInstanceMarkup(), currentLocation()))
-	currentMarkup()->addDelim(Syntax::dMDO);
-      Syntax::ReservedName name;
-      Boolean result;
-      unsigned startLevel;
-      startLevel = inputLevel();
-      if (parseDeclarationName(&name)) {
-	switch (name) {
-	case Syntax::rUSEMAP:
-	  if (afterDocumentElement())
-	    message(ParserMessages::declarationAfterDocumentElement,
-		    StringMessageArg(syntax().reservedName(name)));
-	  result = parseUsemapDecl();
-	  break;
-	case Syntax::rUSELINK:
-	  if (afterDocumentElement())
-	    message(ParserMessages::declarationAfterDocumentElement,
-		    StringMessageArg(syntax().reservedName(name)));
-	  result = parseUselinkDecl();
-	  break;
-	case Syntax::rDOCTYPE:
-	case Syntax::rLINKTYPE:
-	case Syntax::rELEMENT:
-	case Syntax::rATTLIST:
-	case Syntax::rENTITY:
-	case Syntax::rNOTATION:
-	case Syntax::rSHORTREF:
-	case Syntax::rLINK:
-	case Syntax::rIDLINK:
-	  message(ParserMessages::instanceDeclaration,
-		  StringMessageArg(syntax().reservedName(name)));
-	  result = 0;
-	  break;
-	default:
-	  message(ParserMessages::noSuchDeclarationType,
-		  StringMessageArg(syntax().reservedName(name)));
-	  result = 0;
-	  break;
-	}
-      }
-      else
-	result = 0;
-      if (!result)
-	skipDeclaration(startLevel);
-      noteMarkup();
-      break;
-    case tokenMdoMdc:
-      // empty comment
-      emptyCommentDecl();
-      noteMarkup();
-      break;
-    case tokenMdoCom:
-      parseCommentDecl();
-      noteMarkup();
-      break;
-    case tokenMdoDso:
-      if (afterDocumentElement())
-	message(ParserMessages::markedSectionAfterDocumentElement);
-      parseMarkedSectionDeclStart();
-      noteMarkup();
-      break;
-    case tokenMscMdc:
-      handleMarkedSectionEnd();
-      noteMarkup();
-      break;
-    case tokenNet:
-      parseNullEndTag();
-      break;
-    case tokenPio:
-      parseProcessingInstruction();
-      break;
-    case tokenStagoNameStart:
-      parseStartTag();
-      break;
-    case tokenStagoTagc:
-      parseEmptyStartTag();
-      break;
-    case tokenStagoGrpo:
-      parseGroupStartTag();
-      break;
-    case tokenRe:
-      acceptPcdata(currentLocation());
-      queueRe(currentLocation());
-      break;
-    case tokenRs:
-      acceptPcdata(currentLocation());
-      noteRs();
-      if (eventsWanted().wantInstanceMarkup())
-	eventHandler().ignoredRs(new (eventAllocator())
-				 IgnoredRsEvent(currentChar(),
-						currentLocation()));
-      break;
-    case tokenS:
-      extendContentS();
-      if (eventsWanted().wantInstanceMarkup())
-	eventHandler().sSep(new (eventAllocator())
-			    SSepEvent(currentInput()->currentTokenStart(),
-				      currentInput()->currentTokenLength(),
-				      currentLocation(),
-				      0));
-      break;
-    case tokenIgnoredChar:
-      extendData();
-      if (eventsWanted().wantMarkedSections())
-	eventHandler().ignoredChars(new (eventAllocator())
-				    IgnoredCharsEvent(currentInput()->currentTokenStart(),
-						      currentInput()->currentTokenLength(),
-						      currentLocation(),
-						      0));
-      break;
-    case tokenUnrecognized:
-      reportNonSgmlCharacter();
-      parsePcdata();
-      break;
-    case tokenCharDelim:
-      message(ParserMessages::dataCharDelim,
-	      StringMessageArg(StringC(currentInput()->currentTokenStart(),
-			  	       currentInput()->currentTokenLength())));
-      // fall through
-    case tokenChar:
-      parsePcdata();
-      break;
-    default:
-      ASSERT(token >= tokenFirstShortref);
-      handleShortref(token - tokenFirstShortref);
-      break;
-    }
-  } while (eventQueueEmpty());
-}
-
-void Parser::skipDeclaration(unsigned startLevel)
-{
-  const unsigned skipMax = 250;
-  unsigned skipCount = 0;
-  for (;;) {
-    Token token = getToken(mdMode);
-    if (inputLevel() == startLevel)
-      skipCount++;
-    switch (token) {
-    case tokenUnrecognized:
-      (void)getChar();
-      break;
-    case tokenEe:
-      if (inputLevel() <= startLevel)
-	return;
-      popInputStack();
-      return;
-    case tokenMdc:
-      if (inputLevel() == startLevel)
-	return;
-      break;
-    case tokenS:
-      if (inputLevel() == startLevel && skipCount >= skipMax
-	  && currentChar() == syntax().standardFunction(Syntax::fRE))
-	return;
-      break;
-    default:
-      break;
-    }
-  }
-}
-
-void Parser::handleShortref(int index)
-{
-  const ConstPtr<Entity> &entity
-    = currentElement().map()->entity(index);
-  if (!entity.isNull()) {
-    Owner<Markup> markupPtr;
-    if (eventsWanted().wantInstanceMarkup()) {
-      markupPtr = new Markup;
-      markupPtr->addShortref(currentInput());
-    }
-    Ptr<EntityOrigin> origin
-      = EntityOrigin::make(internalAllocator(),
-			   entity,
-			   currentLocation(),
-			   currentInput()->currentTokenLength(),
-			   markupPtr);
-    entity->contentReference(*this, origin);
-    return;
-  }
-  InputSource *in = currentInput();
-  size_t length = in->currentTokenLength();
-  const Char *s = in->currentTokenStart();
-  size_t i = 0;
-  if (currentMode() == econMode || currentMode() == econnetMode) {
-    // FIXME do this in advance (what about B sequence?)
-    for (i = 0; i < length && syntax().isS(s[i]); i++)
-      ;
-    if (i > 0 && eventsWanted().wantInstanceMarkup())
-      eventHandler().sSep(new (eventAllocator())
-			  SSepEvent(s, i, currentLocation(), 0));
-  }
-  if (i < length) {
-    Location location(currentLocation());
-    location += i;
-    s += i;
-    length -= i;
-    acceptPcdata(location);
-    if (sd().keeprsre()) {
-      noteData();
-      eventHandler().data(new (eventAllocator())
-  			  ImmediateDataEvent(Event::characterData, s, length,
-					     location, 0));
-      return;
-    }
-     // FIXME speed this up
-    for (; length > 0; location += 1, length--, s++) {
-      if (*s == syntax().standardFunction(Syntax::fRS)) {
-	noteRs();
-	if (eventsWanted().wantInstanceMarkup())
-	  eventHandler().ignoredRs(new (eventAllocator())
-				   IgnoredRsEvent(*s, location));
-      }
-      else if (*s == syntax().standardFunction(Syntax::fRE))
-	queueRe(location);
-      else {
-	noteData();
-	eventHandler().data(new (eventAllocator())
-			    ImmediateDataEvent(Event::characterData, s, 1,
-					       location, 0));
-      }
-    }
-  }
-}
-
-void Parser::parsePcdata()
-{
-  extendData();
-  acceptPcdata(currentLocation());
-  noteData();
-  eventHandler().data(new (eventAllocator())
-		      ImmediateDataEvent(Event::characterData,
-					 currentInput()->currentTokenStart(),
-					 currentInput()->currentTokenLength(),
-					 currentLocation(),
-					 0));
-}
-
-void Parser::parseStartTag()
-{
-  InputSource *in = currentInput();
-  Markup *markup = startMarkup(eventsWanted().wantInstanceMarkup(),
-			       in->currentLocation());
-  in->discardInitial();
-  extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-  if (markup) {
-    markup->addDelim(Syntax::dSTAGO);
-    markup->addName(in);
-  }
-  StringC &name = nameBuffer();
-  getCurrentToken(syntax().generalSubstTable(), name);
-  ElementType *e = currentDtdNonConst().lookupElementType(name);
-  if (sd().rank()) {
-    if (!e)
-      e = completeRankStem(name);
-    else if (e->isRankedElement())
-      handleRankedElement(e);
-  }
-  if (!e)
-    e = lookupCreateUndefinedElement(name, currentLocation(), currentDtdNonConst());
-  Boolean netEnabling;
-  AttributeList *attributes = allocAttributeList(e->attributeDef(), 0);
-  Token closeToken = getToken(tagMode);
-  if (closeToken == tokenTagc) {
-    if (name.size() > syntax().taglen())
-      checkTaglen(markupLocation().index());
-    attributes->finish(*this);
-    netEnabling = 0;
-    if (markup)
-      markup->addDelim(Syntax::dTAGC);
-  }
-  else {
-    in->ungetToken();
-    Ptr<AttributeDefinitionList> newAttDef;
-    if (parseAttributeSpec(0, *attributes, netEnabling, newAttDef)) {
-      // The difference between the indices will be the difference
-      // in offsets plus 1 for each named character reference.
-      if (in->currentLocation().index() - markupLocation().index()
-	  > syntax().taglen())
-	checkTaglen(markupLocation().index());
-    }
-    else
-      netEnabling = 0;
-    if (!newAttDef.isNull()) {
-      newAttDef->setIndex(currentDtdNonConst().allocAttributeDefinitionListIndex());
-      e->setAttributeDef(newAttDef);
-    }
-  }
-  acceptStartTag(e,
-		 new (eventAllocator())
-		 StartElementEvent(e,
-				   currentDtdPointer(),
-				   attributes,
-				   markupLocation(),
-				   markup),
-		 netEnabling);
-}
-
-ElementType *Parser::completeRankStem(const StringC &name)
-{
-  const RankStem *rankStem = currentDtd().lookupRankStem(name);
-  if (rankStem) {
-    StringC name(rankStem->name());
-    if (!appendCurrentRank(name, rankStem))
-      message(ParserMessages::noCurrentRank, StringMessageArg(name));
-    else
-      return currentDtdNonConst().lookupElementType(name);
-  }
-  return 0;
-}
-
-void Parser::handleRankedElement(const ElementType *e)
-{
-  StringC rankSuffix(e->definition()->rankSuffix());
-  const RankStem *rankStem = e->rankedElementRankStem();
-  for (size_t i = 0; i < rankStem->nDefinitions(); i++) {
-    const ElementDefinition *def = rankStem->definition(i);
-    for (size_t j = 0; j < def->nRankStems(); j++)
-      setCurrentRank(def->rankStem(j), rankSuffix);
-  }
-}
-
-void Parser::checkTaglen(Index tagStartIndex)
-{
-  const InputSourceOrigin *origin
-    = currentLocation().origin()->asInputSourceOrigin();
-  ASSERT(origin != 0);
-  if (origin->startOffset(currentLocation().index())
-      - origin->startOffset(tagStartIndex
-			    + syntax().delimGeneral(Syntax::dSTAGO).size())
-      > syntax().taglen())
-    message(ParserMessages::taglen, NumberMessageArg(syntax().taglen()));
-}
-
-void Parser::parseEmptyStartTag()
-{
-  if (options().warnEmptyTag)
-    message(ParserMessages::emptyStartTag);
-  // FIXME error if not in base.
-  const ElementType *e = 0;
-  if (!sd().omittag()) 
-    e = lastEndedElementType();
-  else if (tagLevel() > 0)
-    e = currentElement().type();
-  if (!e)
-    e = currentDtd().documentElementType();
-  AttributeList *attributes = allocAttributeList(e->attributeDef(), 0);
-  attributes->finish(*this);
-  Markup *markup = startMarkup(eventsWanted().wantInstanceMarkup(),
-			       currentLocation());
-  if (markup) {
-    markup->addDelim(Syntax::dSTAGO);
-    markup->addDelim(Syntax::dTAGC);
-  }
-  acceptStartTag(e,
-		 new (eventAllocator())
-		   StartElementEvent(e,
-				     currentDtdPointer(),
-				     attributes,
-				     markupLocation(),
-				     markup),
-		 0);
-}
-
-void Parser::parseGroupStartTag()
-{
-  if (startMarkup(eventsWanted().wantInstanceMarkup(), currentLocation())) {
-    currentMarkup()->addDelim(Syntax::dSTAGO);
-    currentMarkup()->addDelim(Syntax::dGRPO);
-  }
-  Boolean active;
-  if (!parseTagNameGroup(active))
-    return;
-  InputSource *in = currentInput();
-  // Location startLocation = in->currentLocation();
-  in->startToken();
-  Xchar c = in->tokenChar(messenger());
-  if (!syntax().isNameStartCharacter(c)) {
-    message(ParserMessages::startTagMissingName);
-    return;
-  }
-  in->discardInitial();
-  extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-  if (currentMarkup())
-    currentMarkup()->addName(currentInput());
-  skipAttributeSpec();
-  if (currentMarkup())
-    eventHandler().ignoredMarkup(new (eventAllocator())
-				 IgnoredMarkupEvent(markupLocation(),
-						    currentMarkup()));
-  noteMarkup();
-}
-
-void Parser::parseGroupEndTag()
-{
-  if (startMarkup(eventsWanted().wantInstanceMarkup(), currentLocation())) {
-    currentMarkup()->addDelim(Syntax::dSTAGO);
-    currentMarkup()->addDelim(Syntax::dGRPO);
-  }
-  Boolean active;
-  if (!parseTagNameGroup(active))
-    return;
-  InputSource *in = currentInput();
-  // Location startLocation = in->currentLocation();
-  in->startToken();
-  Xchar c = in->tokenChar(messenger());
-  if (!syntax().isNameStartCharacter(c)) {
-    message(ParserMessages::endTagMissingName);
-    return;
-  }
-  in->discardInitial();
-  extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-  if (currentMarkup())
-    currentMarkup()->addName(currentInput());
-  parseEndTagClose();
-  if (currentMarkup())
-    eventHandler().ignoredMarkup(new (eventAllocator())
-				 IgnoredMarkupEvent(markupLocation(),
-						    currentMarkup()));
-  noteMarkup();
-}
-
-void Parser::acceptPcdata(const Location &startLocation)
-{
-  if (currentElement().tryTransitionPcdata())
-    return;
-  // Need to test here since implying tags may turn off pcdataRecovering.
-  if (pcdataRecovering())
-    return;
-  IList<Undo> undoList;
-  IList<Event> eventList;
-  unsigned startImpliedCount = 0;
-  unsigned attributeListIndex = 0;
-  keepMessages();
-  while (tryImplyTag(startLocation, startImpliedCount, attributeListIndex,
-		     undoList, eventList))
-    if (currentElement().tryTransitionPcdata()) {
-      queueElementEvents(eventList);
-      return;
-    }
-  discardKeptMessages();
-  undo(undoList);
-  if (validate() || afterDocumentElement())
-    message(ParserMessages::pcdataNotAllowed);
-  pcdataRecover();
-}
-
-void Parser::acceptStartTag(const ElementType *e,
-			    StartElementEvent *event,
-			    Boolean netEnabling)
-{
-  if (e->definition()->undefined() && !implydefElement())
-    message(ParserMessages::undefinedElement, StringMessageArg(e->name()));
-  if (elementIsExcluded(e)) {
-    keepMessages();
-    if (validate())
-      checkExclusion(e);
-  }
-  else {
-    if (currentElement().tryTransition(e)) {
-      pushElementCheck(e, event, netEnabling);
-      return;
-    }
-    if (elementIsIncluded(e)) {
-      event->setIncluded();
-      pushElementCheck(e, event, netEnabling);
-      return;
-    }
-    keepMessages();
-  }
-  IList<Undo> undoList;
-  IList<Event> eventList;
-  unsigned startImpliedCount = 0;
-  unsigned attributeListIndex = 1;
-  while (tryImplyTag(event->location(), startImpliedCount,
-		     attributeListIndex, undoList, eventList))
-    if (tryStartTag(e, event, netEnabling, eventList))
-      return;
-  discardKeptMessages();
-  undo(undoList);
-  if (validate() && !e->definition()->undefined())
-    handleBadStartTag(e, event, netEnabling);
-  else {
-    if (validate() ? implydefElement() : afterDocumentElement())
-      message(ParserMessages::elementNotAllowed, StringMessageArg(e->name()));
-    // If element couldn't occur because it was excluded, then
-    // do the transition here.
-    (void)currentElement().tryTransition(e);
-    pushElementCheck(e, event, netEnabling);
-  }
-}
-
-void Parser::undo(IList<Undo> &undoList)
-{
-  while (!undoList.empty()) {
-    Undo *p = undoList.get();
-    p->undo(this);
-    delete p;
-  }
-}
-
-void Parser::queueElementEvents(IList<Event> &events)
-{
-  releaseKeptMessages();
-  // FIXME provide IList<T>::reverse function
-  // reverse it
-  IList<Event> tem;
-  while (!events.empty())
-    tem.insert(events.get());
-  while (!tem.empty()) {
-    Event *e = tem.get();
-    if (e->type() == Event::startElement) {
-      noteStartElement(((StartElementEvent *)e)->included());
-      eventHandler().startElement((StartElementEvent *)e);
-    }
-    else {
-      noteEndElement(((EndElementEvent *)e)->included());
-      eventHandler().endElement((EndElementEvent *)e);
-    }
-  }
-
-}
-
-void Parser::checkExclusion(const ElementType *e)
-{
-  const LeafContentToken *token = currentElement().invalidExclusion(e);
-  if (token)
-    message(ParserMessages::invalidExclusion,
-	    OrdinalMessageArg(token->typeIndex() + 1),
-	    StringMessageArg(token->elementType()->name()),
-	    StringMessageArg(currentElement().type()->name()));
-}
-
-Boolean Parser::tryStartTag(const ElementType *e,
-			    StartElementEvent *event,
-			    Boolean netEnabling,
-			    IList<Event> &impliedEvents)
-{
-  if (elementIsExcluded(e)) {
-    checkExclusion(e);
-    return 0;
-  }
-  if (currentElement().tryTransition(e)) {
-    queueElementEvents(impliedEvents);
-    pushElementCheck(e, event, netEnabling);
-    return 1;
-  }
-  if (elementIsIncluded(e)) {
-    queueElementEvents(impliedEvents);
-    event->setIncluded();
-    pushElementCheck(e, event, netEnabling);
-    return 1;
-  }
-  return 0;
-}
-
-Boolean Parser::tryImplyTag(const Location &loc,
-			    unsigned &startImpliedCount,
-			    unsigned &attributeListIndex,
-			    IList<Undo> &undo,
-			    IList<Event> &eventList)
-{
-  if (!sd().omittag())
-    return 0;
-  if (currentElement().isFinished()) {
-    if (tagLevel() == 0)
-      return 0;
-#if 1
-    const ElementDefinition *def = currentElement().type()->definition();
-    if (def && !def->canOmitEndTag())
-      return 0;
-#endif
-    // imply an end tag
-    if (startImpliedCount > 0) {
-      message(ParserMessages::startTagEmptyElement,
-	      StringMessageArg(currentElement().type()->name()));
-      startImpliedCount--;
-    }
-#if 0
-    const ElementDefinition *def = currentElement().type()->definition();
-    if (def && !def->canOmitEndTag())
-      message(ParserMessages::omitEndTagDeclare,
-	      StringMessageArg(currentElement().type()->name()),
-	      currentElement().startLocation());
-#endif
-    EndElementEvent *event
-      = new (eventAllocator()) EndElementEvent(currentElement().type(),
-					       currentDtdPointer(),
-					       loc,
-					       0);
-    eventList.insert(event);
-    undo.insert(new (internalAllocator()) UndoEndTag(popSaveElement()));
-    return 1;
-  }
-  const LeafContentToken *token = currentElement().impliedStartTag();
-  if (!token)
-    return 0;
-  const ElementType *e = token->elementType();
-  if (elementIsExcluded(e))
-    message(ParserMessages::requiredElementExcluded,
-	    OrdinalMessageArg(token->typeIndex() + 1),
-	    StringMessageArg(e->name()),
-	    StringMessageArg(currentElement().type()->name()));
-  if (tagLevel() != 0)
-    undo.insert(new (internalAllocator())
-		     UndoTransition(currentElement().matchState()));
-  currentElement().doRequiredTransition();
-  const ElementDefinition *def = e->definition();
-  if (def->declaredContent() != ElementDefinition::modelGroup
-      && def->declaredContent() != ElementDefinition::any)
-    message(ParserMessages::omitStartTagDeclaredContent,
-	    StringMessageArg(e->name()));
-  if (def->undefined())
-    message(ParserMessages::undefinedElement, StringMessageArg(e->name()));
-  else if (!def->canOmitStartTag())
-    message(ParserMessages::omitStartTagDeclare, StringMessageArg(e->name()));
-  AttributeList *attributes
-    = allocAttributeList(e->attributeDef(),
-			 attributeListIndex++);
-  // this will give an error if the element has a required attribute
-  attributes->finish(*this);
-  startImpliedCount++;
-  StartElementEvent *event
-    = new (eventAllocator()) StartElementEvent(e,
-					       currentDtdPointer(),
-					       attributes,
-					       loc,
-					       0);
-  pushElementCheck(e, event, undo, eventList);
-  const int implyCheckLimit = 30; // this is fairly arbitrary
-  if (startImpliedCount > implyCheckLimit
-      && !checkImplyLoop(startImpliedCount))
-    return 0;
-  return 1;
-}
-
-void Parser::pushElementCheck(const ElementType *e, StartElementEvent *event,
-			      Boolean netEnabling)
-{
-  if (tagLevel() == syntax().taglvl())
-    message(ParserMessages::taglvlOpenElements, NumberMessageArg(syntax().taglvl()));
-  noteStartElement(event->included());
-  if (event->mustOmitEnd()) {
-    if (sd().emptyElementNormal()) {
-      Boolean included = event->included();
-      Location loc(event->location());
-      eventHandler().startElement(event);
-      endTagEmptyElement(e, netEnabling, included, loc);
-    }
-    else {
-      EndElementEvent *end
-	= new (eventAllocator()) EndElementEvent(e,
-					         currentDtdPointer(),
-					         event->location(),
-					         0);
-      if (event->included()) {
-	end->setIncluded();
-	noteEndElement(1);
-      }
-      else
-	noteEndElement(0);
-      eventHandler().startElement(event);
-      eventHandler().endElement(end);
-    }
-  }
-  else {
-    const ShortReferenceMap *map = e->map();
-    if (!map)
-      map = currentElement().map();
-    pushElement(new (internalAllocator()) OpenElement(e,
-						      netEnabling,
-						      event->included(),
-						      map,
-						      event->location()));
-    // Can't access event after it's passed to the event handler.
-    eventHandler().startElement(event);
-  }
-}
-
-void Parser::endTagEmptyElement(const ElementType *e,
-				Boolean netEnabling,
-				Boolean included,
-				const Location &startLoc)
-{
-  Token token = getToken(netEnabling ? econnetMode : econMode);
-  switch (token) {
-  case tokenNet:
-    if (netEnabling) {
-      Markup *markup = startMarkup(eventsWanted().wantInstanceMarkup(),
-			           currentLocation());
-      if (markup)
-	markup->addDelim(Syntax::dNET);
-      EndElementEvent *end
-	= new (eventAllocator()) EndElementEvent(e,
-						 currentDtdPointer(),
-						 currentLocation(),
-						 markup);
-      if (included)
-	end->setIncluded();
-      eventHandler().endElement(end);
-      noteEndElement(included);
-      return;
-    }
-    break;
-  case tokenEtagoTagc:
-    {
-      if (options().warnEmptyTag)
-	message(ParserMessages::emptyEndTag);
-      Markup *markup = startMarkup(eventsWanted().wantInstanceMarkup(),
-				   currentLocation());
-      if (markup) {
-        markup->addDelim(Syntax::dETAGO);
-        markup->addDelim(Syntax::dTAGC);
-      }
-      EndElementEvent *end
-	= new (eventAllocator()) EndElementEvent(e,
-						 currentDtdPointer(),
-						 currentLocation(),
-						 markup);
-      if (included)
-	end->setIncluded();
-      eventHandler().endElement(end);
-      noteEndElement(included);
-      return;
-    }
-  case tokenEtagoNameStart:
-    {
-      EndElementEvent *end = parseEndTag();
-      if (end->elementType() == e) {
-	if (included)
-	  end->setIncluded();
-	eventHandler().endElement(end);
-	noteEndElement(included);
-	return;
-      }
-      if (!elementIsOpen(end->elementType())) {
-	message(ParserMessages::elementNotOpen,
-		StringMessageArg(end->elementType()->name()));
-	delete end;
-	break;
-      }
-      implyEmptyElementEnd(e, included, startLoc);
-      acceptEndTag(end);
-      return;
-    }
-  default:
-    break;
-  }
-  implyEmptyElementEnd(e, included, startLoc);
-  currentInput()->ungetToken();
-}
-
-void Parser::implyEmptyElementEnd(const ElementType *e,
-				  Boolean included,
-				  const Location &startLoc)
-{
-  if (!sd().omittag())
-    message(ParserMessages::omitEndTagOmittag,
-	    StringMessageArg(e->name()),
-	    startLoc);
-  else {
-    const ElementDefinition *def = e->definition();
-    if (def && !def->canOmitEndTag())
-      message(ParserMessages::omitEndTagDeclare,
-	      StringMessageArg(e->name()),
-	      startLoc);
-  }
-  EndElementEvent *end
-    = new (eventAllocator()) EndElementEvent(e,
-					     currentDtdPointer(),
-					     currentLocation(),
-					     0);
-  if (included)
-    end->setIncluded();
-  noteEndElement(included);
-  eventHandler().endElement(end);
-}
-
-void Parser::pushElementCheck(const ElementType *e, StartElementEvent *event,
-			      IList<Undo> &undoList,
-			      IList<Event> &eventList)
-{
-  if (tagLevel() == syntax().taglvl())
-    message(ParserMessages::taglvlOpenElements, NumberMessageArg(syntax().taglvl()));
-  eventList.insert(event);
-  if (event->mustOmitEnd()) {
-    EndElementEvent *end
-      = new (eventAllocator()) EndElementEvent(e,
-					       currentDtdPointer(),
-					       event->location(),
-					       0);
-    if (event->included())
-      end->setIncluded();
-    eventList.insert(end);
-  }
-  else {
-    undoList.insert(new (internalAllocator()) UndoStartTag);
-    const ShortReferenceMap *map = e->map();
-    if (!map)
-      map = currentElement().map();
-    pushElement(new (internalAllocator()) OpenElement(e,
-						      0,
-						      event->included(),
-						      map,
-						      event->location()));
-  }
-}
-
-EndElementEvent *Parser::parseEndTag()
-{
-  Markup *markup = startMarkup(eventsWanted().wantInstanceMarkup(),
-			       currentLocation());
-  currentInput()->discardInitial();
-  extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-  if (markup) {
-    markup->addDelim(Syntax::dETAGO);
-    markup->addName(currentInput());
-  }
-  StringC &name = nameBuffer();
-  getCurrentToken(syntax().generalSubstTable(), name);
-  const ElementType *e = currentDtd().lookupElementType(name);
-  if (sd().rank()) {
-    if (!e)
-      e = completeRankStem(name);
-  }
-  if (!e) 
-    e = lookupCreateUndefinedElement(name, currentLocation(), currentDtdNonConst());
-  parseEndTagClose();
-  return new (eventAllocator())
-	       EndElementEvent(e,
-			       currentDtdPointer(),
-			       markupLocation(),
-			       markup);
-}
-
-void Parser::parseEndTagClose()
-{
-  for (;;) {
-    Token token = getToken(tagMode);
-    switch (token) {
-    case tokenUnrecognized:
-      if (!reportNonSgmlCharacter())
-	message(ParserMessages::endTagCharacter, StringMessageArg(currentToken()));
-      return;
-    case tokenEe:
-      message(ParserMessages::endTagEntityEnd);
-      return;
-    case tokenEtago:
-    case tokenStago:
-      if (!sd().endTagUnclosed())
-	message(ParserMessages::unclosedEndTagShorttag);
-      currentInput()->ungetToken();
-      return;
-    case tokenTagc:
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dTAGC);
-      return;
-    case tokenS:
-      if (currentMarkup())
-	currentMarkup()->addS(currentChar());
-      break;
-    default:
-      message(ParserMessages::endTagInvalidToken,
-	      TokenMessageArg(token, tagMode, syntaxPointer(), sdPointer()));
-      return;
-    }
-  }
-}
-
-void Parser::parseEmptyEndTag()
-{
-  if (options().warnEmptyTag)
-    message(ParserMessages::emptyEndTag);
-  // FIXME what to do if not in base
-  if (tagLevel() == 0)
-    message(ParserMessages::emptyEndTagNoOpenElements);
-  else {
-    Markup *markup = startMarkup(eventsWanted().wantInstanceMarkup(),
-				 currentLocation());
-    if (markup) {
-      markup->addDelim(Syntax::dETAGO);
-      markup->addDelim(Syntax::dTAGC);
-    }
-    acceptEndTag(new (eventAllocator()) EndElementEvent(currentElement().type(),
-							currentDtdPointer(),
-							currentLocation(),
-							markup));
-  }
-}
-
-void Parser::parseNullEndTag()
-{
-  // If a null end tag was recognized, then there must be a net enabling
-  // element on the stack.
-  for (;;) {
-    ASSERT(tagLevel() > 0);
-    if (currentElement().netEnabling())
-      break;
-    if (!currentElement().isFinished() && validate())
-      message(ParserMessages::elementNotFinished,
-	      StringMessageArg(currentElement().type()->name()));
-    implyCurrentElementEnd(currentLocation());
-  }
-  if (!currentElement().isFinished() && validate())
-    message(ParserMessages::elementEndTagNotFinished,
-	    StringMessageArg(currentElement().type()->name()));
-  Markup *markup = startMarkup(eventsWanted().wantInstanceMarkup(),
-			       currentLocation());
-  if (markup)
-    markup->addDelim(Syntax::dNET);
-  acceptEndTag(new (eventAllocator()) EndElementEvent(currentElement().type(),
-						      currentDtdPointer(),
-						      currentLocation(),
-						      markup));
-}
-
-void Parser::endAllElements()
-{
-  while (tagLevel() > 0) {
-    if (!currentElement().isFinished())
-      message(ParserMessages::elementNotFinishedDocumentEnd,
-	      StringMessageArg(currentElement().type()->name()));
-    implyCurrentElementEnd(currentLocation());
-  }
-  if (!currentElement().isFinished() && validate())
-    message(ParserMessages::noDocumentElement);
-}
-
-void Parser::acceptEndTag(EndElementEvent *event)
-{
-  const ElementType *e = event->elementType();
-  if (!elementIsOpen(e)) {
-    message(ParserMessages::elementNotOpen, StringMessageArg(e->name()));
-    delete event;
-    return;
-  }
-  for (;;){
-    if (currentElement().type() == e)
-      break;
-    if (!currentElement().isFinished() && validate())
-      message(ParserMessages::elementNotFinished,
-	      StringMessageArg(currentElement().type()->name()));
-    implyCurrentElementEnd(event->location());
-  }
-  if (!currentElement().isFinished() && validate())
-    message(ParserMessages::elementEndTagNotFinished,
-	    StringMessageArg(currentElement().type()->name()));
-  if (currentElement().included())
-    event->setIncluded();
-  noteEndElement(event->included());
-  eventHandler().endElement(event);
-  popElement();
-}
-
-void Parser::implyCurrentElementEnd(const Location &loc)
-{
-  if (!sd().omittag())
-    message(ParserMessages::omitEndTagOmittag,
-	    StringMessageArg(currentElement().type()->name()),
-	    currentElement().startLocation());
-  else {
-    const ElementDefinition *def = currentElement().type()->definition();
-    if (def && !def->canOmitEndTag())
-      message(ParserMessages::omitEndTagDeclare,
-	      StringMessageArg(currentElement().type()->name()),
-	      currentElement().startLocation());
-  }
-  EndElementEvent *event
-    = new (eventAllocator()) EndElementEvent(currentElement().type(),
-					     currentDtdPointer(),
-					     loc,
-					     0);
-  if (currentElement().included())
-    event->setIncluded();
-  noteEndElement(event->included());
-  eventHandler().endElement(event);
-  popElement();
-}
-
-void Parser::extendData()
-{
-  XcharMap<PackedBoolean> isNormal(normalMap());
-  InputSource *in = currentInput();
-  size_t length = in->currentTokenLength();
-  // This is one of the parser's inner loops, so it needs to be fast.
-  while (isNormal[in->tokenChar(messenger())])
-    length++;
-  in->endToken(length);
-}
-
-void Parser::extendContentS()
-{
-  InputSource *in = currentInput();
-  size_t length = in->currentTokenLength();
-  XcharMap<PackedBoolean> isNormal(normalMap());
-  for (;;) {
-    Xchar ch = in->tokenChar(messenger());
-    if (!syntax().isS(ch) || !isNormal[ch])
-      break;
-    length++;
-  }
-  in->endToken(length);
-}
-
-void Parser::handleBadStartTag(const ElementType *e,
-			       StartElementEvent *event,
-			       Boolean netEnabling)
-{
-  IList<Undo> undoList;
-  IList<Event> eventList;
-  keepMessages();
-  for (;;) {
-    Vector<const ElementType *> missing;
-    findMissingTag(e, missing);
-    if (missing.size() == 1) {
-      queueElementEvents(eventList);
-      const ElementType *m = missing[0];
-      message(ParserMessages::missingElementInferred,
-	      StringMessageArg(e->name()),
-	      StringMessageArg(m->name()));
-      AttributeList *attributes
-	= allocAttributeList(m->attributeDef(), 1);
-      // this will give an error if the element has a required attribute
-      attributes->finish(*this);
-      StartElementEvent *inferEvent
-	= new (eventAllocator()) StartElementEvent(m,
-						   currentDtdPointer(),
-						   attributes,
-						   event->location(),
-						   0);
-      if (!currentElement().tryTransition(m))
-	inferEvent->setIncluded();
-      pushElementCheck(m, inferEvent, 0);
-      if (!currentElement().tryTransition(e))
-	event->setIncluded();
-      pushElementCheck(e, event, netEnabling);
-      return;
-    }
-    if (missing.size() > 0) {
-      queueElementEvents(eventList);
-      Vector<StringC> missingNames;
-      for (size_t i = 0; i < missing.size(); i++)
-	missingNames.push_back(missing[i]->name());
-      message(ParserMessages::missingElementMultiple,
-	      StringMessageArg(e->name()),
-	      StringVectorMessageArg(missingNames));
-      pushElementCheck(e, event, netEnabling);
-      return;
-    }
-    if (!sd().omittag()
-	|| !currentElement().isFinished()
-	|| tagLevel() == 0
-	|| !currentElement().type()->definition()->canOmitEndTag())
-      break;
-    EndElementEvent *endEvent
-      = new (eventAllocator()) EndElementEvent(currentElement().type(),
-					       currentDtdPointer(),
-					       event->location(),
-					       0);
-    eventList.insert(endEvent);
-    undoList.insert(new (internalAllocator()) UndoEndTag(popSaveElement()));
-  }
-  discardKeptMessages();
-  undo(undoList);
-  message(ParserMessages::elementNotAllowed, StringMessageArg(e->name()));
-  // If element couldn't occur because it was excluded, then
-  // do the transition here.
-  (void)currentElement().tryTransition(e);
-  pushElementCheck(e, event, netEnabling);
-}
-
-void Parser::findMissingTag(const ElementType *e,
-			    Vector<const ElementType *> &v)
-{
-  if (!currentElement().currentPosition()) {
-    if (!e)
-      v.push_back((const ElementType *)0);
-    return;
-  }
-  if (elementIsExcluded(e))
-    return;
-  size_t newSize = 0;
-  currentElement().matchState().possibleTransitions(v);
-  // FIXME also get currentInclusions
-  for (size_t i = 0; i < v.size(); i++) {
-    if (v[i] && !elementIsExcluded(v[i])) {
-      Boolean success = 0;
-      switch (v[i]->definition()->declaredContent()) {
-      case ElementDefinition::modelGroup:
-	{
-	  const CompiledModelGroup *grp
-	    = v[i]->definition()->compiledModelGroup();
-	  MatchState state(grp);
-	  if (!e) {
-	    if (state.tryTransitionPcdata())
-	      success = 1;
-	  }
-	  else {
-	    if (state.tryTransition(e))
-	      success = 1;
-	    if (!success) {
-	      for (size_t j = 0; j < v[i]->definition()->nInclusions(); j++)
-		if (v[i]->definition()->inclusion(j) == e) {
-		  success = 1;
-		  break;
-		}
-	    }
-	    if (success) {
-	      for (size_t j = 0; j < v[i]->definition()->nExclusions(); j++)
-		if (v[i]->definition()->exclusion(j) == e) {
-		  success = 0;
-		  break;
-		}
-	    }
-	  }
-	}
-	break;
-#if 0
-      case ElementDefinition::any:
-	success = 1;
-	break;
-#endif
-      case ElementDefinition::cdata:
-      case ElementDefinition::rcdata:
-	if (e == 0)
-	  success = 1;
-	break;
-      default:
-	break;
-      }
-      if (success)
-	v[newSize++] = v[i];
-    }
-  }
-  v.resize(newSize);
-  // Sort them according to the order of their occurrence in the DTD.
-  // Do an insertion sort.
-  for (size_t i = 1; i < v.size(); i++) {
-    const ElementType *tem = v[i];
-    size_t j;
-    for (j = i; j > 0 && v[j - 1]->index() > tem->index(); j--)
-      v[j] = v[j - 1];
-    v[j] = tem;
-  }
-}
-
-#if 0
-// This produces messages that are too verbose
-// This doesn't try to be very efficient.
-// 0 for #pcdata
-
-void Parser::getAllowedElementTypes(Vector<const ElementType *> &v)
-{
-  v.clear();
-  // FIXME get a list of all inclusions first
-  // getCurrentInclusions(v);
-  // x says whether each element of v was excluded
-  Vector<PackedBoolean> x(v.size(), 0);
-  unsigned startImpliedCount = 0;
-  IList<Undo> undoList;
-  for (;;) {
-    if (currentElement().currentPosition()) {
-      // have a model group
-      size_t i = v.size();
-      currentElement().matchState().possibleTransitions(v);
-      x.resize(v.size());
-      for (size_t j = i; j < v.size(); j++)
-	x[j] = (v[j] && elementIsExcluded(v[j]));
-      if (!sd().omittag())
-	break;
-      // Try to imply a tag
-      if (currentElement().isFinished()) {
-	if (tagLevel() == 0)
-	  break;
-	if (startImpliedCount)
-	  break;
-	const ElementDefinition *def = currentElement().type()->definition();
-	if (def && def->canOmitEndTag())
-	  undoList.insert(new (internalAllocator())
-			  UndoEndTag(popSaveElement()));
-	else
-	  break;
-      }
-      else {
-	const LeafContentToken *token = currentElement().impliedStartTag();
-	if (!token)
-	  break;
-	const ElementType *e = token->elementType();
-	if (elementIsExcluded(e))
-	  break;
-	const ElementDefinition *def = e->definition();
-	if (!def
-	    || def->undefined()
-	    || (def->declaredContent() != ElementDefinition::modelGroup
-		&& def->declaredContent() != ElementDefinition::any)
-	    || !def->canOmitStartTag())
-	  break;
-	undoList.insert(new (internalAllocator()) UndoStartTag);
-	startImpliedCount++;
-	pushElement(new (internalAllocator()) OpenElement(e,
-							  0,
-							  0,
-							  0,
-							  Location()));
-	if (checkImplyLoop(startImpliedCount))
-	  break;
-	for (size_t i = 0; i < def->nInclusions(); i++)
-	  if (!elementIsExcluded(def->inclusion(i))) {
-	    v.push_back(def->inclusion(i));
-	    x.push_back(0);
-	  }
-      }
-    }
-    else {
-      // must be allowed #pcdata
-      v.push_back((const ElementType *)0);
-      x.push_back((PackedBoolean)0);
-      break;
-    }
-  }
-  undo(undoList);
-  // Remove exclusions and duplicates and undefined
-  size_t newSize = 0;
-  for (size_t i = 0; i < v.size(); i++)
-    if (!x[i] && (!v[i] || !v[i]->definition()->undefined())) {
-      Boolean dup = 0;
-      for (size_t j = 0; j < newSize; j++)
-	if (v[i] == v[j]) {
-	  dup = 1;
-	  break;
-	}
-      if (!dup)
-	v[newSize++] = v[i];
-    }
-  v.resize(newSize);
-}
-#endif
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/parseMode.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,581 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "Parser.h"
-#include "ParserMessages.h"
-#include "MessageArg.h"
-#include "TokenMessageArg.h"
-#include "ModeInfo.h"
-#include "Partition.h"
-#include "SrInfo.h"
-#include "Vector.h"
-#include "ISetIter.h"
-#include "token.h"
-#include "TrieBuilder.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-enum {
-  modeUsedInSd = 01,
-  modeUsedInProlog = 02,
-  modeUsedInInstance = 04,
-  modeUsesSr = 010
-};
-
-static struct {
-  Mode mode;
-  unsigned flags;
-} modeTable[] = {
-  { grpMode, modeUsedInProlog|modeUsedInInstance },
-  { alitMode, modeUsedInProlog|modeUsedInInstance },
-  { alitaMode, modeUsedInProlog|modeUsedInInstance },
-  { aliteMode, modeUsedInProlog|modeUsedInInstance },
-  { talitMode, modeUsedInProlog|modeUsedInInstance },
-  { talitaMode, modeUsedInProlog|modeUsedInInstance },
-  { taliteMode, modeUsedInProlog|modeUsedInInstance },
-  { mdMode, modeUsedInProlog|modeUsedInInstance },
-  { mdMinusMode, modeUsedInProlog },
-  { mdPeroMode, modeUsedInProlog },
-  { sdMode, modeUsedInSd },
-  { comMode, modeUsedInProlog|modeUsedInInstance },
-  { sdcomMode, modeUsedInSd },
-  { piMode, modeUsedInProlog|modeUsedInInstance },
-  { refMode, modeUsedInProlog|modeUsedInInstance|modeUsedInSd },
-  { imsMode, modeUsedInProlog|modeUsedInInstance },
-  { cmsMode, modeUsedInProlog|modeUsedInInstance },
-  { rcmsMode, modeUsedInProlog|modeUsedInInstance },
-  { proMode, modeUsedInProlog },
-  { dsMode, modeUsedInProlog },
-  { dsiMode, modeUsedInProlog },
-  { plitMode, modeUsedInProlog },
-  { plitaMode, modeUsedInProlog },
-  { pliteMode, modeUsedInProlog },
-  { sdplitMode, modeUsedInSd },
-  { sdplitaMode, modeUsedInSd },
-  { grpsufMode, modeUsedInProlog },
-  { mlitMode, modeUsedInProlog|modeUsedInSd },
-  { mlitaMode, modeUsedInProlog|modeUsedInSd },
-  { asMode, modeUsedInProlog },
-  { slitMode, modeUsedInProlog },
-  { slitaMode, modeUsedInProlog },
-  { sdslitMode, modeUsedInSd },
-  { sdslitaMode, modeUsedInSd },
-  { cconMode, modeUsedInInstance },
-  { rcconMode, modeUsedInInstance },
-  { cconnetMode, modeUsedInInstance },
-  { rcconnetMode, modeUsedInInstance },
-  { rcconeMode, modeUsedInInstance },
-  { tagMode, modeUsedInInstance },
-  { econMode, modeUsedInInstance|modeUsesSr },
-  { mconMode, modeUsedInInstance|modeUsesSr },
-  { econnetMode, modeUsedInInstance|modeUsesSr },
-  { mconnetMode, modeUsedInInstance|modeUsesSr },
-};
-
-void Parser::compileSdModes()
-{
-  Mode modes[nModes];
-  int n = 0;
-  for (size_t i = 0; i < SIZEOF(modeTable); i++)
-    if (modeTable[i].flags & modeUsedInSd)
-      modes[n++] = modeTable[i].mode;
-  compileModes(modes, n, 0);
-}
-
-void Parser::compilePrologModes()
-{
-  Boolean scopeInstance = sd().scopeInstance();
-  Boolean haveSr = syntax().hasShortrefs();
-  Mode modes[nModes];
-  int n = 0;
-  for (size_t i = 0; i < SIZEOF(modeTable); i++) {
-    if (scopeInstance) {
-      if (modeTable[i].flags & modeUsedInProlog)
-	modes[n++] = modeTable[i].mode;
-    }
-    else if (haveSr) {
-      if ((modeTable[i].flags & (modeUsedInInstance|modeUsedInProlog))
-	  && !(modeTable[i].flags & modeUsesSr))
-	modes[n++] = modeTable[i].mode;
-    }
-    else {
-      if (modeTable[i].flags & (modeUsedInInstance|modeUsedInProlog))
-	modes[n++] = modeTable[i].mode;
-    }
-  }
-  compileModes(modes, n, 0);
-}
-
-void Parser::compileInstanceModes()
-{
-  Boolean scopeInstance = sd().scopeInstance();
-  compileNormalMap();
-  if (!scopeInstance && !syntax().hasShortrefs())
-    return;
-  Mode modes[nModes];
-  int n = 0;
-  for (size_t i = 0; i < SIZEOF(modeTable); i++) {
-    if (scopeInstance) {
-      if (modeTable[i].flags & modeUsedInInstance)
-	modes[n++] = modeTable[i].mode;
-    }
-    else {
-      if (modeTable[i].flags & modeUsesSr)
-	modes[n++] = modeTable[i].mode;
-    }
-  }
-  compileModes(modes, n, &currentDtd());
-}
-
-void Parser::compileModes(const Mode *modes,
-			  int n,
-			  const Dtd *dtd)
-{
-  PackedBoolean sets[Syntax::nSet];
-  PackedBoolean delims[Syntax::nDelimGeneral];
-  PackedBoolean functions[3];
-  int i;
-  Boolean includesShortref = 0;
-  for (i = 0; i < Syntax::nSet; i++)
-    sets[i] = 0;
-  for (i = 0; i < Syntax::nDelimGeneral; i++)
-    delims[i] = 0;
-  for (i = 0; i < 3; i++)
-    functions[i] = 0;
-  
-  for (i = 0; i < n; i++) {
-    ModeInfo iter(modes[i], sd());
-    TokenInfo ti;
-    while (iter.nextToken(&ti)) {
-      switch (ti.type) {
-      case TokenInfo::delimType:
-	delims[ti.delim1] = 1;
-	break;
-      case TokenInfo::delimDelimType:
-	delims[ti.delim1] = 1;
-	delims[ti.delim2] = 1;
-	break;
-      case TokenInfo::delimSetType:
-	delims[ti.delim1] = 1;
-	// fall through
-      case TokenInfo::setType:
-	sets[ti.set] = 1;
-	break;
-      case TokenInfo::functionType:
-	functions[ti.function] = 1;
-	break;
-      }
-    }
-    if (!includesShortref && iter.includesShortref())
-      includesShortref = 1;
-  }
-
-  ISet<Char> chars;
-
-  for (i = 0; i < 3; i++)
-    if (functions[i])
-      chars.add(syntax().standardFunction(i));
-  for (i = 0; i < Syntax::nDelimGeneral; i++)
-    if (delims[i]) {
-      const StringC &str = syntax().delimGeneral(i);
-      for (size_t j = 0; j < str.size(); j++)
-	chars.add(str[j]);
-    }
-  if (includesShortref && dtd) {
-    size_t n = dtd->nShortref();
-    for (size_t i = 0; i < n; i++) {
-      const StringC &delim = dtd->shortref(i);
-      size_t len = delim.size();
-      for (size_t j = 0; j < len; j++)
-	if (delim[j] == sd().execToInternal('B'))
-	  sets[Syntax::blank] = 1;
-	else
-	  chars.add(delim[j]);
-    }
-  }
-
-  const ISet<Char> *csets[Syntax::nSet];
-  int usedSets = 0;
-  for (i = 0; i < Syntax::nSet; i++)
-    if (sets[i])
-      csets[usedSets++] = syntax().charSet(i);
-
-  Partition partition(chars, csets, usedSets, *syntax().generalSubstTable());
-
-  String<EquivCode> setCodes[Syntax::nSet];
-  
-  int nCodes = 0;
-  for (i = 0; i < Syntax::nSet; i++)
-    if (sets[i])
-      setCodes[i] = partition.setCodes(nCodes++);
-
-  String<EquivCode> delimCodes[Syntax::nDelimGeneral];
-  for (i = 0; i < Syntax::nDelimGeneral; i++)
-    if (delims[i]) {
-      StringC str = syntax().delimGeneral(i);
-      for (size_t j = 0; j < str.size(); j++)
-	delimCodes[i] += partition.charCode(str[j]);
-    }
-
-  String<EquivCode> functionCode[3];
-  for (i = 0; i < 3; i++)
-    if (functions[i])
-      functionCode[i] += partition.charCode(syntax().standardFunction(i));
-
-  Vector<SrInfo> srInfo;
-      
-  int nShortref;
-  if (!includesShortref || !dtd)
-    nShortref = 0;
-  else {
-    nShortref = dtd->nShortref();
-    srInfo.resize(nShortref);
-
-    for (i = 0; i < nShortref; i++) {
-      const StringC delim = dtd->shortref(i);
-      SrInfo *p = &srInfo[i];
-      size_t j;
-      for (j = 0; j < delim.size(); j++) {
-	if (delim[j] == sd().execToInternal('B'))
-	  break;
-	p->chars += partition.charCode(delim[j]);
-      }
-      if (j < delim.size()) {
-	p->bSequenceLength = 1;
-	for (++j; j < delim.size(); j++) {
-	  if (delim[j] != sd().execToInternal('B'))
-	    break;
-	  p->bSequenceLength += 1;
-	}
-	for (; j < delim.size(); j++)
-	  p->chars2 += partition.charCode(delim[j]);
-      }
-      else
-	p->bSequenceLength = 0;
-    }
-  }
-
-  String<EquivCode> dataDelimCodes;
-  if (options().warnDataDelim) {
-    ModeInfo iter(mconMode, sd());
-    TokenInfo ti;
-    while (iter.nextToken(&ti)) {
-      switch (ti.type) {
-      case TokenInfo::delimType:
-      case TokenInfo::delimDelimType:
-      case TokenInfo::delimSetType:
-	{
-	  if (ti.token == tokenMscMdc)
-	    break;
-	  const StringC &delim = syntax().delimGeneral(ti.delim1);
-	  if (!delim.size())
-	    break;
-	  EquivCode c = partition.charCode(delim[0]);
-	  for (size_t i = 0; ; i++) {
-	    if (i >= dataDelimCodes.size()) {
-	      dataDelimCodes += c;
-	      break;
-	    }
-	    if (dataDelimCodes[i] == c)
-	      break;
-	  }
-	}
-	break;
-      default:
-	break;
-      }
-    }
-  }
-
-  const String<EquivCode> emptyString;
-  Boolean multicode = syntax().multicode();
-  for (i = 0; i < n; i++) {
-    TrieBuilder tb(partition.maxCode() + 1);
-    TrieBuilder::TokenVector ambiguities;
-    Vector<Token> suppressTokens;
-    if (multicode) {
-      suppressTokens.assign(partition.maxCode() + 1, 0);
-      suppressTokens[partition.eECode()] = tokenEe;
-    }
-    tb.recognizeEE(partition.eECode(), tokenEe);
-    ModeInfo iter(modes[i], sd());
-    TokenInfo ti;
-    // We try to handle the possibility that some delimiters may be empty;
-    // this might happen when compiling recognizers for the SGML declaration.
-    while (iter.nextToken(&ti)) {
-      switch (ti.type) {
-      case TokenInfo::delimType:
-	if (delimCodes[ti.delim1].size() > 0)
-	  tb.recognize(delimCodes[ti.delim1], ti.token,
-		       ti.priority, ambiguities);
-	break;
-      case TokenInfo::delimDelimType:
-	{
-	  String<EquivCode> str(delimCodes[ti.delim1]);
-	  if (str.size() > 0 && delimCodes[ti.delim2].size() > 0) {
-	    str += delimCodes[ti.delim2];
-	    tb.recognize(str, ti.token, ti.priority, ambiguities);
-	  }
-	}
-	break;
-      case TokenInfo::delimSetType:
-	if (delimCodes[ti.delim1].size() > 0)
-	  tb.recognize(delimCodes[ti.delim1], setCodes[ti.set],
-		       ti.token, ti.priority, ambiguities);
-	break;
-      case TokenInfo::setType:
-	tb.recognize(emptyString, setCodes[ti.set], ti.token,
-		     ti.priority, ambiguities);
-	if (multicode) {
-	  const String<EquivCode> &equivCodes = setCodes[ti.set];
-	  for (size_t j = 0; j < equivCodes.size(); j++)
-	    suppressTokens[equivCodes[j]] = ti.token;
-	}
-	break;
-      case TokenInfo::functionType:
-	tb.recognize(functionCode[ti.function], ti.token,
-		     ti.priority, ambiguities);
-	if (multicode)
-	  suppressTokens[functionCode[ti.function][0]] = ti.token;
-	break;
-      }
-    }
-    if (iter.includesShortref()) {
-      for (int j = 0; j < nShortref; j++) {
-	const SrInfo *p = &srInfo[j];
-	if (p->bSequenceLength > 0)
-	  tb.recognizeB(p->chars, p->bSequenceLength,
-			syntax().quantity(Syntax::qBSEQLEN),
-			setCodes[Syntax::blank],
-			p->chars2, tokenFirstShortref + j,
-			ambiguities);
-	else
-	  tb.recognize(p->chars, tokenFirstShortref + j,
-		       Priority::delim, ambiguities);
-      }
-    }
-    if (options().warnDataDelim) {
-      switch (modes[i]) {
-      default:
-        if (!iter.includesShortref())
-	  break;
-	// fall through
-      case alitMode:
-      case alitaMode:
-      case aliteMode:
-      case talitMode:
-      case talitaMode:
-      case taliteMode:
-	for (size_t j = 0; j < dataDelimCodes.size(); j++) {
-	  String<EquivCode> code;
-	  code += dataDelimCodes[j];
-	  tb.recognize(code, tokenCharDelim, Priority::dataDelim, ambiguities);
-	}
-	break;
-      case plitMode:
-      case plitaMode:
-      case pliteMode:
-	{
-	  String<EquivCode> code;
-	  code += partition.charCode(syntax().delimGeneral(Syntax::dPERO)[0]);
-	  tb.recognize(code, tokenCharDelim, Priority::dataDelim, ambiguities);
-	}
-	break;
-      }
-    }
-    setRecognizer(modes[i],
-		  (multicode
-		   ? new Recognizer(tb.extractTrie(), partition.map(),
-				    suppressTokens)
-		   : new Recognizer(tb.extractTrie(), partition.map())));
-    // FIXME give more information
-    for (size_t j = 0; j < ambiguities.size(); j += 2)
-      message(ParserMessages::lexicalAmbiguity,
-	      TokenMessageArg(ambiguities[j], modes[i], syntaxPointer(),
-			      sdPointer()),
-	      TokenMessageArg(ambiguities[j + 1], modes[i], syntaxPointer(),
-			      sdPointer()));
-  }
-}
-
-void Parser::compileNormalMap()
-{
-  XcharMap<PackedBoolean> map(0);
-  ISetIter<Char> sgmlCharIter(*syntax().charSet(Syntax::sgmlChar));
-  Char min, max;
-  while (sgmlCharIter.next(min, max))
-    map.setRange(min, max, 1);
-  ModeInfo iter(mconnetMode, sd());
-  TokenInfo ti;
-  while (iter.nextToken(&ti)) {
-    switch (ti.type) {
-    case TokenInfo::delimType:
-    case TokenInfo::delimDelimType:
-    case TokenInfo::delimSetType:
-      {
-	const StringC &delim = syntax().delimGeneral(ti.delim1);
-	if (!delim.size())
-	  break;
-	Char c = delim[0];
-	map.setChar(c, 0);
-	StringC str(syntax().generalSubstTable()->inverse(c));
-	for (size_t i = 0; i < str.size(); i++)
-	  map.setChar(str[i], 0);
-      }
-      break;
-    case TokenInfo::setType:
-      if (ti.token != tokenChar) {
-	ISetIter<Char> setIter(*syntax().charSet(ti.set));
-	Char min, max;
-	while (setIter.next(min, max))
-	  map.setRange(min, max, 0);
-      }
-      break;
-    case TokenInfo::functionType:
-      if (ti.token != tokenChar)
-	map.setChar(syntax().standardFunction(ti.function), 0);
-      break;
-    }
-  }
-  int nShortref = currentDtd().nShortref();
-  for (int i = 0; i < nShortref; i++) {
-    Char c = currentDtd().shortref(i)[0];
-    if (c == sd().execToInternal('B')) {
-      ISetIter<Char> setIter(*syntax().charSet(Syntax::blank));
-      Char min, max;
-      while (setIter.next(min, max))
-	map.setRange(min, max, 0);
-    }
-    else {
-      map.setChar(c, 0);
-      StringC str(syntax().generalSubstTable()->inverse(c));
-      for (size_t j = 0; j < str.size(); j++)
-	map.setChar(str[j], 0);
-    }
-  }
-  setNormalMap(map);
-}
-
-void Parser::addNeededShortrefs(Dtd &dtd, const Syntax &syntax)
-{
-  if (!syntax.hasShortrefs())
-    return;
-  PackedBoolean delimRelevant[Syntax::nDelimGeneral];
-  size_t i;
-  for (i = 0; i < Syntax::nDelimGeneral; i++)
-    delimRelevant[i] = 0;
-  ModeInfo iter(mconnetMode, sd());
-  TokenInfo ti;
-  while (iter.nextToken(&ti)) {
-    switch (ti.type) {
-    case TokenInfo::delimType:
-    case TokenInfo::delimDelimType:
-    case TokenInfo::delimSetType:
-      delimRelevant[ti.delim1] = 1;
-      break;
-    default:
-      break;
-    }
-  }
-
-  // PIO and NET are the only delimiters that are recognized in con
-  // mode without context.  If a short reference delimiter is
-  // identical to one of these delimiters, then we'll have an
-  // ambiguity.   We make such a short reference delimiter needed
-  // to ensure that this ambiguity is reported.
-  if (syntax.isValidShortref(syntax.delimGeneral(Syntax::dPIO)))
-    dtd.addNeededShortref(syntax.delimGeneral(Syntax::dPIO));
-  if (syntax.isValidShortref(syntax.delimGeneral(Syntax::dNET)))
-    dtd.addNeededShortref(syntax.delimGeneral(Syntax::dNET));
-
-  size_t nShortrefComplex = syntax.nDelimShortrefComplex();
-
-  // A short reference delimiter is needed if it is used or if it can
-  // contains some other shorter delimiter that is either a relevant general
-  // delimiter or a shortref delimiter that is used.
-
-  for (i = 0; i < nShortrefComplex; i++) {
-    size_t j;
-    for (j = 0; j < Syntax::nDelimGeneral; j++)
-      if (delimRelevant[j]
-	  && shortrefCanPreemptDelim(syntax.delimShortrefComplex(i),
-				     syntax.delimGeneral(j),
-				     0,
-				     syntax)) {
-	dtd.addNeededShortref(syntax.delimShortrefComplex(i));
-	break;
-      }
-    for (j = 0; j < dtd.nShortref(); j++)
-      if (shortrefCanPreemptDelim(syntax.delimShortrefComplex(i),
-				  dtd.shortref(j),
-				  1,
-				  syntax)) {
-	dtd.addNeededShortref(syntax.delimShortrefComplex(i));
-	break;
-      }
-  }
-  
-}
-
-Boolean Parser::shortrefCanPreemptDelim(const StringC &sr,
-					const StringC &d,
-					Boolean dIsSr,
-					const Syntax &syntax)
-{
-  Char letterB = sd().execToInternal('B');
-  for (size_t i = 0; i < sr.size(); i++) {
-    size_t j = 0;
-    size_t k = i;
-    for (;;) {
-      if (j == d.size())
-	return 1;
-      if (k >= sr.size())
-	break;
-      if (sr[k] == letterB) {
-	if (dIsSr && d[j] == letterB) {
-	  j++;
-	  k++;
-	}
-	else if (syntax.isB(d[j])) {
-	  j++;
-	  k++;
-	  if (k == sr.size() || sr[k] != letterB) {
-	    // it was the last B in the sequence
-	    while (j < d.size() && syntax.isB(d[j]))
-	      j++;
-	  }
-	}
-	else
-	  break;
-      }
-      else if (dIsSr && d[j] == letterB) {
-	if (syntax.isB(sr[k])) {
-	  ++j;
-	  ++k;
-	  if (j < d.size() && d[j] != letterB) {
-	    while (k < sr.size() && syntax.isB(sr[k]))
-	      k++;
-	  }
-	}
-	else
-	  break;
-      }
-      else if (d[j] == sr[k]) {
-	j++;
-	k++;
-      }
-      else
-	break;
-    }
-  }
-  return 0;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/parseParam.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1024 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "Parser.h"
-#include "Param.h"
-#include "Group.h"
-#include "Markup.h"
-#include "ParserMessages.h"
-#include "MessageArg.h"
-#include "TokenMessageArg.h"
-#include "token.h"
-#include "macros.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-Boolean Parser::parseParam(const AllowedParams &allow,
-			   unsigned declInputLevel,
-			   Param &parm)
-{
-  for (;;) {
-    Token token = getToken(allow.mainMode());
-    switch (token) {
-    case tokenUnrecognized:
-      if (reportNonSgmlCharacter())
-	break;
-      {
-	message(ParserMessages::markupDeclarationCharacter,
-		StringMessageArg(currentToken()),
-		AllowedParamsMessageArg(allow, syntaxPointer()));
-      }
-      return 0;
-    case tokenEe:
-      if (inputLevel() <= declInputLevel) {
-	message(ParserMessages::declarationLevel);
-	return 0;
-      }
-      if (currentMarkup())
-	currentMarkup()->addEntityEnd();
-      popInputStack();
-      break;
-    case tokenCom:
-      if (!parseComment(comMode))
-	return 0;
-      if (options().warnPsComment)
-	message(ParserMessages::psComment);
-      break;
-    case tokenDso:
-      if (!allow.dso()) {
-	paramInvalidToken(tokenDso, allow);
-	return 0;
-      }
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dDSO);
-      parm.type = Param::dso;
-      return 1;
-    case tokenGrpo:
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dGRPO);
-      switch (allow.group()) {
-      case Param::invalid:
-	paramInvalidToken(tokenGrpo, allow);
-	return 0;
-      case Param::modelGroup:
-	{
-	  ModelGroup *group;
-	  if (!parseModelGroup(1, declInputLevel, group, grpsufMode))
-	    return 0;
-	  parm.type = Param::modelGroup;
-	  parm.modelGroupPtr = group;
-	}
-	break;
-      case Param::nameGroup:
-	if (!parseNameGroup(declInputLevel, parm))
-	  return 0;
-	break;
-      case Param::nameTokenGroup:
-	if (!parseNameTokenGroup(declInputLevel, parm))
-	  return 0;
-	break;
-      default:
-	CANNOT_HAPPEN();
-      }
-      parm.type = allow.group();
-      return 1;
-    case tokenLita:
-    case tokenLit:
-      parm.type = allow.literal();
-      parm.lita = token == tokenLita;
-      switch (allow.literal()) {
-      case Param::invalid:
-	paramInvalidToken(token, allow);
-	return 0;
-      case Param::minimumLiteral:
-	if (!parseMinimumLiteral(parm.lita, parm.literalText))
-	  return 0;
-	break;
-      case Param::attributeValueLiteral:
-	if (!parseAttributeValueLiteral(parm.lita, parm.literalText))
-	  return 0;
-	break;
-      case Param::tokenizedAttributeValueLiteral:
-	if (!parseTokenizedAttributeValueLiteral(parm.lita, parm.literalText))
-	  return 0;
-	break;
-      case Param::systemIdentifier:
-	if (!parseSystemIdentifier(parm.lita, parm.literalText))
-	  return 0;
-	break;
-      case Param::paramLiteral:
-	if (!parseParameterLiteral(parm.lita, parm.literalText))
-	  return 0;
-	break;
-      }
-      if (currentMarkup())
-	currentMarkup()->addLiteral(parm.literalText);
-      return 1;
-    case tokenMdc:
-      if (!allow.mdc()) {
-	paramInvalidToken(tokenMdc, allow);
-	return 0;
-      }
-      if (inputLevel() > declInputLevel)
-	message(ParserMessages::parameterEntityNotEnded);
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dMDC);
-      parm.type = Param::mdc;
-      return 1;
-    case tokenMinus:
-      parm.type = Param::minus;
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dMINUS);
-      return 1;
-    case tokenMinusGrpo:
-      if (!allow.exclusions()) {
-	paramInvalidToken(tokenMinusGrpo, allow);
-	return 0;
-      }
-      if (currentMarkup()) {
-	currentMarkup()->addDelim(Syntax::dMINUS);
-	currentMarkup()->addDelim(Syntax::dGRPO);
-      }
-      parm.type = Param::exclusions;
-      return parseElementNameGroup(declInputLevel, parm);
-    case tokenPero:
-      parm.type = Param::pero;
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dPERO);
-      return 1;
-    case tokenPeroGrpo:
-      if (!inInstance())
-	message(ParserMessages::peroGrpoProlog);
-      // fall through
-    case tokenPeroNameStart:
-      {
-	if (inInstance()) {
-	  if (options().warnInstanceParamEntityRef)
-	    message(ParserMessages::instanceParamEntityRef);
-	}
-	else {
-	  if (options().warnInternalSubsetPsParamEntityRef && inputLevel() == 1)
-	    message(ParserMessages::internalSubsetPsParamEntityRef);
-	}
-	ConstPtr<Entity> entity;
-	Ptr<EntityOrigin> origin;
-	if (!parseEntityReference(1, token == tokenPeroGrpo, entity, origin))
-	  return 0;
-	if (!entity.isNull())
-	  entity->declReference(*this, origin);
-      }
-      break;
-    case tokenPlusGrpo:
-      if (!allow.inclusions()) {
-	paramInvalidToken(tokenPlusGrpo, allow);
-	return 0;
-      }
-      if (currentMarkup()) {
-	currentMarkup()->addDelim(Syntax::dPLUS);
-	currentMarkup()->addDelim(Syntax::dGRPO);
-      }
-      parm.type = Param::inclusions;
-      return parseElementNameGroup(declInputLevel, parm);
-    case tokenRni:
-      if (!allow.rni()) {
-	paramInvalidToken(tokenRni, allow);
-	return 0;
-      }
-      return parseIndicatedReservedName(allow, parm);
-    case tokenS:
-      if (currentMarkup())
-	currentMarkup()->addS(currentChar());
-      break;
-    case tokenNameStart:
-      switch (allow.nameStart()) {
-      case Param::invalid:
-	paramInvalidToken(tokenNameStart, allow);
-	return 0;
-      case Param::reservedName:
-	return parseReservedName(allow, parm);
-      case Param::name:
-	extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-	parm.type = Param::name;
-	getCurrentToken(syntax().generalSubstTable(), parm.token);
-	if (currentMarkup())
-	  currentMarkup()->addName(currentInput());
-	return 1;
-      case Param::entityName:
-	extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-	parm.type = Param::entityName;
-	getCurrentToken(syntax().entitySubstTable(), parm.token);
-	if (currentMarkup())
-	  currentMarkup()->addName(currentInput());
-	return 1;
-      case Param::paramEntityName:
-	extendNameToken(syntax().penamelen(),
-			ParserMessages::parameterEntityNameLength);
-	parm.type = Param::paramEntityName;
-	getCurrentToken(syntax().entitySubstTable(), parm.token);
-	if (currentMarkup())
-	  currentMarkup()->addName(currentInput());
-	return 1;
-      case Param::attributeValue:
-	return parseAttributeValueParam(parm);
-      }
-      break;
-    case tokenDigit:
-      switch (allow.digit()) {
-      case Param::invalid:
-	paramInvalidToken(tokenDigit, allow);
-	return 0;
-      case Param::number:
-	extendNumber(syntax().namelen(), ParserMessages::numberLength);
-	parm.type = Param::number;
-	getCurrentToken(parm.token);
-	if (currentMarkup())
-	  currentMarkup()->addNumber(currentInput());
-	return 1;
-      case Param::attributeValue:
-	return parseAttributeValueParam(parm);
-      }
-      break;
-    case tokenLcUcNmchar:
-      switch (allow.nmchar()) {
-      case Param::invalid:
-	paramInvalidToken(tokenLcUcNmchar, allow);
-	return 0;
-      case Param::attributeValue:
-	return parseAttributeValueParam(parm);
-      }
-      break;
-    default:
-      CANNOT_HAPPEN();
-    }
-  }
-}
-
-void Parser::paramInvalidToken(Token token, const AllowedParams &allow)
-{
-  message(ParserMessages::paramInvalidToken,
-	  TokenMessageArg(token, allow.mainMode(),
-			  syntaxPointer(), sdPointer()),
-	  AllowedParamsMessageArg(allow, syntaxPointer()));
-}
-
-Boolean Parser::parseGroupToken(const AllowedGroupTokens &allow,
-				unsigned nestingLevel,
-				unsigned declInputLevel,
-				unsigned groupInputLevel,
-				GroupToken &gt)
-{
-  for (;;) {
-    Token token = getToken(grpMode);
-    switch (token) {
-    case tokenEe:
-      if (inputLevel() <= groupInputLevel) {
-	message(ParserMessages::groupLevel);
-	if (inputLevel() <= declInputLevel)
-	  return 0;
-      }
-      else if (!sd().www())
-	message(ParserMessages::groupEntityEnd);
-      if (currentMarkup())
-	currentMarkup()->addEntityEnd();
-      popInputStack();
-      break;
-    case tokenPeroGrpo:
-      if (!inInstance())
-	message(ParserMessages::peroGrpoProlog);
-      // fall through
-    case tokenPeroNameStart:
-      {
-	if (options().warnInternalSubsetTsParamEntityRef && inputLevel() == 1)
-	  message(ParserMessages::internalSubsetTsParamEntityRef);
-	ConstPtr<Entity> entity;
-	Ptr<EntityOrigin> origin;
-	if (!parseEntityReference(1, token == tokenPeroGrpo, entity, origin))
-	  return 0;
-	if (!entity.isNull())
-	  entity->declReference(*this, origin);
-      }
-      break;
-    case tokenUnrecognized:
-      if (reportNonSgmlCharacter())
-	break;
-      {
-	message(ParserMessages::groupCharacter,
-		StringMessageArg(currentToken()),
-		AllowedGroupTokensMessageArg(allow, syntaxPointer()));
-      }
-      return 0;
-    case tokenDtgo:
-      if (!allow.groupToken(GroupToken::dataTagGroup)) {
-	groupTokenInvalidToken(tokenDtgo, allow);
-	return 0;
-      }
-      if (sd().datatag())
-	message(ParserMessages::datatagNotImplemented);
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dDTGO);
-      return parseDataTagGroup(nestingLevel + 1, declInputLevel, gt);
-    case tokenGrpo:
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dGRPO);
-      switch (allow.group()) {
-      case GroupToken::modelGroup:
-	{
-	  ModelGroup *modelGroup;
-	  if (!parseModelGroup(nestingLevel + 1, declInputLevel, modelGroup,
-			       grpMode))
-	    return 0;
-	  gt.model = modelGroup;
-	  gt.type = GroupToken::modelGroup;
-	  return 1;
-	}
-      case GroupToken::dataTagTemplateGroup:
-	return parseDataTagTemplateGroup(nestingLevel + 1, declInputLevel, gt);
-      default:
-	groupTokenInvalidToken(tokenGrpo, allow);
-	return 0;
-      }
-      break;
-    case tokenRni:
-      if (!allow.groupToken(GroupToken::pcdata)) {
-	groupTokenInvalidToken(tokenRni, allow);
-	return 0;
-      }
-      Syntax::ReservedName rn;
-      if (!getIndicatedReservedName(&rn))
-	return 0;
-      if (rn != Syntax::rPCDATA) {
-	StringC token(syntax().delimGeneral(Syntax::dRNI));
-	token += syntax().reservedName(Syntax::rPCDATA);
-	message(ParserMessages::invalidToken, StringMessageArg(token));
-	return 0;
-      }
-      gt.type = GroupToken::pcdata;
-      gt.contentToken = new PcdataToken;
-      return 1;
-    case tokenS:
-      if (currentMarkup()) {
-	extendS();
-	currentMarkup()->addS(currentInput());
-      }
-      break;
-    case tokenNameStart:
-      switch (allow.nameStart()) {
-      case GroupToken::elementToken:
-	{
-	  extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-	  gt.type = GroupToken::elementToken;
-	  StringC &buffer = nameBuffer();
-	  getCurrentToken(syntax().generalSubstTable(), buffer);
-	  if (currentMarkup())
-	    currentMarkup()->addName(currentInput());
-	  const ElementType *e = lookupCreateElement(buffer);
-	  ContentToken::OccurrenceIndicator oi
-	    = getOccurrenceIndicator(grpMode);
-	  gt.contentToken = new ElementToken(e, oi);
-	  return 1;
-	}
-      case GroupToken::name:
-      case GroupToken::nameToken:
-	extendNameToken(syntax().namelen(),
-			token == GroupToken::name
-			? ParserMessages::nameLength
-			: ParserMessages::nameTokenLength);
-	getCurrentToken(syntax().generalSubstTable(), gt.token);
-	gt.type = allow.nameStart();
-	if (currentMarkup()) {
-	  if (gt.type == GroupToken::nameToken)
-	    currentMarkup()->addNameToken(currentInput());
-	  else
-	    currentMarkup()->addName(currentInput());
-	}
-	return 1;
-      default:
-	groupTokenInvalidToken(tokenNameStart, allow);
-	return 0;
-      }
-    case tokenDigit:
-    case tokenLcUcNmchar:
-      if (!allow.groupToken(GroupToken::nameToken)) {
-	groupTokenInvalidToken(token, allow);
-	return 0;
-      }
-      extendNameToken(syntax().namelen(), ParserMessages::nameTokenLength);
-      getCurrentToken(syntax().generalSubstTable(), gt.token);
-      gt.type = GroupToken::nameToken;
-      if (currentMarkup())
-	currentMarkup()->addNameToken(currentInput());
-      return 1;
-    case tokenLit:
-    case tokenLita:
-      // parameter literal in data tag pattern
-      if (!allow.groupToken(GroupToken::dataTagLiteral)) {
-	groupTokenInvalidToken(token, allow);
-	return 0;
-      }
-      if (!parseDataTagParameterLiteral(token == tokenLita, gt.text))
-	return 0;
-      gt.type = GroupToken::dataTagLiteral;
-      if (currentMarkup())
-	currentMarkup()->addLiteral(gt.text);
-      return 1;
-    case tokenAnd:
-    case tokenSeq:
-    case tokenOr:
-    case tokenDtgc:
-    case tokenGrpc:
-    case tokenOpt:
-    case tokenPlus:
-    case tokenRep:
-      groupTokenInvalidToken(token, allow);
-      return 0;
-    }
-  }
-}
-
-
-void Parser::groupTokenInvalidToken(Token token, const AllowedGroupTokens &allow)
-{
-  message(ParserMessages::groupTokenInvalidToken,
-	  TokenMessageArg(token, grpMode, syntaxPointer(), sdPointer()),
-	  AllowedGroupTokensMessageArg(allow, syntaxPointer()));
-}
-
-
-Boolean Parser::parseGroupConnector(const AllowedGroupConnectors &allow,
-				    unsigned declInputLevel,
-				    unsigned groupInputLevel,
-				    GroupConnector &gc)
-{
-  for (;;) {
-    Token token = getToken(grpMode);
-    switch (token) {
-    case tokenEe:
-      if (inputLevel() <= groupInputLevel) {
-	message(ParserMessages::groupLevel);
-	if (inputLevel() <= declInputLevel)
-	  return 0;
-      }
-      if (currentMarkup())
-	currentMarkup()->addEntityEnd();
-      popInputStack();
-      break;
-    case tokenS:
-      if (currentMarkup()) {
-	extendS();
-	currentMarkup()->addS(currentInput());
-      }
-      break;
-    case tokenPeroGrpo:
-      if (inInstance()) {
-	message(ParserMessages::peroGrpoProlog);
-	break;
-      }
-      // fall through
-    case tokenPeroNameStart:
-      if (!sd().www())
-	message(ParserMessages::groupEntityReference);
-      else {
-	ConstPtr<Entity> entity;
-	Ptr<EntityOrigin> origin;
-	if (!parseEntityReference(1, token == tokenPeroGrpo, entity, origin))
-	  return 0;
-	if (!entity.isNull())
-	  entity->declReference(*this, origin);
-      }
-      break;
-    case tokenUnrecognized:
-      if (reportNonSgmlCharacter())
-	break;
-      {
-	message(ParserMessages::groupCharacter,
-		StringMessageArg(currentToken()),
-		AllowedGroupConnectorsMessageArg(allow, syntaxPointer()));
-      }
-      return 0;
-    case tokenAnd:
-      if (!allow.groupConnector(GroupConnector::andGC)) {
-	groupConnectorInvalidToken(tokenAnd, allow);
-	return 0;
-      }
-      gc.type = GroupConnector::andGC;
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dAND);
-      return 1;
-    case tokenSeq:
-      if (!allow.groupConnector(GroupConnector::seqGC)) {
-	groupConnectorInvalidToken(tokenSeq, allow);
-	return 0;
-      }
-      gc.type = GroupConnector::seqGC;
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dSEQ);
-      return 1;
-    case tokenOr:
-      if (!allow.groupConnector(GroupConnector::orGC)) {
-	groupConnectorInvalidToken(tokenOr, allow);
-	return 0;
-      }
-      gc.type = GroupConnector::orGC;
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dOR);
-      return 1;
-    case tokenDtgc:
-      if (!allow.groupConnector(GroupConnector::dtgcGC)) {
-	groupConnectorInvalidToken(tokenDtgc, allow);
-	return 0;
-      }
-      gc.type = GroupConnector::dtgcGC;
-      if (inputLevel() > groupInputLevel)
-	message(ParserMessages::groupParameterEntityNotEnded);
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dDTGC);
-      return 1;
-    case tokenGrpc:
-      if (!allow.groupConnector(GroupConnector::grpcGC)) {
-	groupConnectorInvalidToken(tokenGrpc, allow);
-	return 0;
-      }
-      gc.type = GroupConnector::grpcGC;
-      if (inputLevel() > groupInputLevel)
-	message(ParserMessages::groupParameterEntityNotEnded);
-      if (currentMarkup())
-	currentMarkup()->addDelim(Syntax::dGRPC);
-      return 1;
-    default:
-      groupConnectorInvalidToken(token, allow);
-      return 0;
-    }
-  }
-}
-
-void Parser::groupConnectorInvalidToken(Token token,
-					const AllowedGroupConnectors &allow)
-{
-  message(ParserMessages::connectorInvalidToken,
-	  TokenMessageArg(token, grpMode, syntaxPointer(), sdPointer()),
-	  AllowedGroupConnectorsMessageArg(allow, syntaxPointer()));
-}
-
-Boolean Parser::parseElementNameGroup(unsigned declInputLevel, Param &parm)
-{
-  if (!parseNameGroup(declInputLevel, parm))
-    return 0;
-  parm.elementVector.resize(parm.nameTokenVector.size());
-  for (size_t i = 0; i < parm.nameTokenVector.size(); i++)
-    parm.elementVector[i] = lookupCreateElement(parm.nameTokenVector[i].name);
-  return 1;
-}
-
-Boolean Parser::parseEntityReferenceNameGroup(Boolean &ignore)
-{
-  Param parm;
-  if (!parseNameGroup(inputLevel(), parm))
-    return 0;
-  if (inInstance()) {
-    for (size_t i = 0; i < parm.nameTokenVector.size(); i++) {
-      const Lpd *lpd = lookupLpd(parm.nameTokenVector[i].name).pointer();
-      if (lpd && lpd->active()) {
-	ignore = 0;
-	return 1;
-      }
-    }
-  }
-  ignore = 1;
-  return 1;
-}
-
-Boolean Parser::parseTagNameGroup(Boolean &active)
-{
-  Param parm;
-  if (!parseNameGroup(inputLevel(), parm))
-    return 0;
-  active = 0;
-  return 1;
-}
-
-Boolean Parser::parseNameGroup(unsigned declInputLevel, Param &parm)
-{
-  static AllowedGroupTokens allowName(GroupToken::name);
-  return parseGroup(allowName, declInputLevel, parm);
-}
-
-Boolean Parser::parseNameTokenGroup(unsigned declInputLevel, Param &parm)
-{
-  static AllowedGroupTokens allowNameToken(GroupToken::nameToken);
-  return parseGroup(allowNameToken, declInputLevel, parm);
-}
-
-static
-Boolean groupContains(const Vector<NameToken> &vec, const StringC &str)
-{
-  for (size_t i = 0; i < vec.size(); i++)
-    if (vec[i].name == str)
-      return 1;
-  return 0;
-}
-
-Boolean Parser::parseGroup(const AllowedGroupTokens &allowToken,
-			   unsigned declInputLevel,
-			   Param &parm)
-{
-  unsigned groupInputLevel = inputLevel();
-  int nDuplicates = 0;
-  Vector<NameToken> &vec = parm.nameTokenVector;
-  vec.clear();
-  GroupConnector::Type connector = GroupConnector::grpcGC;
-  GroupToken gt;
-  for (;;) {
-    if (!parseGroupToken(allowToken, 0, declInputLevel, groupInputLevel, gt))
-      return 0;
-    if (groupContains(vec, gt.token)) {
-      nDuplicates++;
-      message(ParserMessages::duplicateGroupToken,
-	      StringMessageArg(gt.token));
-    }
-    else {
-      vec.resize(vec.size() + 1);
-      gt.token.swap(vec.back().name);
-      getCurrentToken(vec.back().origName);
-      vec.back().loc = currentLocation();
-    }
-    GroupConnector gc;
-    static AllowedGroupConnectors allowAnyConnectorGrpc(GroupConnector::orGC,
-							GroupConnector::andGC,
-							GroupConnector::seqGC,
-							GroupConnector::grpcGC);
-			    
-    if (!parseGroupConnector(allowAnyConnectorGrpc, declInputLevel,
-			     groupInputLevel, gc))
-      return 0;
-    if (gc.type == GroupConnector::grpcGC)
-      break;
-    if (options().warnNameGroupNotOr) {
-      if (gc.type != GroupConnector::orGC)
-	message(ParserMessages::nameGroupNotOr);
-    }
-    else if (options().warnShould) {
-      if (connector == GroupConnector::grpcGC)
-	connector = gc.type;
-      else if (gc.type != connector) {
-	message(ParserMessages::mixedConnectors);
-	connector = gc.type;
-      }
-    }
-  }
-  if (nDuplicates + vec.size() > syntax().grpcnt())
-    message(ParserMessages::groupCount, NumberMessageArg(syntax().grpcnt()));
-  return 1;
-}
-
-Boolean Parser::parseDataTagGroup(unsigned nestingLevel,
-				  unsigned declInputLevel, GroupToken &result)
-{
-  if (nestingLevel - 1 == syntax().grplvl())
-    message(ParserMessages::grplvl, NumberMessageArg(syntax().grplvl()));
-  unsigned groupInputLevel = inputLevel();
-  GroupToken gt;
-  static AllowedGroupTokens allowName(GroupToken::name);
-  if (!parseGroupToken(allowName, nestingLevel, declInputLevel,
-		       groupInputLevel, gt))
-    return 0;
-  const ElementType *element = lookupCreateElement(gt.token);
-  GroupConnector gc;
-  static AllowedGroupConnectors allowSeq(GroupConnector::seqGC);
-  if (!parseGroupConnector(allowSeq, declInputLevel, groupInputLevel, gc))
-    return 0;
-  static AllowedGroupTokens
-    allowDataTagLiteralDataTagTemplateGroup(GroupToken::dataTagLiteral,
-					    GroupToken::dataTagTemplateGroup);
-  if (!parseGroupToken(allowDataTagLiteralDataTagTemplateGroup,
-		       nestingLevel,
-		       declInputLevel,
-		       groupInputLevel,
-		       gt))
-    return 0;
-  Vector<Text> templates;
-  if (gt.type == GroupToken::dataTagTemplateGroup)
-    gt.textVector.swap(templates);
-  else {
-    templates.resize(1);
-    gt.text.swap(templates[0]);
-  }
-  static AllowedGroupConnectors allowSeqDtgc(GroupConnector::seqGC,
-					     GroupConnector::dtgcGC);
-  if (!parseGroupConnector(allowSeqDtgc, declInputLevel, groupInputLevel, gc))
-    return 0;
-  NCVector<Owner<ContentToken> > vec(2);
-  vec[1] = new PcdataToken;
-  if (gc.type != GroupConnector::dtgcGC) {
-    static AllowedGroupTokens allowDataTagLiteral(GroupToken::dataTagLiteral);
-    if (!parseGroupToken(allowDataTagLiteral,
-			 nestingLevel,
-			 declInputLevel,
-			 groupInputLevel,
-			 gt))
-      return 0;
-    vec[0] = new DataTagElementToken(element, templates, gt.text);
-    static AllowedGroupConnectors allowDtgc(GroupConnector::dtgcGC);
-    if (!parseGroupConnector(allowDtgc, declInputLevel, groupInputLevel, gc))
-      return 0;
-  }
-  else
-    vec[0] = new DataTagElementToken(element, templates);
-  ContentToken::OccurrenceIndicator oi = getOccurrenceIndicator(grpMode);
-  result.contentToken = new DataTagGroup(vec, oi);
-  result.type = GroupToken::dataTagGroup;
-  return 1;
-}
-
-Boolean Parser::parseDataTagTemplateGroup(unsigned nestingLevel,
-					  unsigned declInputLevel,
-					  GroupToken &result)
-{
-  if (nestingLevel - 1 == syntax().grplvl())
-    message(ParserMessages::grplvl, NumberMessageArg(syntax().grplvl()));
-  unsigned groupInputLevel = inputLevel();
-  Vector<Text> &vec = result.textVector;
-  for (;;) {
-    GroupToken gt;
-    static AllowedGroupTokens allowDataTagLiteral(GroupToken::dataTagLiteral);
-    if (!parseGroupToken(allowDataTagLiteral,
-			 nestingLevel,
-			 declInputLevel,
-			 groupInputLevel,
-			 gt))
-      return 0;
-    if (vec.size() == syntax().grpcnt())
-      message(ParserMessages::groupCount, NumberMessageArg(syntax().grpcnt()));
-    vec.resize(vec.size() + 1);
-    gt.text.swap(vec.back());
-    static AllowedGroupConnectors allowOrGrpc(GroupConnector::orGC,
-					      GroupConnector::grpcGC);
-    GroupConnector gc;
-    if (!parseGroupConnector(allowOrGrpc, declInputLevel, groupInputLevel, gc))
-      return 0;
-    if (gc.type == GroupConnector::grpcGC)
-      break;
-  }
-  return 1;
-}
-
-Boolean Parser::parseModelGroup(unsigned nestingLevel, unsigned declInputLevel,
-				ModelGroup *&group, Mode oiMode)
-{
-  if (nestingLevel - 1 == syntax().grplvl())
-    message(ParserMessages::grplvl, NumberMessageArg(syntax().grplvl()));
-  unsigned groupInputLevel = inputLevel();
-  GroupToken gt;
-  NCVector<Owner<ContentToken> > tokenVector;
-  GroupConnector::Type connector = GroupConnector::grpcGC;
-  
-  static AllowedGroupTokens allowContentToken(GroupToken::pcdata,
-					      GroupToken::dataTagGroup,
-					      GroupToken::elementToken,
-					      GroupToken::modelGroup);
-  static AllowedGroupConnectors allowAnyConnectorGrpc(GroupConnector::orGC,
-						      GroupConnector::andGC,
-						      GroupConnector::seqGC,
-						      GroupConnector::grpcGC);
-			    
-  static AllowedGroupConnectors allowOrGrpc(GroupConnector::orGC,
-					    GroupConnector::grpcGC);
-  static AllowedGroupConnectors allowAndGrpc(GroupConnector::andGC,
-					     GroupConnector::grpcGC);
-  static AllowedGroupConnectors allowSeqGrpc(GroupConnector::seqGC,
-					     GroupConnector::grpcGC);
-  const AllowedGroupConnectors *connectorp = &allowAnyConnectorGrpc;
-
-  GroupConnector gc;
-  Boolean pcdataCheck = 0;
-  do {
-    if (!parseGroupToken(allowContentToken, nestingLevel, declInputLevel,
-			 groupInputLevel, gt))
-      return 0;
-    ContentToken *contentToken;
-    if (gt.type == GroupToken::modelGroup)
-      contentToken = gt.model.extract();
-    else
-      contentToken = gt.contentToken.extract();
-    if (tokenVector.size() == syntax().grpcnt())
-      message(ParserMessages::groupCount, NumberMessageArg(syntax().grpcnt()));
-    tokenVector.resize(tokenVector.size() + 1);
-    tokenVector.back() = contentToken;
-    if (!parseGroupConnector(*connectorp, declInputLevel, groupInputLevel, gc))
-      return 0;
-    if (options().warnMixedContentRepOrGroup && gt.type == GroupToken::pcdata) {
-      if (tokenVector.size() != 1)
-	message(ParserMessages::pcdataNotFirstInGroup);
-      else if (gc.type == GroupConnector::seqGC)
-	message(ParserMessages::pcdataInSeqGroup);
-      else
-	pcdataCheck = 1;
-      if (nestingLevel != 1)
-	message(ParserMessages::pcdataInNestedModelGroup);
-    }
-    else if (pcdataCheck) {
-      if (gt.type == GroupToken::modelGroup)
-	message(ParserMessages::pcdataGroupMemberModelGroup);
-      if (contentToken->occurrenceIndicator() != ContentToken::none)
-	message(ParserMessages::pcdataGroupMemberOccurrenceIndicator);
-    }
-    if (tokenVector.size() == 1) {
-      connector = gc.type;
-      switch (gc.type) {
-      case GroupConnector::orGC:
-	connectorp = &allowOrGrpc;
-	break;
-      case GroupConnector::seqGC:
-	connectorp = &allowSeqGrpc;
-	break;
-      case GroupConnector::andGC:
-	connectorp = &allowAndGrpc;
-	if (options().warnAndGroup)
-	  message(ParserMessages::andGroup);
-	break;
-      default:
-	break;
-      }
-    }
-  } while (gc.type != GroupConnector::grpcGC);
-  ContentToken::OccurrenceIndicator oi
-    = getOccurrenceIndicator(oiMode);
-  switch (connector) {
-  case GroupConnector::orGC:
-    group = new OrModelGroup(tokenVector, oi);
-    if (pcdataCheck && oi != ContentToken::rep)
-      message(ParserMessages::pcdataGroupNotRep);
-    break;
-  case GroupConnector::grpcGC:
-    if (pcdataCheck && oi != ContentToken::rep && oi != ContentToken::none)
-      message(ParserMessages::pcdataGroupNotRep);
-    // fall through
-  case GroupConnector::seqGC:
-    group = new SeqModelGroup(tokenVector, oi);
-    break;
-  case GroupConnector::andGC:
-    group = new AndModelGroup(tokenVector, oi);
-    break;
-  default:
-    break;
-  }
-  return 1;
-}
-
-ContentToken::OccurrenceIndicator
-Parser::getOccurrenceIndicator(Mode oiMode)
-{
-  Token token = getToken(oiMode);
-  switch (token) {
-  case tokenPlus:
-    if (currentMarkup())
-      currentMarkup()->addDelim(Syntax::dPLUS);
-    return ContentToken::plus;
-  case tokenOpt: 
-    if (currentMarkup())
-      currentMarkup()->addDelim(Syntax::dOPT);
-   return ContentToken::opt;
-  case tokenRep:
-    if (currentMarkup())
-      currentMarkup()->addDelim(Syntax::dREP);
-    return ContentToken::rep;
-  default:
-    currentInput()->ungetToken();
-    return ContentToken::none;
-  }
-}
-
-Boolean Parser::parseMinimumLiteral(Boolean lita, Text &text)
-{
-  return parseLiteral(lita ? mlitaMode : mlitMode, mlitMode,
-		      Syntax::referenceQuantity(Syntax::qLITLEN),
-		      ParserMessages::minimumLiteralLength,
-		      literalSingleSpace|literalMinimumData
-		      |(eventsWanted().wantPrologMarkup()
-			? literalDelimInfo
-			: 0),
-		      text);
-}
-
-Boolean Parser::parseSystemIdentifier(Boolean lita, Text &text)
-{
-  return parseLiteral(lita ? slitaMode : slitMode, slitMode, syntax().litlen(),
-		      ParserMessages::systemIdentifierLength,
-		      (eventsWanted().wantPrologMarkup()
-			? literalDelimInfo
-			: 0), text);
-}
-
-Boolean Parser::parseParameterLiteral(Boolean lita, Text &text)
-{
-  return parseLiteral(lita ? plitaMode : plitMode, pliteMode, syntax().litlen(), 
-		      ParserMessages::parameterLiteralLength,
-		      (eventsWanted().wantPrologMarkup()
-		       ? literalDelimInfo
-		       : 0),
-		      text);
-}
-
-Boolean Parser::parseDataTagParameterLiteral(Boolean lita, Text &text)
-{
-  return parseLiteral(lita ? plitaMode : plitMode, pliteMode,
-		      syntax().dtemplen(), 
-		      ParserMessages::dataTagPatternLiteralLength,
-		      literalDataTag
-		      | (eventsWanted().wantPrologMarkup()
-			 ? literalDelimInfo
-			 : 0),
-		      text);
-}
-
-Boolean Parser::parseIndicatedReservedName(const AllowedParams &allow,
-					   Param &parm)
-{
-  Syntax::ReservedName rn;
-  if (!getIndicatedReservedName(&rn))
-    return 0;
-  if (!allow.reservedName(rn)) {
-    message(ParserMessages::invalidReservedName,
-	    StringMessageArg(currentToken()));
-    return 0;
-  }
-  parm.type = Param::indicatedReservedName + rn;
-  return 1;
-}
-
-Boolean Parser::parseReservedName(const AllowedParams &allow,
-				  Param &parm)
-{
-  Syntax::ReservedName rn;
-  if (!getReservedName(&rn))
-    return 0;
-  if (!allow.reservedName(rn)) {
-    message(ParserMessages::invalidReservedName,
-	    StringMessageArg(syntax().reservedName(rn)));
-    return 0;
-  }
-  parm.type = Param::reservedName + rn;
-  return 1;
-}
-
-
-Boolean Parser::parseAttributeValueParam(Param &parm)
-{
-  extendNameToken(syntax().litlen() > syntax().normsep()
-		  ? syntax().litlen() - syntax().normsep()
-		  : 0,
-		  ParserMessages::attributeValueLength);
-  parm.type = Param::attributeValue;
-  Text text;
-  text.addChars(currentInput()->currentTokenStart(),
-		currentInput()->currentTokenLength(),
-		currentLocation());
-  text.swap(parm.literalText);
-  if (currentMarkup())
-    currentMarkup()->addAttributeValue(currentInput());
-  return 1;
-}
-
-Boolean Parser::getIndicatedReservedName(Syntax::ReservedName *result)
-{
-  if (currentMarkup())
-    currentMarkup()->addDelim(Syntax::dRNI);
-  InputSource *in = currentInput();
-  in->startToken();
-  if (!syntax().isNameStartCharacter(in->tokenChar(messenger()))) {
-    message(ParserMessages::rniNameStart);
-    return 0;
-  }
-  extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-  StringC &buffer = nameBuffer();
-  getCurrentToken(syntax().generalSubstTable(), buffer);
-  if (!syntax().lookupReservedName(buffer, result)) {
-    message(ParserMessages::noSuchReservedName, StringMessageArg(buffer));
-    return 0;
-  }
-  if (currentMarkup())
-    currentMarkup()->addReservedName(*result, currentInput());
-  return 1;
-}
-
-Boolean Parser::getReservedName(Syntax::ReservedName *result)
-{
-  extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-  StringC &buffer = nameBuffer();
-  getCurrentToken(syntax().generalSubstTable(), buffer);
-  if (!syntax().lookupReservedName(buffer, result)) {
-    message(ParserMessages::noSuchReservedName, StringMessageArg(buffer));
-    return 0;
-  }
-  if (currentMarkup())
-    currentMarkup()->addReservedName(*result, currentInput());
-  return 1;
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/parseSd.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3435 +0,0 @@
-// Copyright (c) 1994, 1995, 1997 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-#include "Parser.h"
-#include "macros.h"
-#include "SdFormalError.h"
-#include "MessageBuilder.h"
-#include "ParserMessages.h"
-#include "MessageArg.h"
-#include "CharsetRegistry.h"
-#include "ISetIter.h"
-#include "token.h"
-#include "TokenMessageArg.h"
-#include "constant.h"
-#include "SdText.h"
-#include "NumericCharRefOrigin.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class CharSwitcher {
-public:
-  CharSwitcher();
-  void addSwitch(WideChar from, WideChar to);
-  SyntaxChar subst(WideChar c);
-  size_t nSwitches() const;
-  Boolean switchUsed(size_t i) const;
-  WideChar switchFrom(size_t i) const;
-  WideChar switchTo(size_t i) const;
-private:
-  Vector<PackedBoolean> switchUsed_;
-  Vector<WideChar> switches_;
-};
-
-// Information about the SGML declaration being built.
-
-struct SdBuilder {
-  SdBuilder();
-  void addFormalError(const Location &, const MessageType1 &, const StringC &);
-  Ptr<Sd> sd;
-  Ptr<Syntax> syntax;
-  CharsetDecl syntaxCharsetDecl;
-  CharsetInfo syntaxCharset;
-  CharSwitcher switcher;
-  Boolean externalSyntax;
-  Boolean enr;
-  Boolean www;
-  Boolean valid;
-  Boolean external;
-  IList<SdFormalError> formalErrorList;
-};
-
-class CharsetMessageArg : public MessageArg {
-public:
-  CharsetMessageArg(const ISet<WideChar> &set);
-  MessageArg *copy() const;
-  void append(MessageBuilder &) const;
-private:
-  ISet<WideChar> set_;
-};
-
-struct SdParam {
-  typedef unsigned char Type;
-  enum {
-    invalid,
-    eE,
-    minimumLiteral,
-    mdc,
-    minus,
-    number,
-    capacityName,
-    name,
-    paramLiteral,
-    systemIdentifier,
-    generalDelimiterName,
-    referenceReservedName,
-    quantityName,
-    reservedName		// Sd::ReservedName is added to this
-  };
-  Type type;
-  StringC token;
-  Text literalText;
-  String<SyntaxChar> paramLiteralText;
-  union {
-    Number n;
-    Sd::Capacity capacityIndex;
-    Syntax::Quantity quantityIndex;
-    Syntax::ReservedName reservedNameIndex;
-    Syntax::DelimGeneral delimGeneralIndex;
-  };
-};
-
-class AllowedSdParams {
-public:
-  AllowedSdParams(SdParam::Type,
-		  SdParam::Type = SdParam::invalid,
-		  SdParam::Type = SdParam::invalid,
-		  SdParam::Type = SdParam::invalid,
-		  SdParam::Type = SdParam::invalid,
-		  SdParam::Type = SdParam::invalid);
-  Boolean param(SdParam::Type) const;
-  SdParam::Type get(int i) const;
-private:
-  enum { maxAllow = 6 };
-  SdParam::Type allow_[maxAllow];
-};
-
-class AllowedSdParamsMessageArg : public MessageArg {
-public:
-  AllowedSdParamsMessageArg(const AllowedSdParams &allow,
-			    const ConstPtr<Sd> &sd);
-  MessageArg *copy() const;
-  void append(MessageBuilder &) const;
-private:
-  AllowedSdParams allow_;
-  ConstPtr<Sd> sd_;
-};
-
-struct StandardSyntaxSpec {
-  struct AddedFunction {
-    const char *name;
-    Syntax::FunctionClass functionClass;
-    SyntaxChar syntaxChar;
-  };
-  const AddedFunction *addedFunction;
-  size_t nAddedFunction;
-  Boolean shortref;
-};
-
-static StandardSyntaxSpec::AddedFunction coreFunctions[] = {
-  { "TAB", Syntax::cSEPCHAR, 9 },
-};
-
-static StandardSyntaxSpec coreSyntax = {
-  coreFunctions, SIZEOF(coreFunctions), 0
-};
-
-static StandardSyntaxSpec refSyntax = {
-  coreFunctions, SIZEOF(coreFunctions), 1
-};
-
-void Parser::doInit()
-{
-  if (cancelled()) {
-    allDone();
-    return;
-  }
-  // When document entity doesn't exist, don't give any errors
-  // other than the cannot open error.
-  if (currentInput()->get(messenger()) == InputSource::eE) {
-    if (currentInput()->accessError()) {
-      allDone();
-      return;
-    }
-  }
-  else
-    currentInput()->ungetToken();
-  const CharsetInfo &initCharset = sd().internalCharset();
-  ISet<WideChar> missing;
-  findMissingMinimum(initCharset, missing);
-  if (!missing.isEmpty()) {
-    message(ParserMessages::sdMissingCharacters, CharsetMessageArg(missing));
-    giveUp();
-    return;
-  }
-  Boolean found = 0;
-  StringC systemId;
-  if (scanForSgmlDecl(initCharset)) {
-    if (options().warnExplicitSgmlDecl)
-      message(ParserMessages::explicitSgmlDecl);
-    found = 1;
-  }
-  else {
-    currentInput()->ungetToken();
-    if (entityCatalog().sgmlDecl(initCharset, messenger(), systemId)) {
-      InputSource *in = entityManager().open(systemId,
-					     sd().docCharset(),
-					     InputSourceOrigin::make(),
-					     0,
-					     messenger());
-      if (in) {
-	pushInput(in);
-	if (scanForSgmlDecl(initCharset))
-	  found = 1;
-	else {
-	  message(ParserMessages::badDefaultSgmlDecl);
-	  popInputStack();
-	}
-      }
-    }
-  }
-  if (found) {
-    if (startMarkup(eventsWanted().wantPrologMarkup(), currentLocation())) {
-      size_t nS = currentInput()->currentTokenLength() - 6;
-      for (size_t i = 0; i < nS; i++)
-	currentMarkup()->addS(currentInput()->currentTokenStart()[i]);
-      currentMarkup()->addDelim(Syntax::dMDO);
-      currentMarkup()->addSdReservedName(Sd::rSGML,
-					currentInput()->currentTokenStart()
-					+ (currentInput()->currentTokenLength() - 4),
-					4);
-    }
-    Syntax *syntaxp = new Syntax(sd());
-    CharSwitcher switcher;
-    if (!setStandardSyntax(*syntaxp, refSyntax, sd().internalCharset(), switcher, 0)) {
-      giveUp();
-      return;
-    }
-    syntaxp->implySgmlChar(sd());
-    setSyntax(syntaxp);
-    compileSdModes();
-    ConstPtr<Sd> refSd(sdPointer());
-    ConstPtr<Syntax> refSyntax(syntaxPointer());
-    if (!parseSgmlDecl()) {
-      giveUp();
-      return;
-    }
-    // queue an SGML declaration event
-    eventHandler().sgmlDecl(new (eventAllocator())
-			    SgmlDeclEvent(sdPointer(),
-					  syntaxPointer(),
-					  instanceSyntaxPointer(),
-					  refSd,
-					  refSyntax,
-					  currentInput()->nextIndex(),
-					  systemId,
-					  markupLocation(),
-					  currentMarkup()));
-    if (inputLevel() == 2) {
-      // FIXME perhaps check for junk after SGML declaration
-      popInputStack();
-    }
-  }
-  else {
-    if (!implySgmlDecl()) {
-      giveUp();
-      return;
-    }
-    currentInput()->willNotSetDocCharset();
-    // queue an SGML declaration event
-    eventHandler().sgmlDecl(new (eventAllocator())
-			    SgmlDeclEvent(sdPointer(),
-					  syntaxPointer()));
-  }
-						      
-  // Now we have sd and syntax set up, prepare to parse the prolog.
-  compilePrologModes();
-  setPhase(prologPhase);
-}
-
-Boolean Parser::implySgmlDecl()
-{
-  Syntax *syntaxp = new Syntax(sd());
-  const StandardSyntaxSpec *spec;
-  if (options().shortref)
-    spec = &refSyntax;
-  else
-    spec = &coreSyntax;
-  CharSwitcher switcher;
-  if (!setStandardSyntax(*syntaxp, *spec, sd().internalCharset(), switcher, 0))
-    return 0;
-  syntaxp->implySgmlChar(sd());
-  for (int i = 0; i < Syntax::nQuantity; i++)
-    syntaxp->setQuantity(i, options().quantity[i]);
-  setSyntax(syntaxp);
-  return 1;
-}
-
-Boolean Parser::setStandardSyntax(Syntax &syn,
-				  const StandardSyntaxSpec &spec,
-				  const CharsetInfo &internalCharset,
-				  CharSwitcher &switcher,
-				  Boolean www)
-{
-  static UnivCharsetDesc::Range syntaxCharsetRanges[] = {
-    { 0, 128, 0 },
-  };
-  static UnivCharsetDesc syntaxCharsetDesc(syntaxCharsetRanges,
-					   SIZEOF(syntaxCharsetRanges));
-  static CharsetInfo syntaxCharset(syntaxCharsetDesc);
-
-  Boolean valid = 1;
-  if (!checkSwitches(switcher, syntaxCharset))
-    valid = 0;
-  size_t i;
-  for (i = 0; i < switcher.nSwitches(); i++)
-    if (switcher.switchTo(i) >= 128)
-      message(ParserMessages::switchNotInCharset,
-	      NumberMessageArg(switcher.switchTo(i)));
-  static const Char shunchar[] = {
-    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-    16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-    127, 255
-    };
-  
-  for (i = 0; i < SIZEOF(shunchar); i++)
-    syn.addShunchar(shunchar[i]);
-  syn.setShuncharControls();
-  static Syntax::StandardFunction standardFunctions[3] = {
-    Syntax::fRE, Syntax::fRS, Syntax::fSPACE
-  };
-  static SyntaxChar functionChars[3] = { 13, 10, 32 };
-  for (i = 0; i < 3; i++) {
-    Char docChar;
-    if (translateSyntax(switcher,
-			syntaxCharset,
-			internalCharset,
-			functionChars[i],
-			docChar)
-	&& checkNotFunction(syn, docChar))
-      syn.setStandardFunction(standardFunctions[i], docChar);
-    else
-      valid = 0;
-  }
-  for (i = 0; i < spec.nAddedFunction; i++) {
-    Char docChar;
-    if (translateSyntax(switcher,
-			syntaxCharset,
-			internalCharset,
-			spec.addedFunction[i].syntaxChar,
-			docChar)
-	&& checkNotFunction(syn, docChar))
-      syn.addFunctionChar(internalCharset.execToDesc(spec.addedFunction[i].name),
-			  spec.addedFunction[i].functionClass,
-			  docChar);
-    else
-      valid = 0;
-  }
-  
-  static SyntaxChar nameChars[2] = { 45, 46 }; // '-' '.'
-  ISet<Char> nameCharSet;
-  for (i = 0; i < 2; i++) {
-    Char docChar;
-    if (translateSyntax(switcher,
-			syntaxCharset,
-			internalCharset,
-			nameChars[i],
-			docChar))
-	nameCharSet.add(docChar);
-    else
-      valid = 0;
-  }
-  if (!checkNmchars(nameCharSet, syn))
-    valid = 0;
-  else
-    syn.addNameCharacters(nameCharSet);
-  syn.setNamecaseGeneral(1);
-  syn.setNamecaseEntity(0);
-  if (!setRefDelimGeneral(syn, syntaxCharset, internalCharset, switcher))
-    valid = 0;
-  setRefNames(syn, internalCharset, www);
-  syn.enterStandardFunctionNames();
-  if (spec.shortref
-      && !addRefDelimShortref(syn, syntaxCharset, internalCharset, switcher))
-    valid = 0;
-  return valid;
-}
-
-Boolean Parser::setRefDelimGeneral(Syntax &syntax,
-				   const CharsetInfo &syntaxCharset,
-				   const CharsetInfo &internalCharset,
-				   CharSwitcher &switcher)
-{
-  // Column 3 from Figure 3
-  static const char delims[][2] = {
-    { 38 },
-    { 45, 45 },
-    { 38, 35 },
-    { 93 },
-    { 91 },
-    { 93 },
-    { 91 },
-    { 38 },
-    { 60, 47 },
-    { 41 },
-    { 40 },
-    { 0 }, // HCRO
-    { 34 },
-    { 39 },
-    { 62 },
-    { 60, 33 },
-    { 45 },
-    { 93, 93 },
-    { 47 },
-    { 47 }, // NESTC
-    { 63 },
-    { 124 },
-    { 37 },
-    { 62 },
-    { 60, 63 },
-    { 43 },
-    { 59 },
-    { 42 },
-    { 35 },
-    { 44 },
-    { 60 },
-    { 62 },
-    { 61 },
-  };
-  Boolean valid = 1;
-  ISet<WideChar> missing;
-  for (int i = 0; i < Syntax::nDelimGeneral; i++)
-    if (syntax.delimGeneral(i).size() == 0) {
-      StringC delim;
-      size_t j;
-      for (j = 0; j < 2 && delims[i][j] != '\0'; j++) {
-	UnivChar univChar = translateUniv(delims[i][j], switcher,
-					  syntaxCharset);
-	Char c;
-	if (univToDescCheck(internalCharset, univChar, c))
-	  delim += c;
-	else {
-	  missing += univChar;
-	  valid = 0;
-	}
-      }
-      if (delim.size() == j) {
-	if (checkGeneralDelim(syntax, delim))
-	  syntax.setDelimGeneral(i, delim);
-	else
-	  valid = 0;
-      }
-    }
-  if (!missing.isEmpty())
-    message(ParserMessages::missingSignificant646, CharsetMessageArg(missing));
-  return valid;
-}
-
-void Parser::setRefNames(Syntax &syntax, const CharsetInfo &internalCharset,
-			 Boolean www)
-{
-  static const char *const referenceNames[] = {
-    "ALL",
-    "ANY",
-    "ATTLIST",
-    "CDATA",
-    "CONREF",
-    "CURRENT",
-    "DATA",
-    "DEFAULT",
-    "DOCTYPE",
-    "ELEMENT",
-    "EMPTY",
-    "ENDTAG",
-    "ENTITIES",
-    "ENTITY",
-    "FIXED",
-    "ID",
-    "IDLINK",
-    "IDREF",
-    "IDREFS",
-    "IGNORE",
-    "IMPLICIT",
-    "IMPLIED",
-    "INCLUDE",
-    "INITIAL",
-    "LINK",
-    "LINKTYPE",
-    "MD",
-    "MS",
-    "NAME",
-    "NAMES",
-    "NDATA",
-    "NMTOKEN",
-    "NMTOKENS",
-    "NOTATION",
-    "NUMBER",
-    "NUMBERS",
-    "NUTOKEN",
-    "NUTOKENS",
-    "O",
-    "PCDATA",
-    "PI",
-    "POSTLINK",
-    "PUBLIC",
-    "RCDATA",
-    "RE",
-    "REQUIRED",
-    "RESTORE",
-    "RS",
-    "SDATA",
-    "SHORTREF",
-    "SIMPLE",
-    "SPACE",
-    "STARTTAG",
-    "SUBDOC",
-    "SYSTEM",
-    "TEMP",
-    "USELINK",
-    "USEMAP"
-    };
-  for (int i = 0; i < Syntax::nNames; i++) {
-    switch (i) {
-    case Syntax::rDATA:
-    case Syntax::rIMPLICIT:
-      if (!www)
-	break;
-      // fall through
-    case Syntax::rALL:
-      if (!www && options().errorAfdr)
-	break;
-      // fall through
-    default:
-      {
-	StringC docName(internalCharset.execToDesc(referenceNames[i]));
-	Syntax::ReservedName tem;
-        if (syntax.lookupReservedName(docName, &tem))
-	  message(ParserMessages::nameReferenceReservedName,
-	          StringMessageArg(docName));
-        if (syntax.reservedName(Syntax::ReservedName(i)).size() == 0)
-	  syntax.setName(i, docName);
-        break;
-      }
-    }
-  }
-}
-
-Boolean Parser::addRefDelimShortref(Syntax &syntax,
-				    const CharsetInfo &syntaxCharset,
-				    const CharsetInfo &internalCharset,
-				    CharSwitcher &switcher)
-{
-  // Column 2 from Figure 4
-  static const char delimShortref[][3] = {
-    { 9 },
-    { 13 },
-    { 10 },
-    { 10, 66 },
-    { 10, 13 },
-    { 10, 66, 13 },
-    { 66, 13 },
-    { 32 },
-    { 66, 66 },
-    { 34 },
-    { 35 },
-    { 37 },
-    { 39 },
-    { 40 },
-    { 41 },
-    { 42 },
-    { 43 },
-    { 44 },
-    { 45 },
-    { 45, 45 },
-    { 58 },
-    { 59 },
-    { 61 },
-    { 64 },
-    { 91 },
-    { 93 },
-    { 94 },
-    { 95 },
-    { 123 },
-    { 124 },
-    { 125 },
-    { 126 },
-  };
-  ISet<WideChar> missing;
-
-  for (size_t i = 0; i < SIZEOF(delimShortref); i++) {
-    StringC delim;
-    
-    size_t j;
-    for (j = 0; j < 3 && delimShortref[i][j] != '\0'; j++) {
-      Char c;
-      UnivChar univChar = translateUniv(delimShortref[i][j], switcher,
-					syntaxCharset);
-      if (univToDescCheck(internalCharset, univChar, c))
-	delim += c;
-      else
-	missing += univChar;
-    }
-    if (delim.size() == j) {
-      if (switcher.nSwitches() > 0 && syntax.isValidShortref(delim))
-	message(ParserMessages::duplicateDelimShortref,
-		StringMessageArg(delim));
-      else
-	syntax.addDelimShortref(delim, internalCharset);
-    }
-  }
-  if (!missing.isEmpty())
-    message(ParserMessages::missingSignificant646, CharsetMessageArg(missing));
-  return 1;
-}
-
-// Determine whether the document starts with an SGML declaration.
-// There is no current syntax at this point.
-
-Boolean Parser::scanForSgmlDecl(const CharsetInfo &initCharset)
-{
-  Char rs;
-  if (!univToDescCheck(initCharset, UnivCharsetDesc::rs, rs))
-    return 0;
-  Char re;
-  if (!univToDescCheck(initCharset, UnivCharsetDesc::re, re))
-    return 0;
-  Char space;
-  if (!univToDescCheck(initCharset, UnivCharsetDesc::space, space))
-    return 0;
-  Char tab;
-  if (!univToDescCheck(initCharset, UnivCharsetDesc::tab, tab))
-    return 0;
-  InputSource *in = currentInput();
-  Xchar c = in->get(messenger());
-  while (c == rs || c == space || c == re || c == tab)
-    c = in->tokenChar(messenger());
-  if (c != initCharset.execToDesc('<'))
-    return 0;
-  if (in->tokenChar(messenger()) != initCharset.execToDesc('!'))
-    return 0;
-  c = in->tokenChar(messenger());
-  if (c != initCharset.execToDesc('S')
-      && c != initCharset.execToDesc('s'))
-    return 0;
-  c = in->tokenChar(messenger());
-  if (c != initCharset.execToDesc('G')
-      && c != initCharset.execToDesc('g'))
-    return 0;
-  c = in->tokenChar(messenger());
-  if (c != initCharset.execToDesc('M')
-      && c != initCharset.execToDesc('m'))
-    return 0;
-  c = in->tokenChar(messenger());
-  if (c != initCharset.execToDesc('L')
-      && c != initCharset.execToDesc('l'))
-    return 0;
-  c = in->tokenChar(messenger());
-  // Don't recognize this if SGML is followed by a name character.
-  if (c == InputSource::eE)
-    return 1;
-  in->endToken(in->currentTokenLength() - 1);
-  if (c == initCharset.execToDesc('-'))
-    return 0;
-  if (c == initCharset.execToDesc('.'))
-    return 0;
-  UnivChar univ;
-  if (!initCharset.descToUniv(c, univ)) 
-    return 1;
-  if (UnivCharsetDesc::a <= univ && univ < UnivCharsetDesc::a + 26)
-    return 0;
-  if (UnivCharsetDesc::A <= univ && univ < UnivCharsetDesc::A + 26)
-    return 0;
-  if (UnivCharsetDesc::zero <= univ && univ < UnivCharsetDesc::zero + 10)
-    return 0;
-  return 1;
-}
-	    
-void Parser::findMissingMinimum(const CharsetInfo &charset,
-				ISet<WideChar> &missing)
-{
-  Char to;
-  size_t i;
-  for (i = 0; i < 26; i++) {
-    if (!univToDescCheck(charset, UnivCharsetDesc::A + i, to))
-      missing += UnivCharsetDesc::A + i;
-    if (!univToDescCheck(charset, UnivCharsetDesc::a + i, to))
-      missing += UnivCharsetDesc::a + i;
-  }
-  for (i = 0; i < 10; i++) {
-    Char to;
-    if (!univToDescCheck(charset, UnivCharsetDesc::zero + i, to))
-      missing += UnivCharsetDesc::zero + i;
-  }
-  static const UnivChar special[] = {
-    39, 40, 41, 43, 44, 45, 46, 47, 58, 61, 63
-    };
-
-  for (i = 0; i < SIZEOF(special); i++)
-    if (!univToDescCheck(charset, special[i], to))
-      missing += special[i];
-}
-
-
-Boolean Parser::parseSgmlDecl()
-{
-  SdParam parm;
-  SdBuilder sdBuilder;
-
-  if (!parseSdParam(AllowedSdParams(SdParam::minimumLiteral, SdParam::name), parm))
-    return 0;
-  if (parm.type == SdParam::name) {
-    sdBuilder.external = 1;
-    Location loc(currentLocation());
-    StringC name;
-    parm.token.swap(name);
-    ExternalId externalId;
-    if (!sdParseSgmlDeclRef(sdBuilder, parm, externalId))
-      return 0;
-    ExternalEntity *entity
-      = new ExternalTextEntity(name, EntityDecl::sgml, loc, externalId);
-    ConstPtr<Entity> entityPtr(entity);
-    entity->generateSystemId(*this);
-    if (entity->externalId().effectiveSystemId().size() == 0) {
-      message(ParserMessages::cannotGenerateSystemIdSgml);
-      return 0;
-    }
-    Ptr<EntityOrigin> origin(EntityOrigin::make(internalAllocator(), entityPtr, loc));
-    if (currentMarkup())
-      currentMarkup()->addEntityStart(origin);
-    pushInput(entityManager().open(entity->externalId().effectiveSystemId(),
-		                   sd().docCharset(),
-				   origin.pointer(),
-				   0,
-				   messenger()));
-    if (!parseSdParam(AllowedSdParams(SdParam::minimumLiteral), parm))
-      return 0;
-  }
-  StringC version(sd().execToInternal("ISO 8879:1986"));
-  StringC enrVersion(sd().execToInternal("ISO 8879:1986 (ENR)"));
-  StringC wwwVersion(sd().execToInternal("ISO 8879:1986 (WWW)"));
-  if (parm.literalText.string() == enrVersion)
-    sdBuilder.enr = 1;
-  else if (parm.literalText.string() == wwwVersion) {
-    sdBuilder.enr = 1;
-    sdBuilder.www = 1;
-  }
-  else if (parm.literalText.string() != version)
-    message(ParserMessages::standardVersion,
-	    StringMessageArg(parm.literalText.string()));
-  if (sdBuilder.external && !sdBuilder.www)
-    message(ParserMessages::sgmlDeclRefRequiresWww);
-  sdBuilder.sd = new Sd(entityManagerPtr());
-  if (sdBuilder.www)
-    sdBuilder.sd->setWww(1);
-  typedef Boolean (Parser::*SdParser)(SdBuilder &, SdParam &);
-  static SdParser parsers[] = {
-    &Parser::sdParseDocumentCharset,
-    &Parser::sdParseCapacity,
-    &Parser::sdParseScope,
-    &Parser::sdParseSyntax,
-    &Parser::sdParseFeatures,
-    &Parser::sdParseAppinfo,
-    &Parser::sdParseSeealso,
-  };
-  for (size_t i = 0; i < SIZEOF(parsers); i++) {
-    if (!(this->*(parsers[i]))(sdBuilder, parm))
-      return 0;
-    if (!sdBuilder.valid)
-      return 0;
-  }
-  setSdOverrides(*sdBuilder.sd);
-  if (sdBuilder.sd->formal()) {
-    while (!sdBuilder.formalErrorList.empty()) {
-      SdFormalError *p = sdBuilder.formalErrorList.get();
-      ParserState *state = this; // work around lcc 3.0 bug
-      p->send(*state);
-      delete p;
-    }
-  }
-  setSd(sdBuilder.sd.pointer());
-  currentInput()->setDocCharset(sd().docCharset(), entityManager().charset());
-  if (sdBuilder.sd->scopeInstance()) {
-    Syntax *proSyntax = new Syntax(sd());
-    CharSwitcher switcher;
-    setStandardSyntax(*proSyntax, refSyntax, sd().internalCharset(), switcher, sdBuilder.www);
-    proSyntax->setSgmlChar(*sdBuilder.syntax->charSet(Syntax::sgmlChar));
-    ISet<WideChar> invalidSgmlChar;
-    proSyntax->checkSgmlChar(*sdBuilder.sd,
-			     sdBuilder.syntax.pointer(),
-			     1,  // get results in document character set
-			     invalidSgmlChar);
-    sdBuilder.syntax->checkSgmlChar(*sdBuilder.sd,
-				    proSyntax,
-				    1, // get results in document character set
-				    invalidSgmlChar);
-    if (!invalidSgmlChar.isEmpty())
-      message(ParserMessages::invalidSgmlChar, CharsetMessageArg(invalidSgmlChar));
-    setSyntaxes(proSyntax, sdBuilder.syntax.pointer());
-  }
-  else
-    setSyntax(sdBuilder.syntax.pointer());
-  if (syntax().multicode())
-    currentInput()->setMarkupScanTable(syntax().markupScanTable());
-  return 1;
-}
-
-Boolean Parser::sdParseSgmlDeclRef(SdBuilder &sdBuilder, SdParam &parm,
-				   ExternalId &id)
-{
-  id.setLocation(currentLocation());
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rSYSTEM,
-                                    SdParam::reservedName + Sd::rPUBLIC,
-				    SdParam::mdc),
-		    parm))
-    return 0;
-  if (parm.type == SdParam::mdc)
-    return 1;
-  if (parm.type == SdParam::reservedName + Sd::rPUBLIC) {
-    if (!parseSdParam(AllowedSdParams(SdParam::minimumLiteral), parm))
-      return 0;
-    const MessageType1 *err;
-    PublicId::TextClass textClass;
-    if (!id.setPublic(parm.literalText, sd().internalCharset(), syntax().space(), err))
-      sdBuilder.addFormalError(currentLocation(), *err, id.publicId()->string());
-    else if (id.publicId()->getTextClass(textClass)
-	     && textClass != PublicId::SD)
-      sdBuilder.addFormalError(currentLocation(),
-			       ParserMessages::sdTextClass,
-			       id.publicId()->string());
-  }
-  if (!parseSdParam(AllowedSdParams(SdParam::systemIdentifier, SdParam::mdc), parm))
-    return 0;
-  if (parm.type == SdParam::mdc)
-    return 1;
-  id.setSystem(parm.literalText);
-  return parseSdParam(AllowedSdParams(SdParam::mdc), parm);
-}
-
-Boolean Parser::sdParseDocumentCharset(SdBuilder &sdBuilder, SdParam &parm)
-{
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rCHARSET),
-		    parm))
-    return 0;
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rBASESET),
-		    parm))
-    return 0;
-  CharsetDecl decl;
-  UnivCharsetDesc desc;
-  if (!sdParseCharset(sdBuilder, parm, 1, decl, desc))
-    return 0;
-  ISet<WideChar> missing;
-  findMissingMinimum(desc, missing);
-  if (!missing.isEmpty()) {
-    message(ParserMessages::missingMinimumChars,
-	    CharsetMessageArg(missing));
-    return 0;
-  }
-  ISet<Char> sgmlChar;
-  decl.usedSet(sgmlChar);
-  sdBuilder.sd->setDocCharsetDesc(desc);
-  sdBuilder.sd->setDocCharsetDecl(decl);
-  sdBuilder.syntax = new Syntax(*sdBuilder.sd);
-  if (sd().internalCharsetIsDocCharset())
-    sdBuilder.syntax->setSgmlChar(sgmlChar);
-  else {
-    ISet<Char> internalSgmlChar;
-    translateDocSet(sdBuilder.sd->docCharset(), sdBuilder.sd->internalCharset(),
-                    sgmlChar, internalSgmlChar);
-    sdBuilder.syntax->setSgmlChar(internalSgmlChar);
-  }
-  return 1;
-}
-
-void Parser::translateDocSet(const CharsetInfo &fromCharset,
-			     const CharsetInfo &toCharset,
-			     const ISet<Char> &fromSet,
-			     ISet<Char> &toSet)
-{
-  ISetIter<Char> iter(fromSet);
-  Char min, max;
-  while (iter.next(min, max)) {
-    do {
-      UnivChar univChar;
-      Char internalChar;
-      WideChar count2, alsoMax;
-      if (!fromCharset.descToUniv(min, univChar, alsoMax)) {
-	if (alsoMax >= max)
-	  break;
-	min = alsoMax;
-      }
-      else {
-	  // FIXME better not to use univToDescCheck here
-	  // Maybe OK if multiple internal chars corresponding to doc char
-	int nMap = univToDescCheck(toCharset, univChar, internalChar, count2);
-	if (alsoMax > max)
-	  alsoMax = max;
-	if (alsoMax - min > count2 - 1)
-	  alsoMax = min + (count2 - 1);
-	if (nMap)
-	  toSet.addRange(internalChar, internalChar + (alsoMax - min));
-	min = alsoMax;
-      }
-    } while (min++ != max);
-  }
-}
-
-Boolean Parser::sdParseCharset(SdBuilder &sdBuilder,
-			       SdParam &parm,
-			       Boolean isDocument,
-			       CharsetDecl &decl,
-			       UnivCharsetDesc &desc)
-{
-  decl.clear();
-  ISet<WideChar> multiplyDeclared;
-  // This is for checking whether the syntax reference character set
-  // is ISO 646 when SCOPE is INSTANCE.
-  Boolean maybeISO646 = 1;
-  do {
-    if (!parseSdParam(AllowedSdParams(SdParam::minimumLiteral), parm))
-      return 0;
-    UnivCharsetDesc baseDesc;
-    PublicId id;
-    Boolean found;
-    PublicId::TextClass textClass;
-    const MessageType1 *err;
-    if (!id.init(parm.literalText, sd().internalCharset(), syntax().space(), err))
-      sdBuilder.addFormalError(currentLocation(),
-			       *err,
-			       id.string());
-    else if (id.getTextClass(textClass)
-	     && textClass != PublicId::CHARSET)
-      sdBuilder.addFormalError(currentLocation(),
-			       ParserMessages::basesetTextClass,
-			       id.string());
-    Boolean givenError;
-    if (referencePublic(id, PublicId::CHARSET, givenError))
-      found = sdParseExternalCharset(*sdBuilder.sd, baseDesc);
-    else if (!givenError) {
-      found = 0;
-      PublicId::OwnerType ownerType;
-      if (id.getOwnerType(ownerType) && ownerType == PublicId::ISO) {
-	StringC sequence;
-	if (id.getDesignatingSequence(sequence)) {
-	  CharsetRegistry::ISORegistrationNumber number
-	   = CharsetRegistry::getRegistrationNumber(sequence, sd().internalCharset());
-	  if (number != CharsetRegistry::UNREGISTERED) {
-	    Owner<CharsetRegistry::Iter> iter(CharsetRegistry::makeIter(number));
-	    if (iter) {
-	      found = 1;
-	      WideChar min;
-	      WideChar max;
-	      UnivChar univ;
-	      while (iter->next(min, max, univ))
-		baseDesc.addRange(min, max, univ);
-	    }
-	  }
-	}
-      }
-      if (!found)
-	message(ParserMessages::unknownBaseset, StringMessageArg(id.string()));
-    }
-    else
-      found = 0;
-    if (!found)
-      maybeISO646 = 0;
-    decl.addSection(id);
-    if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rDESCSET),
-		      parm))
-      return 0;
-    if (!parseSdParam(AllowedSdParams(SdParam::number), parm))
-      return 0;
-    do {
-      WideChar min = parm.n;
-      if (!parseSdParam(AllowedSdParams(SdParam::number), parm))
-	return 0;
-      Number count = parm.n;
-      Number adjCount;
-      if (options().warnSgmlDecl && count == 0)
-	message(ParserMessages::zeroNumberOfCharacters);
-      decl.rangeDeclared(min, count, multiplyDeclared);
-      if (isDocument
-	  && count > 0
-	  && (min > charMax || count - 1 > charMax - min)) {
-	message(ParserMessages::documentCharMax, NumberMessageArg(charMax));
-	adjCount = min > charMax ? 0 : 1 + (charMax - min);
-	maybeISO646 = 0;
-      }
-      else
-	adjCount = count;
-      if (!parseSdParam(AllowedSdParams(SdParam::number,
-					SdParam::minimumLiteral,
-					SdParam::reservedName + Sd::rUNUSED),
-			parm))
-	return 0;
-      switch (parm.type) {
-      case SdParam::number:
-	decl.addRange(min, count, parm.n);
-	if (found && adjCount > 0) {
-	  ISet<WideChar> baseMissing;
-	  desc.addBaseRange(baseDesc, min, min + (adjCount - 1), parm.n,
-			    baseMissing);
-	  if (!baseMissing.isEmpty() && options().warnSgmlDecl)
-	    message(ParserMessages::basesetCharsMissing,
-		    CharsetMessageArg(baseMissing));
-	}
-	break;
-      case SdParam::reservedName + Sd::rUNUSED:
-	decl.addRange(min, count);
-	break;
-      case SdParam::minimumLiteral:
-	{
-	  UnivChar c = charNameToUniv(*sdBuilder.sd, parm.literalText.string());
-	  if (adjCount > 256) {
-	    message(ParserMessages::tooManyCharsMinimumLiteral);
-	    adjCount = 256;
-	  }
-	  for (Number i = 0; i < adjCount; i++)
-	    desc.addRange(min + i, min + i, c);
-	}
-	maybeISO646 = 0;
-        decl.addRange(min, count, parm.literalText.string());
-        break;
-      default:
-        CANNOT_HAPPEN();			 
-      }
-      SdParam::Type follow = (isDocument
-			      ? SdParam::reservedName + Sd::rCAPACITY
-			      : SdParam::reservedName + Sd::rFUNCTION);
-      if (!parseSdParam(AllowedSdParams(SdParam::number,
-					SdParam::reservedName + Sd::rBASESET,
-					follow),
-			parm))
-	return 0;
-	
-    } while (parm.type == SdParam::number);
-  } while (parm.type == SdParam::reservedName + Sd::rBASESET);
-  if (!multiplyDeclared.isEmpty())
-    message(ParserMessages::duplicateCharNumbers,
-	    CharsetMessageArg(multiplyDeclared));
-  ISet<WideChar> declaredSet;
-  decl.declaredSet(declaredSet);
-  ISetIter<WideChar> iter(declaredSet);
-  WideChar min, max, lastMax;
-  if (iter.next(min, max)) {
-    ISet<WideChar> holes;
-    lastMax = max;
-    while (iter.next(min, max)) {
-      if (min - lastMax > 1)
-	holes.addRange(lastMax + 1, min - 1);
-      lastMax = max;
-    }
-    if (!holes.isEmpty())
-      message(ParserMessages::codeSetHoles, CharsetMessageArg(holes));
-  }
-  if (!isDocument && sdBuilder.sd->scopeInstance()) {
-    // If scope is INSTANCE, syntax reference character set
-    // must be same as reference.
-    UnivCharsetDescIter iter(desc);
-    WideChar descMin, descMax;
-    UnivChar univMin;
-    Char nextDescMin = 0;
-    while (maybeISO646) {
-      if (!iter.next(descMin, descMax, univMin)) {
-	if (nextDescMin != 128)
-	  maybeISO646 = 0;
-	break;
-      }
-      if (descMin != nextDescMin || univMin != descMin)
-	maybeISO646 = 0;
-      nextDescMin = descMax + 1;
-    }
-    if (!maybeISO646)
-      message(ParserMessages::scopeInstanceSyntaxCharset);
-  }
-  return 1;
-}
-
-Boolean Parser::sdParseExternalCharset(Sd &sd, UnivCharsetDesc &desc)
-{
-  SdParam parm;
-  for (;;) {
-    if (!parseSdParam(AllowedSdParams(SdParam::number, SdParam::eE),
-		     parm))
-      break;
-    if (parm.type == SdParam::eE)
-      return 1;
-    WideChar min = parm.n;
-    if (!parseSdParam(AllowedSdParams(SdParam::number), parm))
-      break;
-    Number count = parm.n;
-    if (!parseSdParam(AllowedSdParams(SdParam::number,
-				      SdParam::minimumLiteral,
-				      SdParam::reservedName + Sd::rUNUSED),
-		     parm))
-      break;
-    if (parm.type == SdParam::number) {
-      if (count > 0)
-	desc.addRange(min, min + (count - 1), parm.n);
-    }
-    else if (parm.type == SdParam::minimumLiteral) {
-      UnivChar c = charNameToUniv(sd, parm.literalText.string());
-      if (count > 256) {
-	message(ParserMessages::tooManyCharsMinimumLiteral);
-	count = 256;
-      }
-      for (Number i = 0; i < count; i++)
-	desc.addRange(min + i, min + i, c);
-    }
-  }
-  popInputStack();
-  return 0;
-}
-
-UnivChar Parser::charNameToUniv(Sd &sd, const StringC &name)
-{
-  UnivChar univ;
-  if (entityCatalog().lookupChar(name, sd.internalCharset(), messenger(), univ))
-    return univ;
-  else
-    return sd.nameToUniv(name);
-}
-
-Boolean Parser::sdParseCapacity(SdBuilder &sdBuilder, SdParam &parm)
-{
-  if (!parseSdParam(sdBuilder.www
-                    ? AllowedSdParams(SdParam::reservedName + Sd::rNONE,
-				      SdParam::reservedName + Sd::rPUBLIC,
-                                      SdParam::reservedName + Sd::rSGMLREF)
-		    : AllowedSdParams(SdParam::reservedName + Sd::rPUBLIC,
-				      SdParam::reservedName + Sd::rSGMLREF),
-		    parm))
-    return 0;
-#if _MSC_VER == 1100
-  // Workaround for Visual C++ 5.0 bug
-  int
-#else
-  Boolean
-#endif
-    pushed = 0;
-  if (parm.type == SdParam::reservedName + Sd::rNONE)
-    return parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rSCOPE),
-			parm);
-  if (parm.type == SdParam::reservedName + Sd::rPUBLIC) {
-    if (!parseSdParam(AllowedSdParams(SdParam::minimumLiteral), parm))
-      return 0;
-    PublicId id;
-    PublicId::TextClass textClass;
-    const MessageType1 *err;
-    if (!id.init(parm.literalText, sd().internalCharset(), syntax().space(), err))
-      sdBuilder.addFormalError(currentLocation(),
-			       *err,
-			       id.string());
-    else if (id.getTextClass(textClass)
-	     && textClass != PublicId::CAPACITY)
-      sdBuilder.addFormalError(currentLocation(),
-			       ParserMessages::capacityTextClass,
-			       id.string());
-    const StringC &str = id.string();
-    if (str != sd().execToInternal("ISO 8879-1986//CAPACITY Reference//EN")
-	&& str != sd().execToInternal("ISO 8879:1986//CAPACITY Reference//EN")) {
-      Boolean givenError;
-      if (referencePublic(id, PublicId::CAPACITY, givenError))
-	pushed = 1;
-      else if (!givenError)
-	message(ParserMessages::unknownCapacitySet, StringMessageArg(str));
-    }
-    if (!pushed)
-      return parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rSCOPE),
-			  parm);
-  }
-
-  PackedBoolean capacitySpecified[Sd::nCapacity];
-  int i;
-  for (i = 0; i < Sd::nCapacity; i++)
-    capacitySpecified[i] = 0;
-  if (!parseSdParam(AllowedSdParams(SdParam::capacityName), parm))
-    return 0;
-  do {
-    Sd::Capacity capacityIndex = parm.capacityIndex;
-    if (!parseSdParam(AllowedSdParams(SdParam::number), parm))
-      return 0;
-    
-    if (!capacitySpecified[capacityIndex]) {
-      sdBuilder.sd->setCapacity(capacityIndex, parm.n);
-      capacitySpecified[capacityIndex] = 1;
-    }
-    else if (options().warnSgmlDecl)
-      message(ParserMessages::duplicateCapacity,
-	      StringMessageArg(sd().capacityName(i)));
-    int final = pushed ? int(SdParam::eE) : SdParam::reservedName + Sd::rSCOPE;
-    if (!parseSdParam(AllowedSdParams(SdParam::capacityName, final),
-		      parm))
-      return 0;
-  } while (parm.type == SdParam::capacityName);
-  Number totalcap = sdBuilder.sd->capacity(0);
-  for (i = 1; i < Sd::nCapacity; i++)
-    if (sdBuilder.sd->capacity(i) > totalcap)
-      message(ParserMessages::capacityExceedsTotalcap,
-	      StringMessageArg(sd().capacityName(i)));
-  if (pushed)
-    return parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rSCOPE),
-			parm);
-  return 1;
-}
-
-Boolean Parser::referencePublic(const PublicId &id,
-				PublicId::TextClass entityType,
-				Boolean &givenError)
-{
-  givenError = 0;
-  StringC sysid;
-  if (entityCatalog().lookupPublic(id.string(),
-				   sd().internalCharset(),
-				   messenger(),
-				   sysid)) {
-    Location loc = currentLocation();
-    eventHandler().sgmlDeclEntity(new (eventAllocator())
-				  SgmlDeclEntityEvent(id,
-						      entityType,
-						      sysid,
-						      loc));
-    Ptr<EntityOrigin> origin(EntityOrigin::make(internalAllocator(),
-						ConstPtr<Entity>(0),
-						loc));
-    if (currentMarkup())
-      currentMarkup()->addEntityStart(origin);
-    InputSource *in = entityManager().open(sysid,
-					   sd().docCharset(),
-					   origin.pointer(),
-					   0,
-					   messenger());
-    if (!in) {
-      givenError = 1;
-      return 0;
-    }
-    pushInput(in);
-    return 1;
-  }
-  return 0;
-}
-
-Boolean Parser::sdParseScope(SdBuilder &sdBuilder, SdParam &parm)
-{
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rINSTANCE,
-				    SdParam::reservedName + Sd::rDOCUMENT),
-		    parm))
-    return 0;
-  if (parm.type == SdParam::reservedName + Sd::rINSTANCE)
-    sdBuilder.sd->setScopeInstance();
-  return 1;
-}
-
-Boolean Parser::sdParseSyntax(SdBuilder &sdBuilder, SdParam &parm)
-{
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rSYNTAX),
-		    parm))
-    return 0;
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rSHUNCHAR,
-				    SdParam::reservedName + Sd::rPUBLIC),
-		    parm))
-    return 0;
-
-  if (parm.type == SdParam::reservedName + Sd::rPUBLIC) {
-    if (!parseSdParam(AllowedSdParams(SdParam::minimumLiteral), parm))
-      return 0;
-    PublicId id;
-    const MessageType1 *err;
-    PublicId::TextClass textClass;
-    if (!id.init(parm.literalText, sd().internalCharset(), syntax().space(), err))
-      sdBuilder.addFormalError(currentLocation(),
-			       *err,
-			       id.string());
-    else if (id.getTextClass(textClass)
-	     && textClass != PublicId::SYNTAX)
-      sdBuilder.addFormalError(currentLocation(),
-			       ParserMessages::syntaxTextClass,
-			       id.string());
-    if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rFEATURES,
-				      SdParam::reservedName + Sd::rSWITCHES),
-		      parm))
-      return 0;
-    Vector<UnivChar> charSwitches;
-    if (parm.type == SdParam::reservedName + Sd::rSWITCHES) {
-      if (!parseSdParam(AllowedSdParams(SdParam::number), parm))
-	return 0;
-      for (;;) {
-	SyntaxChar c = parm.n;
-	if (!parseSdParam(AllowedSdParams(SdParam::number), parm))
-	  return 0;
-	sdBuilder.switcher.addSwitch(c, parm.n);
-	if (!parseSdParam(AllowedSdParams(SdParam::number,
-					  SdParam::reservedName
-					  + Sd::rFEATURES),
-			  parm))
-	  return 0;
-	if (parm.type != SdParam::number)
-	  break;
-      }
-    }
-    const StandardSyntaxSpec *spec = lookupSyntax(id);
-    if (spec) {
-      if (!setStandardSyntax(*sdBuilder.syntax,
-			     *spec,
-			     sdBuilder.sd->internalCharset(),
-			     sdBuilder.switcher,
-			     sdBuilder.www))
-	sdBuilder.valid = 0;
-    }
-    else {
-      Boolean givenError;
-      if (referencePublic(id, PublicId::SYNTAX, givenError)) {
-	sdBuilder.externalSyntax = 1;
-	SdParam parm2;
-	if (!parseSdParam(AllowedSdParams(SdParam::reservedName
-					  + Sd::rSHUNCHAR),
-			  parm2))
-	  return 0;
-	if (!sdParseExplicitSyntax(sdBuilder, parm2))
-	  return 0;
-      }
-      else {
-	if (!givenError)
-	  message(ParserMessages::unknownPublicSyntax,
-		  StringMessageArg(id.string()));
-	sdBuilder.valid = 0;
-      }
-    }
-  }
-  else {
-    if (!sdParseExplicitSyntax(sdBuilder, parm))
-      return 0;
-  }
-  if (!sdBuilder.sd->scopeInstance()) {
-    // we know the significant chars now
-    ISet<WideChar> invalidSgmlChar;
-    sdBuilder.syntax->checkSgmlChar(*sdBuilder.sd,
-				    0,
-				    1,
-				    invalidSgmlChar);
-    if (!invalidSgmlChar.isEmpty())
-      message(ParserMessages::invalidSgmlChar, CharsetMessageArg(invalidSgmlChar));
-  }
-  checkSyntaxNamelen(*sdBuilder.syntax);
-  checkSwitchesMarkup(sdBuilder.switcher);
-  return 1;
-}
-
-Boolean Parser::sdParseExplicitSyntax(SdBuilder &sdBuilder,
-				      SdParam &parm)
-{
-  typedef Boolean (Parser::*SdParser)(SdBuilder &, SdParam &);
-  static SdParser parsers[] = {
-    &Parser::sdParseShunchar,
-    &Parser::sdParseSyntaxCharset,
-    &Parser::sdParseFunction,
-    &Parser::sdParseNaming,
-    &Parser::sdParseDelim,
-    &Parser::sdParseNames,
-    &Parser::sdParseQuantity
-    };
-  for (size_t i = 0; i < SIZEOF(parsers); i++)
-    if (!(this->*(parsers[i]))(sdBuilder, parm))
-      return 0;
-  return 1;
-}
-
-const StandardSyntaxSpec *Parser::lookupSyntax(const PublicId &id)
-{
-  PublicId::OwnerType ownerType;
-  if (!id.getOwnerType(ownerType) || ownerType != PublicId::ISO)
-    return 0;
-  StringC str;
-  if (!id.getOwner(str))
-    return 0;
-  if (str != sd().execToInternal("ISO 8879:1986")
-      && str != sd().execToInternal("ISO 8879-1986"))
-    return 0;
-  PublicId::TextClass textClass;
-  if (!id.getTextClass(textClass) || textClass != PublicId::SYNTAX)
-    return 0;
-  if (!id.getDescription(str))
-    return 0;
-  if (str == sd().execToInternal("Reference"))
-    return &refSyntax;
-  if (str == sd().execToInternal("Core"))
-    return &coreSyntax;
-  return 0;
-}
-
-Boolean Parser::sdParseSyntaxCharset(SdBuilder &sdBuilder, SdParam &parm)
-{
-  UnivCharsetDesc desc;
-  if (!sdParseCharset(sdBuilder, parm, 0, sdBuilder.syntaxCharsetDecl, desc))
-    return 0;
-  sdBuilder.syntaxCharset.set(desc);
-  checkSwitches(sdBuilder.switcher, sdBuilder.syntaxCharset);
-  for (size_t i = 0; i < sdBuilder.switcher.nSwitches(); i++)
-    if (!sdBuilder.syntaxCharsetDecl.charDeclared(sdBuilder.switcher.switchTo(i)))
-      message(ParserMessages::switchNotInCharset,
-	      NumberMessageArg(sdBuilder.switcher.switchTo(i)));
-  ISet<WideChar> missing;
-  findMissingMinimum(sdBuilder.syntaxCharset, missing);
-  if (!missing.isEmpty())
-    message(ParserMessages::missingMinimumChars,
-	    CharsetMessageArg(missing));
-  return 1;
-}
-
-Boolean Parser::sdParseShunchar(SdBuilder &sdBuilder, SdParam &parm)
-{
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rNONE,
-				    SdParam::reservedName + Sd::rCONTROLS,
-				    SdParam::number), parm))
-    return 0;
-  if (parm.type == SdParam::reservedName + Sd::rNONE) {
-    if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rBASESET),
-		      parm))
-      return 0;
-    return 1;
-  }
-  if (parm.type == SdParam::reservedName + Sd::rCONTROLS)
-    sdBuilder.syntax->setShuncharControls();
-  else {
-    if (parm.n <= charMax)
-      sdBuilder.syntax->addShunchar(Char(parm.n));
-  }
-  for (;;) {
-    if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rBASESET,
-				      SdParam::number), parm))
-      return 0;
-    if (parm.type != SdParam::number)
-      break;
-    if (parm.n <= charMax)
-      sdBuilder.syntax->addShunchar(Char(parm.n));
-  }
-  return 1;
-}
-
-Boolean Parser::sdParseFunction(SdBuilder &sdBuilder, SdParam &parm)
-{
-  static Sd::ReservedName standardNames[3] = {
-    Sd::rRE, Sd::rRS, Sd::rSPACE
-  };
-  for (int i = 0; i < 3; i++) {
-    if (!parseSdParam(AllowedSdParams(SdParam::reservedName
-				      + standardNames[i]),
-		      parm))
-      return 0;
-    if (!parseSdParam(AllowedSdParams(SdParam::number), parm))
-      return 0;
-    Char c;
-    if (translateSyntax(sdBuilder, parm.n, c)) {
-      if (checkNotFunction(*sdBuilder.syntax, c))
-	sdBuilder.syntax->setStandardFunction(Syntax::StandardFunction(i), c);
-      else
-	sdBuilder.valid = 0;
-    }
-  }
-  Boolean haveMsichar = 0;
-  Boolean haveMsochar = 0;
-  for (;;) {
-    if (!parseSdParam(sdBuilder.externalSyntax
-		      ? AllowedSdParams(SdParam::name, SdParam::paramLiteral)
-		      : AllowedSdParams(SdParam::name),
-		      parm))
-      return 0;
-    Boolean nameWasLiteral;
-    size_t nameMarkupIndex;
-    if (currentMarkup())
-      nameMarkupIndex = currentMarkup()->size() - 1;
-    Boolean invalidName = 0;
-    StringC name;
-    if (parm.type == SdParam::paramLiteral) {
-      nameWasLiteral = 1;
-      if (!translateSyntax(sdBuilder, parm.paramLiteralText, name))
-	invalidName = 1;
-    }
-    else {
-      parm.token.swap(name);
-      nameWasLiteral = 0;
-    }
-    if (!parseSdParam(nameWasLiteral
-		      ? AllowedSdParams(SdParam::reservedName + Sd::rFUNCHAR,
-					SdParam::reservedName + Sd::rMSICHAR,
-					SdParam::reservedName + Sd::rMSOCHAR,
-					SdParam::reservedName + Sd::rMSSCHAR,
-					SdParam::reservedName + Sd::rSEPCHAR)
-		      : AllowedSdParams(SdParam::reservedName + Sd::rFUNCHAR,
-					SdParam::reservedName + Sd::rMSICHAR,
-					SdParam::reservedName + Sd::rMSOCHAR,
-					SdParam::reservedName + Sd::rMSSCHAR,
-					SdParam::reservedName + Sd::rSEPCHAR,
-					SdParam::reservedName + Sd::rLCNMSTRT),
-		      parm))
-      return 0;
-    if (parm.type == SdParam::reservedName + Sd::rLCNMSTRT) {
-      if (name != sd().reservedName(Sd::rNAMING))
-	message(ParserMessages::namingBeforeLcnmstrt,
-		StringMessageArg(name));
-      else if (currentMarkup())
-	currentMarkup()->changeToSdReservedName(nameMarkupIndex, Sd::rNAMING);
-      break;
-    }
-    if (!nameWasLiteral) {
-      StringC tem;
-      name.swap(tem);
-      if (!translateName(sdBuilder, tem, name))
-	invalidName = 1;
-    }
-    Syntax::FunctionClass functionClass;
-    switch (parm.type) {
-    case SdParam::reservedName + Sd::rFUNCHAR:
-      functionClass = Syntax::cFUNCHAR;
-      break;
-    case SdParam::reservedName + Sd::rMSICHAR:
-      haveMsichar = 1;
-      functionClass = Syntax::cMSICHAR;
-      break;
-    case SdParam::reservedName + Sd::rMSOCHAR:
-      haveMsochar = 1;
-      functionClass = Syntax::cMSOCHAR;
-      break;
-    case SdParam::reservedName + Sd::rMSSCHAR:
-      functionClass = Syntax::cMSSCHAR;
-      break;
-    case SdParam::reservedName + Sd::rSEPCHAR:
-      functionClass = Syntax::cSEPCHAR;
-      break;
-    default:
-      CANNOT_HAPPEN();
-    }
-    if (!parseSdParam(AllowedSdParams(SdParam::number), parm))
-      return 0;
-    Char c;
-    if (translateSyntax(sdBuilder, parm.n, c)
-        && checkNotFunction(*sdBuilder.syntax, c)
-	&& !invalidName) {
-      Char tem;
-      if (sdBuilder.syntax->lookupFunctionChar(name, &tem))
-	message(ParserMessages::duplicateFunctionName, StringMessageArg(name));
-      else
-	sdBuilder.syntax->addFunctionChar(name, functionClass, c);
-    }
-  }
-  if (haveMsochar && !haveMsichar)
-    message(ParserMessages::msocharRequiresMsichar);
-  return 1;
-}
-
-Boolean Parser::sdParseNaming(SdBuilder &sdBuilder, SdParam &parm)
-{
-  static Sd::ReservedName keys[6] = {
-    Sd::rUCNMSTRT, Sd::rNAMESTRT, Sd::rLCNMCHAR, Sd::rUCNMCHAR, Sd::rNAMECHAR,
-    Sd::rNAMECASE
-  };
-  int isNamechar = 0;
-  ISet<Char> nameStartChar;
-  ISet<Char> nameChar;
-  do {
-    String<SyntaxChar> lc;
-    Vector<size_t> rangeIndex;
-    enum PrevParam {
-      paramNone,
-      paramNumber,
-      paramOther
-    } prevParam = paramNone;
-      
-    for (;;) {
-      switch (prevParam) {
-      case paramNone:
-	if (!parseSdParam(AllowedSdParams(SdParam::paramLiteral, SdParam::number),
-	                  parm))
-	  return 0;
-	break;
-      case paramNumber:
-	if (!parseSdParam(AllowedSdParams(SdParam::reservedName
-					  + keys[isNamechar * 3],
-					  SdParam::paramLiteral,
-					  SdParam::number,
-					  SdParam::minus),
-			  parm))
-	  return 0;
-	break;
-      case paramOther:
-	if (!parseSdParam(AllowedSdParams(SdParam::reservedName
-					  + keys[isNamechar * 3],
-					  SdParam::paramLiteral,
-					  SdParam::number),
-			  parm))
-	  return 0;
-	break;
-      }
-      switch (parm.type) {
-      case SdParam::paramLiteral:
-	if (prevParam == paramNone)
-	  break;
-	// fall through
-      case SdParam::number:
-	if (!sdBuilder.externalSyntax && !sdBuilder.enr) {
-	  message(ParserMessages::enrRequired);
-	  sdBuilder.enr = 1;
-	}
-	break;
-      default:
-	break;
-      }
-      prevParam = (parm.type == SdParam::number ? paramNumber : paramOther);
-      if (parm.type == SdParam::minus) {
-	if (!parseSdParam(AllowedSdParams(SdParam::number),
-			  parm))
-	  return 0;
-	if (parm.n < lc[lc.size() - 1])
-	  message(ParserMessages::sdInvalidRange);
-	else {
-	  if (parm.n > lc[lc.size() - 1] + 1)
-	    rangeIndex.push_back(lc.size() - 1);
-	  lc += SyntaxChar(parm.n);
-	}
-      }
-      else {
-	sdParamConvertToLiteral(parm);
-	if (parm.type != SdParam::paramLiteral)
-	  break;
-	lc += parm.paramLiteralText;
-      }
-    }
-    size_t lcPos = 0;
-    size_t rangeIndexPos = 0;
-    unsigned long rangeLeft = 0;
-    SyntaxChar nextRangeChar;
-    ISet<Char> &set = isNamechar ? nameChar : nameStartChar;
-    String<SyntaxChar> chars;
-    Boolean runOut = 0;
-    prevParam = paramNone;
-    for (;;) {
-      switch (prevParam) {
-      case paramNone:
-	if (!parseSdParam(AllowedSdParams(SdParam::paramLiteral, SdParam::number),
-	                  parm))
-	  return 0;
-	break;
-      case paramNumber:
-	if (!parseSdParam(AllowedSdParams(SdParam::reservedName
-					  + keys[isNamechar * 3 + 1],
-					  SdParam::reservedName
-					  + keys[isNamechar * 3 + 2],
-					  SdParam::paramLiteral,
-					  SdParam::number,
-					  SdParam::minus),
-			  parm))
-	  return 0;
-	break;
-      case paramOther:
-	if (!parseSdParam(AllowedSdParams(SdParam::reservedName
-					  + keys[isNamechar * 3 + 1],
-					  SdParam::reservedName
-					  + keys[isNamechar * 3 + 2],
-					  SdParam::paramLiteral,
-					  SdParam::number),
-			  parm))
-	  return 0;
-	break;
-      }
-      switch (parm.type) {
-      case SdParam::paramLiteral:
-	if (prevParam == paramNone)
-	  break;
-	// fall through
-      case SdParam::number:
-	if (!sdBuilder.externalSyntax && !sdBuilder.enr) {
-	  message(ParserMessages::enrRequired);
-	  sdBuilder.enr = 1;
-	}
-	break;
-      default:
-	break;
-      }
-      prevParam = (parm.type == SdParam::number ? paramNumber : paramOther);
-      if (parm.type == SdParam::minus) {
-	if (!parseSdParam(AllowedSdParams(SdParam::number),
-			  parm))
-	  return 0;
-	ASSERT(chars.size() == 1);
-	SyntaxChar start = chars[0];
-  	SyntaxChar end = parm.n;
-	if (start > end)
-	  message(ParserMessages::sdInvalidRange);
-	else {
-	  size_t count = end + 1 - start;
-	  while (count > 0) {
-	    if (rangeLeft == 0
-		&& rangeIndexPos < rangeIndex.size()
-		&& rangeIndex[rangeIndexPos] == lcPos) {
-	      rangeLeft = 1 + lc[lcPos + 1] - lc[lcPos];
-	      nextRangeChar = lc[lcPos];
-	      lcPos += 2;
-	      rangeIndexPos += 1;
-	    }
-	    Char c;
-	    if (rangeLeft > 0) {
-	      rangeLeft--;
-	      c = nextRangeChar++;
-	    }
-	    else if (lcPos < lc.size())
-	      c = lc[lcPos++];
-	    else {
-	      c = start;
-	      runOut = 1;
-	    }
-	    if (c == start && count > 1 && (runOut || rangeLeft > 0)) {
-	      size_t n;
-	      if (runOut)
-		n = count;
-	      else if (rangeLeft < count) {
-		// rangeLeft + 1 <= count
-		n = rangeLeft + 1;
-		rangeLeft = 0;
-	      }
-	      else {
-		// count < rangeLeft + 1
-		n = count;
-		rangeLeft -= n - 1;
-		nextRangeChar += n - 1;
-	      }
-	      translateRange(sdBuilder, start, start + (n - 1), set);
-	      count -= n;
-	      start += n;
-	    }
-	    else {
-	      Char transLc, transUc;
-	      if (translateSyntax(sdBuilder, c, transLc)
-		  && translateSyntax(sdBuilder, start, transUc)) {
-		set.add(transLc);
-		if (transLc != transUc) {
-		  set.add(transUc);
-		  sdBuilder.syntax->addSubst(transLc, transUc);
-		}
-	      }
-	      count--;
-	      start++;
-	    }
-	  } 
-	}
-	chars.resize(0);
-      }
-      else {
-	for (size_t i = 0; i < chars.size(); i++) {
-	  if (rangeLeft == 0
-	      && rangeIndexPos < rangeIndex.size()
-	      && rangeIndex[rangeIndexPos] == lcPos) {
-	    rangeLeft = 1 + lc[lcPos + 1] - lc[lcPos];
-	    nextRangeChar = lc[lcPos];
-	    lcPos += 2;
-	    rangeIndexPos += 1;
-	  }
-	  Char c;
-	  if (rangeLeft > 0) {
-	    rangeLeft--;
-	    c = nextRangeChar++;
-	  }
-	  else if (lcPos < lc.size())
-	    c = lc[lcPos++];
-	  else {
-	    runOut = 1;
-	    c = chars[i];
-	  }
-	  // map from c to chars[i]
-	  Char transLc, transUc;
-	  if (translateSyntax(sdBuilder, c, transLc)
-	      && translateSyntax(sdBuilder, chars[i], transUc)) {
-	    set.add(transLc);
-	    if (transLc != transUc) {
-	      set.add(transUc);
-	      sdBuilder.syntax->addSubst(transLc, transUc);
-	    }
-	  }
-	}
-	sdParamConvertToLiteral(parm);
-	if (parm.type != SdParam::paramLiteral)
-	  break;
-	parm.paramLiteralText.swap(chars);
-      }
-    }
-    if ((runOut && !sdBuilder.externalSyntax)
-	|| rangeLeft > 0 || lcPos < lc.size())
-      message(isNamechar
-	      ? ParserMessages::nmcharLength
-	      : ParserMessages::nmstrtLength);
-    if (parm.type == SdParam::reservedName + keys[isNamechar * 3 + 1]) {
-      if (!sdBuilder.externalSyntax && !sdBuilder.enr) {
-	message(ParserMessages::enrRequired);
-	sdBuilder.enr = 1;
-      }
-      prevParam = paramNone;
-      for (;;) {
-	switch (prevParam) {
-	case paramNone:
-	  if (!parseSdParam(AllowedSdParams(SdParam::paramLiteral, SdParam::number),
-			    parm))
-	    return 0;
-	  break;
-	case paramNumber:
-	  if (!parseSdParam(AllowedSdParams(SdParam::reservedName
-					    + keys[isNamechar * 3 + 2],
-					    SdParam::paramLiteral,
-					    SdParam::number,
-					    SdParam::minus),
-			    parm))
-	    return 0;
-	  break;
-	case paramOther:
-	  if (!parseSdParam(AllowedSdParams(SdParam::reservedName
-					    + keys[isNamechar * 3 + 2],
-					    SdParam::paramLiteral,
-					    SdParam::number),
-			    parm))
-	    return 0;
-	  break;
-	}
-	prevParam = (parm.type == SdParam::number ? paramNumber : paramOther);
-	if (parm.type == SdParam::minus) {
-	  SyntaxChar prevNumber = parm.n;
-	  if (!parseSdParam(AllowedSdParams(SdParam::number),
-			    parm))
-	    return 0;
-	  if (parm.n < prevNumber)
-	    message(ParserMessages::sdInvalidRange);
-	  else if (parm.n > prevNumber)
-	    translateRange(sdBuilder, prevNumber + 1, parm.n, set);
-	}
-	else {
-	  sdParamConvertToLiteral(parm);
-	  if (parm.type != SdParam::paramLiteral)
-	    break;
-	  for (size_t i = 0; i < parm.paramLiteralText.size(); i++) {
-	    Char trans;
-	    if (translateSyntax(sdBuilder, parm.paramLiteralText[i], trans))
-	      set.add(trans);
-	  }
-	}
-      }
-    }
-    if (!checkNmchars(set, *sdBuilder.syntax))
-      sdBuilder.valid = 0;
-  } while (!isNamechar++);
-  ISet<WideChar> bad;
-  intersectCharSets(nameStartChar, nameChar, bad);
-  if (!bad.isEmpty()) {
-    sdBuilder.valid = 0;
-    message(ParserMessages::nmcharNmstrt, CharsetMessageArg(bad));
-  }
-  sdBuilder.syntax->addNameStartCharacters(nameStartChar);
-  sdBuilder.syntax->addNameCharacters(nameChar);
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rGENERAL),
-		    parm))
-    return 0;
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rNO,
-				    SdParam::reservedName + Sd::rYES),
-		    parm))
-    return 0;
-  sdBuilder.syntax->setNamecaseGeneral(parm.type
-				       == SdParam::reservedName + Sd::rYES);
-
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rENTITY),
-		    parm))
-    return 0;
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rNO,
-				    SdParam::reservedName + Sd::rYES),
-		    parm))
-    return 0;
-  sdBuilder.syntax->setNamecaseEntity(parm.type
-				      == SdParam::reservedName + Sd::rYES);
-  return 1;
-}
-
-Boolean Parser::checkNmchars(const ISet<Char> &set, const Syntax &syntax)
-{
-  Boolean valid = 1;
-  ISet<WideChar> bad;
-  intersectCharSets(set, *syntax.charSet(Syntax::nameStart), bad);
-  if (!bad.isEmpty()) {
-    message(ParserMessages::nmcharLetter, CharsetMessageArg(bad));
-    valid = 0;
-    bad.clear();
-  }
-  intersectCharSets(set, *syntax.charSet(Syntax::digit), bad);
-  if (!bad.isEmpty()) {
-    message(ParserMessages::nmcharDigit, CharsetMessageArg(bad));
-    valid = 0;
-    bad.clear();
-  }
-  Char funChar;
-  if (syntax.getStandardFunction(Syntax::fRE, funChar)
-      && set.contains(funChar)) {
-    message(ParserMessages::nmcharRe, NumberMessageArg(funChar));
-    valid = 0;
-  }
-  if (syntax.getStandardFunction(Syntax::fRS, funChar)
-      && set.contains(funChar)) {
-    message(ParserMessages::nmcharRs, NumberMessageArg(funChar));
-    valid = 0;
-  }
-  if (syntax.getStandardFunction(Syntax::fSPACE, funChar)
-      && set.contains(funChar)) {
-    message(ParserMessages::nmcharSpace, NumberMessageArg(funChar));
-    valid = 0;
-  }
-  intersectCharSets(set, *syntax.charSet(Syntax::sepchar), bad);
-  if (!bad.isEmpty()) {
-    message(ParserMessages::nmcharSepchar, CharsetMessageArg(bad));
-    valid = 0;
-  }
-  return valid;
-}
-
-// Result is a ISet<WideChar>, so it can be used with CharsetMessageArg.
-
-void Parser::intersectCharSets(const ISet<Char> &s1, const ISet<Char> &s2,
-			       ISet<WideChar> &inter)
-{
-  ISetIter<Char> i1(s1);
-  ISetIter<Char> i2(s2);
-  Char min1, max1, min2, max2;
-  if (!i1.next(min1, max1))
-    return;
-  if (!i2.next(min2, max2))
-    return;
-  for (;;) {
-    if (max1 < min2) {
-      if (!i1.next(min1, max1))
-	break;
-    }
-    else if (max2 < min1) {
-      if (!i2.next(min2, max2))
-	break;
-    }
-    else {
-      // min2 <= max1
-      // min1 <= max2
-      Char min = min1 > min2 ? min1 : min2;
-      Char max = max1 < max2 ? max1 : max2;
-      inter.addRange(min, max);
-      if (max2 > max) {
-	if (!i1.next(min1, max1))
-	  break;
-      }
-      else {
-	if (!i2.next(min2, max2))
-	  break;
-      }
-    }
-  }
-}
-
-Boolean Parser::sdParseDelim(SdBuilder &sdBuilder, SdParam &parm)
-{
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rDELIM),
-		    parm))
-    return 0;
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rGENERAL),
-		    parm))
-    return 0;
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rSGMLREF),
-		    parm))
-    return 0;
-  PackedBoolean delimGeneralSpecified[Syntax::nDelimGeneral];
-  for (int i = 0; i < Syntax::nDelimGeneral; i++)
-    delimGeneralSpecified[i] = 0;
-  for (;;) {
-    if (!parseSdParam(AllowedSdParams(SdParam::generalDelimiterName,
-				      SdParam::reservedName + Sd::rSHORTREF),
-		      parm))
-      return 0;
-    if (parm.type == SdParam::reservedName + Sd::rSHORTREF)
-      break;
-    Syntax::DelimGeneral delimGeneral = parm.delimGeneralIndex;
-    if (delimGeneralSpecified[delimGeneral])
-      message(ParserMessages::duplicateDelimGeneral,
-	      StringMessageArg(sd().generalDelimiterName(delimGeneral)));
-    switch (delimGeneral) {
-    case Syntax::dHCRO:
-    case Syntax::dNESTC:
-      requireWWW(sdBuilder);
-      break;
-    default:
-      break;
-    }
-    if (!parseSdParam(sdBuilder.externalSyntax
-		      ? AllowedSdParams(SdParam::paramLiteral,
-					SdParam::number)
-		      : AllowedSdParams(SdParam::paramLiteral),
-		      parm))
-      return 0;
-    sdParamConvertToLiteral(parm);
-    StringC str;
-    if (parm.paramLiteralText.size() == 0)
-	message(ParserMessages::sdEmptyDelimiter);
-    else if (translateSyntax(sdBuilder, parm.paramLiteralText, str)) {
-      const SubstTable<Char> *table = sdBuilder.syntax->generalSubstTable();
-      for (size_t i = 0; i < str.size(); i++)
-	table->subst(str[i]);
-      if (checkGeneralDelim(*sdBuilder.syntax, str)
-	  && !delimGeneralSpecified[delimGeneral])
-	sdBuilder.syntax->setDelimGeneral(delimGeneral, str);
-      else
-	sdBuilder.valid = 0;
-    }
-    delimGeneralSpecified[delimGeneral] = 1;
-  }
-  if (sdBuilder.syntax->delimGeneral(Syntax::dNET).size()
-      && !sdBuilder.syntax->delimGeneral(Syntax::dNESTC).size())
-    sdBuilder.syntax->setDelimGeneral(Syntax::dNESTC,
-				      sdBuilder.syntax->delimGeneral(Syntax::dNET));
-  if (!setRefDelimGeneral(*sdBuilder.syntax,
-			  sdBuilder.syntaxCharset,
-			  sdBuilder.sd->internalCharset(),
-			  sdBuilder.switcher))
-    sdBuilder.valid = 0;
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rSGMLREF,
-				    SdParam::reservedName + Sd::rNONE),
-		    parm))
-    return 0;
-  if (parm.type == SdParam::reservedName + Sd::rSGMLREF) {
-    if (!addRefDelimShortref(*sdBuilder.syntax,
-			     sdBuilder.syntaxCharset,
-			     sdBuilder.sd->internalCharset(),
-			     sdBuilder.switcher))
-      sdBuilder.valid = 0;
-  }
-  String<SyntaxChar> lastLiteral;
-  for (;;) {
-    if (!parseSdParam(sdBuilder.externalSyntax
-		      ? AllowedSdParams(SdParam::paramLiteral,
-					SdParam::number,
-					SdParam::minus,
-					SdParam::reservedName + Sd::rNAMES)
-		      : AllowedSdParams(SdParam::paramLiteral,
-					SdParam::reservedName + Sd::rNAMES),
-		      parm))
-      return 0;
-    sdParamConvertToLiteral(parm);
-    if (parm.type == SdParam::minus) {
-      if (!parseSdParam(AllowedSdParams(SdParam::paramLiteral,
-					SdParam::number),
-			parm))
-	return 0;
-      sdParamConvertToLiteral(parm);
-      if (parm.paramLiteralText.size() == 0)
-	message(ParserMessages::sdEmptyDelimiter);
-      else if (lastLiteral.size() != 1
-	       || parm.paramLiteralText.size() != 1)
-	message(ParserMessages::sdRangeNotSingleChar);
-      else if (parm.paramLiteralText[0] < lastLiteral[0])
-	message(ParserMessages::sdInvalidRange);
-      else if (parm.paramLiteralText[0] != lastLiteral[0]) {
-	ISet<Char> shortrefChars;
-	translateRange(sdBuilder,
-		       lastLiteral[0] + 1,
-		       parm.paramLiteralText[0],
-		       shortrefChars);
-	ISet<WideChar> duplicates;
-	intersectCharSets(shortrefChars,
-			  sdBuilder.syntax->delimShortrefSimple(),
-			  duplicates);
-	int nComplexShortrefs = sdBuilder.syntax->nDelimShortrefComplex();
-	for (int i = 0; i < nComplexShortrefs; i++) {
-	  const StringC &delim = sdBuilder.syntax->delimShortrefComplex(i);
-	  if (delim.size() == 1 && shortrefChars.contains(delim[0]))
-	    duplicates.add(delim[0]);
-	}
-	if (!duplicates.isEmpty())
-	  message(ParserMessages::duplicateDelimShortrefSet,
-		  CharsetMessageArg(duplicates));
-	sdBuilder.syntax->addDelimShortrefs(shortrefChars,
-					    sdBuilder.sd->internalCharset());
-      }
-      lastLiteral.resize(0);
-    }
-    else if (parm.type == SdParam::paramLiteral) {
-      parm.paramLiteralText.swap(lastLiteral);
-      StringC str;
-      if (lastLiteral.size() == 0)
-	message(ParserMessages::sdEmptyDelimiter);
-      else if (translateSyntax(sdBuilder, lastLiteral, str)) {
-	const SubstTable<Char> *table = sdBuilder.syntax->generalSubstTable();
-	for (size_t i = 0; i < str.size(); i++)
-	  table->subst(str[i]);
-	if (str.size() == 1
-	    || checkShortrefDelim(*sdBuilder.syntax,
-				  sdBuilder.sd->internalCharset(),
-				  str)) {
-	  if (sdBuilder.syntax->isValidShortref(str))
-	    message(ParserMessages::duplicateDelimShortref,
-		    StringMessageArg(str));
-	  else
-	    sdBuilder.syntax->addDelimShortref(str,
-					       sdBuilder.sd->internalCharset());
-	}
-      }
-    }
-    else
-      break;
-  }
-  return 1;
-}
-
-Boolean Parser::sdParseNames(SdBuilder &sdBuilder, SdParam &parm)
-{
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rSGMLREF),
-		    parm))
-    return 0;
-  for (;;) {
-    if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rQUANTITY,
-				      SdParam::referenceReservedName),
-		      parm))
-      return 0;
-    if (parm.type == SdParam::reservedName + Sd::rQUANTITY)
-      break;
-    Syntax::ReservedName reservedName = parm.reservedNameIndex;
-    switch (reservedName) {
-    case Syntax::rALL:
-    case Syntax::rDATA:
-    case Syntax::rIMPLICIT:
-      requireWWW(sdBuilder);
-      break;
-    default:
-      break;
-    }
-    if (!parseSdParam(sdBuilder.externalSyntax
-		      ? AllowedSdParams(SdParam::name, SdParam::paramLiteral)
-		      : AllowedSdParams(SdParam::name),
-		      parm))
-      return 0;
-    StringC transName;
-    if (parm.type == SdParam::name
-	? translateName(sdBuilder, parm.token, transName)
-	: translateSyntax(sdBuilder, parm.paramLiteralText, transName)) {
-      Syntax::ReservedName tem;
-      if (sdBuilder.syntax->lookupReservedName(transName, &tem))
-	message(ParserMessages::ambiguousReservedName,
-		StringMessageArg(transName));
-      else {
-	if (transName.size() == 0
-	    || !sdBuilder.syntax->isNameStartCharacter(transName[0])) {
-	  message(ParserMessages::reservedNameSyntax,
-		  StringMessageArg(transName));
-	  transName.resize(0);
-	}
-	size_t i;
-	// Check that its a valid name in the declared syntax
-	// (- and . might not be name characters).
-	for (i = 1; i < transName.size(); i++)
-	  if (!sdBuilder.syntax->isNameCharacter(transName[i])) {
-	    message(ParserMessages::reservedNameSyntax,
-		    StringMessageArg(transName));
-	    transName.resize(0);
-	    break;
-	  }
-	for (i = 0; i < transName.size(); i++)
-	  sdBuilder.syntax->generalSubstTable()->subst(transName[i]);
-	if (sdBuilder.syntax->reservedName(reservedName).size() > 0)
-	  message(ParserMessages::duplicateReservedName,
-		  StringMessageArg(syntax().reservedName(reservedName)));
-	else if (transName.size() > 0)
-	  sdBuilder.syntax->setName(reservedName, transName);
-	else
-	  sdBuilder.valid = 0;
-      }
-    }
-  }
-  setRefNames(*sdBuilder.syntax, sdBuilder.sd->internalCharset(), sdBuilder.www);
-  static Syntax::ReservedName functionNameIndex[3] = {
-    Syntax::rRE, Syntax::rRS, Syntax::rSPACE
-  };
-  for (int i = 0; i < 3; i++) {
-    const StringC &functionName
-      = sdBuilder.syntax->reservedName(functionNameIndex[i]);
-    Char tem;
-    if (sdBuilder.syntax->lookupFunctionChar(functionName, &tem))
-      message(ParserMessages::duplicateFunctionName, StringMessageArg(functionName));
-  }
-  sdBuilder.syntax->enterStandardFunctionNames();
-  return 1;
-}
-
-Boolean Parser::sdParseQuantity(SdBuilder &sdBuilder, SdParam &parm)
-{
-  if (!parseSdParam(sdBuilder.www
-                    ? AllowedSdParams(SdParam::reservedName + Sd::rNONE,
-                                      SdParam::reservedName + Sd::rSGMLREF)
-		    : AllowedSdParams(SdParam::reservedName + Sd::rSGMLREF),
-		    parm))
-    return 0;
-  int final = (sdBuilder.externalSyntax
-	       ? int(SdParam::eE)
-	       : SdParam::reservedName + Sd::rFEATURES);
-  if (parm.type == SdParam::reservedName + Sd::rNONE) {
-    for (int i = 0; i < Syntax::nQuantity; i++) {
-      if (i != Syntax::qNORMSEP)
-        sdBuilder.syntax->setQuantity(Syntax::Quantity(i), Syntax::unlimited);
-    }
-    if (!parseSdParam(AllowedSdParams(final, SdParam::reservedName + Sd::rENTITIES), parm))
-      return 0;
-  }
-  else {
-    for (;;) {
-      if (!parseSdParam(sdBuilder.www
-  		        ? AllowedSdParams(SdParam::quantityName,
-					  final,
-					  SdParam::reservedName + Sd::rENTITIES)
-		        : AllowedSdParams(SdParam::quantityName, final),
-		        parm))
-        return 0;
-      if (parm.type != SdParam::quantityName)
-        break;
-      Syntax::Quantity quantity = parm.quantityIndex;
-      if (!parseSdParam(AllowedSdParams(SdParam::number), parm))
-	return 0;
-      sdBuilder.syntax->setQuantity(quantity, parm.n);
-    }
-    if (sdBuilder.sd->scopeInstance()) {
-      for (int i = 0; i < Syntax::nQuantity; i++)
-        if (sdBuilder.syntax->quantity(Syntax::Quantity(i))
-	    < syntax().quantity(Syntax::Quantity(i)))
-	   message(ParserMessages::scopeInstanceQuantity,
-		   StringMessageArg(sd().quantityName(Syntax::Quantity(i))));
-    }
-  }
-  if (parm.type == SdParam::reservedName + Sd::rENTITIES)
-    return sdParseEntities(sdBuilder, parm);
-  else
-    return 1;
-}
-
-Boolean Parser::sdParseEntities(SdBuilder &sdBuilder, SdParam &parm)
-{
-  int final = (sdBuilder.externalSyntax
-	       ? int(SdParam::eE)
-	       : SdParam::reservedName + Sd::rFEATURES);
-  for (;;) {
-    if (!parseSdParam(AllowedSdParams(final, SdParam::paramLiteral), parm))
-      return 0;
-    if (parm.type != SdParam::paramLiteral)
-      break;
-    StringC name;
-    if (!translateSyntax(sdBuilder, parm.paramLiteralText, name))
-      name.resize(0);
-    else if (name.size() == 0
-	     || !sdBuilder.syntax->isNameStartCharacter(name[0])) {
-      message(ParserMessages::entityNameSyntax, StringMessageArg(name));
-      name.resize(0);
-    }
-    else {
-      // Check that its a valid name in the declared syntax
-      for (size_t i = 1; i < name.size(); i++)
-	if (!sdBuilder.syntax->isNameCharacter(name[i])) {
-	  message(ParserMessages::entityNameSyntax, StringMessageArg(name));
-	  name.resize(0);
-	  break;
-	}
-    }
-    if (!parseSdParam(AllowedSdParams(SdParam::number), parm))
-      return 0;
-    Char c;
-    if (translateSyntax(sdBuilder, parm.n, c) && name.size())
-      sdBuilder.syntax->addEntity(name, c);
-  }
-  return 1;
-}
-
-Boolean Parser::sdParseFeatures(SdBuilder &sdBuilder, SdParam &parm)
-{
-  struct FeatureInfo {
-    Sd::ReservedName name;
-    enum {
-      none,
-      boolean,
-      number,
-      netenabl
-    } arg;
-  };
-  static FeatureInfo features[] = {
-    { Sd::rMINIMIZE, FeatureInfo::none },
-    { Sd::rDATATAG, FeatureInfo::boolean },
-    { Sd::rOMITTAG, FeatureInfo::boolean },
-    { Sd::rRANK, FeatureInfo::boolean },
-    { Sd::rSHORTTAG, FeatureInfo::none },
-    { Sd::rSTARTTAG, FeatureInfo::none },
-    { Sd::rEMPTY, FeatureInfo::boolean },
-    { Sd::rUNCLOSED, FeatureInfo::boolean },
-    { Sd::rNETENABL, FeatureInfo::netenabl },
-    { Sd::rENDTAG, FeatureInfo::none },
-    { Sd::rEMPTY, FeatureInfo::boolean },
-    { Sd::rUNCLOSED, FeatureInfo::boolean },
-    { Sd::rATTRIB, FeatureInfo::none },
-    { Sd::rDEFAULT, FeatureInfo::boolean },
-    { Sd::rOMITNAME, FeatureInfo::boolean },
-    { Sd::rVALUE, FeatureInfo::boolean },
-    { Sd::rEMPTYNRM, FeatureInfo::boolean },
-    { Sd::rIMPLYDEF, FeatureInfo::none },
-    { Sd::rATTLIST, FeatureInfo::boolean },
-    { Sd::rDOCTYPE, FeatureInfo::boolean },
-    { Sd::rELEMENT, FeatureInfo::boolean },
-    { Sd::rENTITY, FeatureInfo::boolean },
-    { Sd::rNOTATION, FeatureInfo::boolean },
-    { Sd::rLINK, FeatureInfo::none },
-    { Sd::rSIMPLE, FeatureInfo::number },
-    { Sd::rIMPLICIT, FeatureInfo::boolean },
-    { Sd::rEXPLICIT, FeatureInfo::number },
-    { Sd::rOTHER, FeatureInfo::none },
-    { Sd::rCONCUR, FeatureInfo::number },
-    { Sd::rSUBDOC, FeatureInfo::number },
-    { Sd::rFORMAL, FeatureInfo::boolean },
-    { Sd::rURN, FeatureInfo::boolean },
-    { Sd::rKEEPRSRE, FeatureInfo::boolean },
-    { Sd::rVALIDITY, FeatureInfo::none },
-  };
-  int booleanFeature = 0;
-  int numberFeature = 0;
-  for (size_t i = 0; i < SIZEOF(features); i++) {
-    switch (features[i].name) {
-    case Sd::rSTARTTAG:
-      // SHORTTAG
-      if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rSTARTTAG,
-					SdParam::reservedName + Sd::rNO,
-					SdParam::reservedName + Sd::rYES),
-			parm))
-	return 0;
-      if (parm.type == SdParam::reservedName + Sd::rSTARTTAG)
-	break;
-      sdBuilder.sd->setShorttag(parm.type == SdParam::reservedName + Sd::rYES);
-      while (features[++i].name != Sd::rEMPTYNRM)
-	if (features[i].arg == FeatureInfo::boolean)
-	  booleanFeature++;
-      // fall through
-    case Sd::rEMPTYNRM:
-      if (!parseSdParam(AllowedSdParams(SdParam::reservedName
-				        + features[i].name,
-				        SdParam::reservedName
-				        + features[i + 7].name), parm))
-	return 0;
-      if (parm.type == SdParam::reservedName + features[i].name)
-	requireWWW(sdBuilder);
-      else {
-	booleanFeature += 6;
-	i += 7;
-      }
-      break;
-    case Sd::rURN:
-      if (!parseSdParam(AllowedSdParams(SdParam::reservedName + features[i].name,
-	                                SdParam::reservedName + Sd::rAPPINFO), parm))
-	return 0;
-      if (parm.type == SdParam::reservedName + Sd::rAPPINFO)
-	return 1;
-      requireWWW(sdBuilder);
-      break;
-    default:
-      if (!parseSdParam(AllowedSdParams(SdParam::reservedName
-				        + features[i].name), parm))
-	return 0;
-      break;
-    }
-    switch (features[i].arg) {
-    case FeatureInfo::number:
-      if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rNO,
-					SdParam::reservedName + Sd::rYES),
-			parm))
-	return 0;
-      if (parm.type == SdParam::reservedName + Sd::rYES) {
-	if (!parseSdParam(AllowedSdParams(SdParam::number), parm))
-	  return 0;
-	sdBuilder.sd->setNumberFeature(Sd::NumberFeature(numberFeature++),
-				       parm.n);
-      }
-      else
-	sdBuilder.sd->setNumberFeature(Sd::NumberFeature(numberFeature++),
-				       0);
-      break;
-    case FeatureInfo::netenabl:
-      if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rNO,
-					SdParam::reservedName + Sd::rIMMEDNET,
-					SdParam::reservedName + Sd::rALL),
-			parm))
-	return 0;
-      switch (parm.type) {
-      case SdParam::reservedName + Sd::rNO:
-	sdBuilder.sd->setStartTagNetEnable(Sd::netEnableNo);
-	break;
-      case SdParam::reservedName + Sd::rIMMEDNET:
-	sdBuilder.sd->setStartTagNetEnable(Sd::netEnableImmednet);
-	break;
-      case SdParam::reservedName + Sd::rALL:
-	sdBuilder.sd->setStartTagNetEnable(Sd::netEnableAll);
-	break;
-      }
-      break;
-    case FeatureInfo::boolean:
-      if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rNO,
-					SdParam::reservedName + Sd::rYES),
-			parm))
-	return 0;
-      switch (features[i].name) {
-#if 0
-      case Sd::rDATATAG:
-	if (parm.type == SdParam::reservedName + Sd::rYES)
-	  message(ParserMessages::datatagNotImplemented);
-	break;
-#endif
-      case Sd::rEMPTYNRM:
-	if (parm.type == SdParam::reservedName + Sd::rNO
-	    && sdBuilder.sd->startTagNetEnable() == Sd::netEnableImmednet) {
-	  message(ParserMessages::immednetRequiresEmptynrm);
-	  sdBuilder.valid = 0;
-	}
-	break;
-      }
-      sdBuilder.sd->setBooleanFeature(Sd::BooleanFeature(booleanFeature++),
-				      parm.type == (SdParam::reservedName
-						    + Sd::rYES));
-      break;
-    }
-  }
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rNOASSERT,
-                                    SdParam::reservedName + Sd::rTYPE),
-		    parm))
-    return 0;
-  switch (parm.type) {
-  case SdParam::reservedName + Sd::rNOASSERT:
-    sdBuilder.sd->setTypeValid(0);
-    break;
-  case SdParam::reservedName + Sd::rTYPE:
-    sdBuilder.sd->setTypeValid(1);
-    break;
-  }
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rENTITIES), parm))
-    return 0;
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rNOASSERT,
-                                    SdParam::reservedName + Sd::rREF),
-		    parm))
-    return 0;
-  if (parm.type == SdParam::reservedName + Sd::rNOASSERT) {
-    sdBuilder.sd->setIntegrallyStored(0);
-    sdBuilder.sd->setEntityRef(Sd::entityRefAny);
-  }
-  else {
-    if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rNONE,
-                                      SdParam::reservedName + Sd::rINTERNAL,
-                                      SdParam::reservedName + Sd::rANY),
-		      parm))
-      return 0;
-    switch (parm.type) {
-    case SdParam::reservedName + Sd::rNONE:
-      sdBuilder.sd->setEntityRef(Sd::entityRefNone);
-      break;
-    case SdParam::reservedName + Sd::rINTERNAL:
-      sdBuilder.sd->setEntityRef(Sd::entityRefInternal);
-      break;
-    case SdParam::reservedName + Sd::rANY:
-      sdBuilder.sd->setEntityRef(Sd::entityRefAny);
-      break;
-    }
-    if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rINTEGRAL), parm))
-      return 0;
-    if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rNO,
-	                              SdParam::reservedName + Sd::rYES),
-		      parm))
-      return 0;
-    sdBuilder.sd->setIntegrallyStored(parm.type == (SdParam::reservedName + Sd::rYES));
-  }
-  return parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rAPPINFO),
-		      parm);
-}
-
-Boolean Parser::sdParseAppinfo(SdBuilder &, SdParam &parm)
-{
-  Location location(currentLocation());
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rNONE,
-				    SdParam::minimumLiteral),
-		    parm))
-    return 0;
-  AppinfoEvent *event;
-  if (parm.type == SdParam::minimumLiteral)
-    event = new (eventAllocator()) AppinfoEvent(parm.literalText, location);
-  else
-    event = new (eventAllocator()) AppinfoEvent(location);
-  eventHandler().appinfo(event);
-  return 1;
-}
-
-Boolean Parser::sdParseSeealso(SdBuilder &sdBuilder, SdParam &parm)
-{
-  SdParam::Type final = sdBuilder.external ? SdParam::eE : SdParam::mdc;
-  if (!parseSdParam(AllowedSdParams(SdParam::reservedName + Sd::rSEEALSO, final), parm))
-    return 0;
-  if (parm.type == final)
-    return 1;
-  requireWWW(sdBuilder);
-  if (!parseSdParam(AllowedSdParams(SdParam::minimumLiteral,
-				    SdParam::reservedName + Sd::rNONE), parm))
-    return 0;
-  if (parm.type == SdParam::reservedName + Sd::rNONE)
-    return parseSdParam(AllowedSdParams(final), parm);
-  do {
-    if (!parseSdParam(AllowedSdParams(SdParam::minimumLiteral, final), parm))
-      return 0;
-  } while (parm.type != final);
-  return 1;
-}
-
-Boolean Parser::translateSyntax(CharSwitcher &switcher,
-				const CharsetInfo &syntaxCharset,
-				const CharsetInfo &internalCharset,
-				WideChar syntaxChar,
-				Char &docChar)
-{
-  syntaxChar = switcher.subst(syntaxChar);
-  UnivChar univChar;
-  if (syntaxCharset.descToUniv(syntaxChar, univChar)
-      && univToDescCheck(internalCharset, univChar, docChar))
-    return 1;
-  message(sd().internalCharsetIsDocCharset()
-          ? ParserMessages::translateSyntaxCharDoc
-	  : ParserMessages::translateSyntaxCharInternal,
-	  NumberMessageArg(syntaxChar));
-  return 0;
-}
-
-void Parser::translateRange(SdBuilder &sdBuilder, SyntaxChar start,
-			    SyntaxChar end, ISet<Char> &chars)
-{
-#if 0
-  do {
-    Char docChar;
-    if (!translateSyntax(sdBuilder, start, docChar))
-      break;
-    chars.add(docChar);
-  } while (start++ != end);
-#endif
-  for (;;) {
-    SyntaxChar doneUpTo = end;
-    Boolean gotSwitch = 0;
-    WideChar firstSwitch;
-    for (size_t i = 0; i < sdBuilder.switcher.nSwitches(); i++) {
-      WideChar c = sdBuilder.switcher.switchFrom(i);
-      if (start <= c && c <= end) {
-	if (!gotSwitch) {
-	  gotSwitch = 1;
-	  firstSwitch = c;
-	}
-	else if (c < firstSwitch)
-	  firstSwitch = c;
-      }
-    }
-    if (gotSwitch && firstSwitch == start) {
-      doneUpTo = start;
-      Char docChar;
-      if (translateSyntax(sdBuilder, start, docChar))
-	chars.add(docChar);
-    }
-    else {
-      if (gotSwitch)
-	doneUpTo = firstSwitch - 1;
-      Char docChar;
-      Number count;
-      if (translateSyntaxNoSwitch(sdBuilder, start, docChar, count)) {
-	if (count - 1 < doneUpTo - start)
-	  doneUpTo = start + (count - 1);
-	chars.addRange(docChar, docChar + (doneUpTo - start));
-      }
-    }
-    if (doneUpTo == end)
-      break;
-    start = doneUpTo + 1;
-  }
-}
-
-Boolean Parser::translateSyntax(SdBuilder &sdBuilder,
-				WideChar syntaxChar, Char &docChar)
-{
-  Number count;
-  return translateSyntaxNoSwitch(sdBuilder,
-				 sdBuilder.switcher.subst(syntaxChar),
-				 docChar,
-				 count);
-}
-
-Boolean Parser::translateSyntaxNoSwitch(SdBuilder &sdBuilder,
-					WideChar syntaxChar, Char &docChar,
-					Number &count)
-{
-  Number n;
-  StringC str;
-  CharsetDeclRange::Type type;
-  const PublicId *id;
-  if (sdBuilder.sd->internalCharsetIsDocCharset()
-      && sdBuilder.syntaxCharsetDecl.getCharInfo(syntaxChar,
-					         id,
-					         type,
-					         n,
-					         str,
-					         count)) {
-    ISet<WideChar> docChars;
-    switch (type) {
-    case CharsetDeclRange::unused:
-      break;
-    case CharsetDeclRange::string:
-      sdBuilder.sd->docCharsetDecl().stringToChar(str, docChars);
-      break;
-    case CharsetDeclRange::number:
-      {
-	Number count2;
-	sdBuilder.sd->docCharsetDecl().numberToChar(id, n, docChars, count2);
-	if (!docChars.isEmpty() && count2 < count)
-	  count = count2;
-      }
-      break;
-    default:
-      CANNOT_HAPPEN();
-    }
-    if (!docChars.isEmpty()) {
-      if (!docChars.isSingleton() && options().warnSgmlDecl)
-	message(ParserMessages::ambiguousDocCharacter,
-		CharsetMessageArg(docChars));
-      ISetIter<WideChar> iter(docChars);
-      WideChar min, max;
-      if (iter.next(min, max) && min <= charMax) {
-	docChar = Char(min);
-	return 1;
-      }
-    }
-  }
-  UnivChar univChar;
-  WideChar alsoMax, count2;
-  if (sdBuilder.syntaxCharset.descToUniv(syntaxChar, univChar, alsoMax)
-      && univToDescCheck(sdBuilder.sd->internalCharset(), univChar, docChar,
-			 count2)) {
-    count = (alsoMax - syntaxChar) + 1;
-    if (count2 < count)
-      count = count2;
-    return 1;
-  }
-  sdBuilder.valid = 0;
-  message(sd().internalCharsetIsDocCharset()
-          ? ParserMessages::translateSyntaxCharDoc
-	  : ParserMessages::translateSyntaxCharInternal,
-	  NumberMessageArg(syntaxChar));
-  return 0;
-}
-
-
-Boolean Parser::translateSyntax(SdBuilder &sdBuilder,
-				const String<SyntaxChar> &syntaxString,
-				StringC &docString)
-{
-  docString.resize(0);
-  int ret = 1;
-  for (size_t i = 0; i < syntaxString.size(); i++) {
-    Char c;
-    if (translateSyntax(sdBuilder, syntaxString[i], c))
-      docString += c;
-    else
-      ret = 0;
-  }
-  return ret;
-}
-
-Boolean Parser::translateName(SdBuilder &sdBuilder,
-			      const StringC &name,
-			      StringC &str)
-{
-  str.resize(name.size());
-  for (size_t i = 0; i < name.size(); i++) {
-    UnivChar univChar;
-    Boolean ret = sd().internalCharset().descToUniv(name[i], univChar);
-    // Might switch hyphen or period.
-    univChar = translateUniv(univChar, sdBuilder.switcher,
-			     sdBuilder.syntaxCharset);
-    ASSERT(ret != 0);
-    if (!univToDescCheck(sdBuilder.sd->internalCharset(), univChar, str[i])) {
-      message(ParserMessages::translateDocChar, NumberMessageArg(univChar));
-      sdBuilder.valid = 0;
-      return 0;
-    }
-  }
-  return 1;
-}
-
-UnivChar Parser::translateUniv(UnivChar univChar,
-			       CharSwitcher &switcher,
-			       const CharsetInfo &syntaxCharset)
-{
-  WideChar syntaxChar;
-  ISet<WideChar> syntaxChars;
-  if (syntaxCharset.univToDesc(univChar, syntaxChar, syntaxChars) != 1) {
-    message(ParserMessages::missingSyntaxChar,
-	    NumberMessageArg(univChar));
-    return univChar;
-  }
-  SyntaxChar tem = switcher.subst(syntaxChar);
-  if (tem != syntaxChar && !syntaxCharset.descToUniv(tem, univChar))
-    message(sd().internalCharsetIsDocCharset()
-            ? ParserMessages::translateSyntaxCharDoc
-            : ParserMessages::translateSyntaxCharInternal,
-	    NumberMessageArg(tem));
-  return univChar;
-}
-
-Boolean Parser::checkNotFunction(const Syntax &syn, Char c)
-{
-  if (syn.charSet(Syntax::functionChar)->contains(c)) {
-    message(ParserMessages::oneFunction, NumberMessageArg(c));
-    return 0;
-  }
-  else
-    return 1;
-}
-
-
-// Check that it has at most one B sequence and that it
-// is not adjacent to a blank sequence.
-
-Boolean Parser::checkShortrefDelim(const Syntax &syn,
-				   const CharsetInfo &charset,
-				   const StringC &delim)
-{
-  Boolean hadB = 0;
-  Char letterB = charset.execToDesc('B');
-  const ISet<Char> *bSet = syn.charSet(Syntax::blank);
-  for (size_t i = 0; i < delim.size(); i++)
-    if (delim[i] == letterB) {
-      if (hadB) {
-	message(ParserMessages::multipleBSequence, StringMessageArg(delim));
-	return 0;
-      }
-      hadB = 1;
-      if (i > 0 && bSet->contains(delim[i - 1])) {
-	message(ParserMessages::blankAdjacentBSequence,
-		StringMessageArg(delim));
-	return 0;
-      }
-      while (i + 1 < delim.size() && delim[i + 1] == letterB)
-	i++;
-      if (i < delim.size() - 1 && bSet->contains(delim[i + 1])) {
-	message(ParserMessages::blankAdjacentBSequence,
-		StringMessageArg(delim));
-	return 0;
-      }
-    }
-  return 1;
-}
-
-Boolean Parser::checkGeneralDelim(const Syntax &syn, const StringC &delim)
-{
-  const ISet<Char> *functionSet = syn.charSet(Syntax::functionChar);
-  if (delim.size() > 0) {
-    Boolean allFunction = 1;
-    for (size_t i = 0; i < delim.size(); i++)
-      if (!functionSet->contains(delim[i]))
-	allFunction = 0;
-    if (allFunction) {
-      message(ParserMessages::generalDelimAllFunction,
-	      StringMessageArg(delim));
-      return 0;
-    }
-  }
-  return 1;
-}
-
-Boolean Parser::checkSwitches(CharSwitcher &switcher,
-			      const CharsetInfo &syntaxCharset)
-{
-  Boolean valid = 1;
-  for (size_t i = 0; i < switcher.nSwitches(); i++) {
-    WideChar c[2];
-    c[0] = switcher.switchFrom(i);
-    c[1] = switcher.switchTo(i);
-    for (int j = 0; j < 2; j++) {
-      UnivChar univChar;
-      if (syntaxCharset.descToUniv(c[j], univChar)) {
-	// Check that it is not Digit Lcletter or Ucletter
-	if ((UnivCharsetDesc::a <= univChar
-	     && univChar < UnivCharsetDesc::a + 26)
-	    || (UnivCharsetDesc::A <= univChar
-		&& univChar < UnivCharsetDesc::A + 26)
-	    || (UnivCharsetDesc::zero <= univChar
-		&& univChar < UnivCharsetDesc::zero + 10)) {
-	  message(ParserMessages::switchLetterDigit,
-		  NumberMessageArg(univChar));
-	  valid = 0;
-	}
-      }
-    }
-  }
-  return valid;
-}
-
-Boolean Parser::checkSwitchesMarkup(CharSwitcher &switcher)
-{
-  Boolean valid = 1;
-  size_t nSwitches = switcher.nSwitches();
-  for (size_t i = 0; i < nSwitches; i++)
-    if (!switcher.switchUsed(i)) {
-      // If the switch wasn't used,
-      // then the character wasn't a markup character.
-      message(ParserMessages::switchNotMarkup,
-	      NumberMessageArg(switcher.switchFrom(i)));
-      valid = 0;
-    }
-  return valid;
-}
-
-void Parser::checkSyntaxNamelen(const Syntax &syn)
-{
-  size_t namelen = syn.namelen();
-  int i;
-  for (i = 0; i < Syntax::nDelimGeneral; i++)
-    if (syn.delimGeneral(i).size() > namelen)
-      message(ParserMessages::delimiterLength,
-	      StringMessageArg(syn.delimGeneral(i)),
-	      NumberMessageArg(namelen));
-  for (i = 0; i < syn.nDelimShortrefComplex(); i++)
-    if (syn.delimShortrefComplex(i).size() > namelen)
-      message(ParserMessages::delimiterLength,
-	      StringMessageArg(syn.delimShortrefComplex(i)),
-	      NumberMessageArg(namelen));
-  for (i = 0; i < Syntax::nNames; i++)
-    if (syn.reservedName(Syntax::ReservedName(i)).size() > namelen
-	&& options().warnSgmlDecl)
-      message(ParserMessages::reservedNameLength,
-	      StringMessageArg(syn.reservedName(Syntax::ReservedName(i))),
-	      NumberMessageArg(namelen));
-}
-
-Boolean Parser::univToDescCheck(const CharsetInfo &charset, UnivChar from,
-				Char &to)
-{
-  WideChar c;
-  ISet<WideChar> descSet;
-  unsigned ret = charset.univToDesc(from, c, descSet);
-  if (ret > 1) {
-    if (options().warnSgmlDecl)
-      message(ParserMessages::ambiguousDocCharacter,
-	      CharsetMessageArg(descSet));
-    ret = 1;
-  }
-  if (ret && c <= charMax) {
-    to = Char(c);
-    return 1;
-  }
-  return 0;
-}
-
-Boolean Parser::univToDescCheck(const CharsetInfo &charset, UnivChar from,
-				Char &to, WideChar &count)
-{
-  WideChar c;
-  ISet<WideChar> descSet;
-  unsigned ret = charset.univToDesc(from, c, descSet, count);
-  if (ret > 1) {
-    if (options().warnSgmlDecl)
-      message(ParserMessages::ambiguousDocCharacter,
-	      CharsetMessageArg(descSet));
-    ret = 1;
-  }
-  if (ret && c <= charMax) {
-    to = Char(c);
-    return 1;
-  }
-  return 0;
-}
-
-Boolean Parser::parseSdParam(const AllowedSdParams &allow,
-			     SdParam &parm)
-{
-  for (;;) {
-    Token token = getToken(sdMode);
-    switch (token) {
-    case tokenUnrecognized:
-      if (reportNonSgmlCharacter())
-	break;
-      {
-	message(ParserMessages::markupDeclarationCharacter,
-		StringMessageArg(currentToken()),
-		AllowedSdParamsMessageArg(allow, sdPointer()));
-      }
-      return 0;
-    case tokenEe:
-      if (allow.param(SdParam::eE)) {
-	parm.type = SdParam::eE;
-	if (currentMarkup())
-	  currentMarkup()->addEntityEnd();
-	popInputStack();
-	return 1;
-      }
-      message(ParserMessages::sdEntityEnd,
-	      AllowedSdParamsMessageArg(allow, sdPointer()));
-      return 0;
-    case tokenS:
-      if (currentMarkup())
-	currentMarkup()->addS(currentChar());
-      break;
-    case tokenCom:
-      if (!parseComment(sdcomMode))
-	return 0;
-      break;
-    case tokenDso:
-    case tokenGrpo:
-    case tokenMinusGrpo:
-    case tokenPlusGrpo:
-    case tokenRni:
-    case tokenPeroNameStart:
-    case tokenPeroGrpo:
-      sdParamInvalidToken(token, allow);
-      return 0;
-    case tokenMinus:
-      if (allow.param(SdParam::minus)) {
-	parm.type = SdParam::minus;
-	return 1;
-      }
-      sdParamInvalidToken(tokenMinus, allow);
-      return 0;
-    case tokenLita:
-    case tokenLit:
-      {
-	Boolean lita = (token == tokenLita);
-	if (allow.param(SdParam::minimumLiteral)) {
-	  if (!parseMinimumLiteral(lita, parm.literalText))
-	    return 0;
-	  parm.type = SdParam::minimumLiteral;
-	  if (currentMarkup())
-	    currentMarkup()->addLiteral(parm.literalText);
-	}
-	else if (allow.param(SdParam::paramLiteral)) {
-	  if (!parseSdParamLiteral(lita, parm.paramLiteralText))
-	    return 0;
-	  parm.type = SdParam::paramLiteral;
-	}
-	else if (allow.param(SdParam::systemIdentifier)) {
-	  if (!parseSdSystemIdentifier(lita, parm.literalText))
-	    return 0;
-	  parm.type = SdParam::systemIdentifier;
-	}
-	else {
-	  sdParamInvalidToken(token, allow);
-	  return 0;
-	}
-	return 1;
-      }
-    case tokenMdc:
-      if (allow.param(SdParam::mdc)) {
-	parm.type = SdParam::mdc;
-	if (currentMarkup())
-	  currentMarkup()->addDelim(Syntax::dMDC);
-	return 1;
-      }
-      sdParamInvalidToken(tokenMdc, allow);
-      return 0;
-    case tokenNameStart:
-      {
-	extendNameToken(syntax().namelen(), ParserMessages::nameLength);
-	getCurrentToken(syntax().generalSubstTable(), parm.token);
-	if (allow.param(SdParam::capacityName)) {
-	  if (sd().lookupCapacityName(parm.token, parm.capacityIndex)) {
-	    parm.type = SdParam::capacityName;
-	    if (currentMarkup())
-	      currentMarkup()->addName(currentInput());
-	    return 1;
-	  }
-	}
-	if (allow.param(SdParam::referenceReservedName)) {
-	  if (syntax().lookupReservedName(parm.token,
-					  &parm.reservedNameIndex)) {
-	    parm.type = SdParam::referenceReservedName;
-	    if (currentMarkup())
-	      currentMarkup()->addName(currentInput());
-	    return 1;
-	  }
-	}
-	if (allow.param(SdParam::generalDelimiterName)) {
-	  if (sd().lookupGeneralDelimiterName(parm.token,
-					      parm.delimGeneralIndex)) {
-	    parm.type = SdParam::generalDelimiterName;
-	    if (currentMarkup())
-	      currentMarkup()->addName(currentInput());
-	    return 1;
-	  }
-	}
-	if (allow.param(SdParam::quantityName)) {
-	  if (sd().lookupQuantityName(parm.token, parm.quantityIndex)) {
-	    parm.type = SdParam::quantityName;
-	    if (currentMarkup())
-	      currentMarkup()->addName(currentInput());
-	    return 1;
-	  }
-	}
-	for (int i = 0;; i++) {
-	  SdParam::Type t = allow.get(i);
-	  if (t == SdParam::invalid)
-	    break;
-	  if (t >= SdParam::reservedName) {
-	    Sd::ReservedName sdReservedName
-	      = Sd::ReservedName(t - SdParam::reservedName);
-	    if (parm.token == sd().reservedName(sdReservedName)) {
-	      parm.type = t;
-	      if (currentMarkup())
-		currentMarkup()->addSdReservedName(sdReservedName,
-						  currentInput());
-	      return 1;
-	    }
-	  }
-	}
-	if (allow.param(SdParam::name)) {
-	  parm.type = SdParam::name;
-	  if (currentMarkup())
-	    currentMarkup()->addName(currentInput());
-	  return 1;
-	}
-	{
-	  message(ParserMessages::sdInvalidNameToken,
-		  StringMessageArg(parm.token),
-		  AllowedSdParamsMessageArg(allow, sdPointer()));
-	}
-	return 0;
-      }
-    case tokenDigit:
-      if (allow.param(SdParam::number)) {
-	extendNumber(syntax().namelen(), ParserMessages::numberLength);
-	parm.type = SdParam::number;
-	unsigned long n;
-	if (!stringToNumber(currentInput()->currentTokenStart(),
-			    currentInput()->currentTokenLength(),
-			    n)
-	    || n > Number(-1)) {
-	  message(ParserMessages::numberTooBig,
-		  StringMessageArg(currentToken()));
-	  parm.n = Number(-1);
-	}
-	else {
-	  if (currentMarkup())
-	    currentMarkup()->addNumber(currentInput());
-	  parm.n = Number(n);
-	}
-	Token token = getToken(sdMode);
-	if (token == tokenNameStart)
-	  message(ParserMessages::psRequired);
-	currentInput()->ungetToken();
-	return 1;
-      }
-      sdParamInvalidToken(tokenDigit, allow);
-      return 0;
-    default:
-      CANNOT_HAPPEN();
-    }
-  }
-}
-
-// This is a separate function, because we might want SyntaxChar
-// to be bigger than Char.
-
-Boolean Parser::parseSdParamLiteral(Boolean lita, String<SyntaxChar> &str)
-{
-  Location loc(currentLocation());
-  loc += 1;
-  SdText text(loc, lita);	// first character of content
-  str.resize(0);
-  const unsigned refLitlen = Syntax::referenceQuantity(Syntax::qLITLEN);
-
-  Mode mode = lita ? sdplitaMode : sdplitMode;
-  for (;;) {
-    Token token = getToken(mode);
-    switch (token) {
-    case tokenEe:
-      message(ParserMessages::literalLevel);
-      return 0;
-    case tokenUnrecognized:
-      if (reportNonSgmlCharacter())
-	break;
-      if (options().errorSignificant)
-	message(ParserMessages::sdLiteralSignificant,
-		StringMessageArg(currentToken()));
-      text.addChar(currentChar(), currentLocation());
-      break;
-    case tokenCroDigit:
-      {
-	InputSource *in = currentInput();
-	Location startLocation = currentLocation();
-	in->discardInitial();
-	extendNumber(syntax().namelen(), ParserMessages::numberLength);
-	unsigned long n;
-	Boolean valid;
-	if (!stringToNumber(in->currentTokenStart(),
-			    in->currentTokenLength(),
-			    n)
-	    || n > syntaxCharMax) {
-	  message(ParserMessages::syntaxCharacterNumber,
-		  StringMessageArg(currentToken()));
-	  valid = 0;
-	}
-	else
-	  valid = 1;
-	Owner<Markup> markupPtr;
-	if (eventsWanted().wantPrologMarkup()) {
-	  markupPtr = new Markup;
-	  markupPtr->addDelim(Syntax::dCRO);
-	  markupPtr->addNumber(in);
-	  switch (getToken(refMode)) {
-	  case tokenRefc:
-	    markupPtr->addDelim(Syntax::dREFC);
-	    break;
-	  case tokenRe:
-	    markupPtr->addRefEndRe();
-	    if (options().warnRefc)
-	      message(ParserMessages::refc);
-	    break;
-	  default:
-	    if (options().warnRefc)
-	      message(ParserMessages::refc);
-	    break;
-	  }
-	}
-	else if (options().warnRefc) {
-	  if (getToken(refMode) != tokenRefc)
-	    message(ParserMessages::refc);
-	}
-	else
-	  (void)getToken(refMode);
-	if (valid)
-	  text.addChar(SyntaxChar(n),
-		       Location(new NumericCharRefOrigin(startLocation,
-							 currentLocation().index()
-							 + currentInput()->currentTokenLength()
-							 - startLocation.index(),
-							 markupPtr),
-				0));
-      }
-      break;
-    case tokenCroNameStart:
-      if (!parseNamedCharRef())
-	return 0;
-      break;
-    case tokenLit:
-    case tokenLita:
-      goto done;
-    case tokenPeroNameStart:
-    case tokenPeroGrpo:
-      message(ParserMessages::sdParameterEntity);
-      {
-	Location loc(currentLocation());
-	const Char *p = currentInput()->currentTokenStart();
-	for (size_t count = currentInput()->currentTokenLength();
-	     count > 0;
-	     count--) {
-	  text.addChar(*p++, loc);
-	  loc += 1;
-	}
-      }
-      break;
-    case tokenChar:
-      if (text.string().size() > refLitlen
-	  && currentChar() == syntax().standardFunction(Syntax::fRE)) {
-	message(ParserMessages::parameterLiteralLength, NumberMessageArg(refLitlen));
-	// guess that the closing delimiter has been omitted
-	message(ParserMessages::literalClosingDelimiter);
-	return 0;
-      }
-      text.addChar(currentChar(), currentLocation());
-      break;
-    }
-  }
- done:
-  if (text.string().size() > refLitlen)
-    message(ParserMessages::parameterLiteralLength,
-	    NumberMessageArg(refLitlen));
-  
-  str = text.string();
-  if (currentMarkup())
-    currentMarkup()->addSdLiteral(text);
-  return 1;
-}
-
-Boolean Parser::parseSdSystemIdentifier(Boolean lita, Text &text)
-{
-  text.addStartDelim(currentLocation());
-
-  const unsigned refLitlen = Syntax::referenceQuantity(Syntax::qLITLEN);
-
-  Mode mode = lita ? sdslitaMode : sdslitMode;
-  for (;;) {
-    Token token = getToken(mode);
-    switch (token) {
-    case tokenEe:
-      message(ParserMessages::literalLevel);
-      return 0;
-    case tokenUnrecognized:
-      if (reportNonSgmlCharacter())
-	break;
-      if (options().errorSignificant)
-	message(ParserMessages::sdLiteralSignificant,
-		StringMessageArg(currentToken()));
-      text.addChar(currentChar(), currentLocation());
-      break;
-    case tokenLit:
-    case tokenLita:
-      text.addEndDelim(currentLocation(), token == tokenLita);
-      goto done;
-    case tokenChar:
-      text.addChar(currentChar(), currentLocation());
-      break;
-    default:
-      CANNOT_HAPPEN();
-    }
-  }
-done:
-  if (text.string().size() > refLitlen)
-    message(ParserMessages::systemIdentifierLength,
-	    NumberMessageArg(refLitlen));
-  if (currentMarkup())
-    currentMarkup()->addLiteral(text);
-  return 1;
-}
-
-Boolean Parser::stringToNumber(const Char *s, size_t length,
-			       unsigned long &result)
-{
-  unsigned long n = 0;
-  for (; length > 0; length--, s++) {
-    int val = sd().digitWeight(*s);
-    if (n <= ULONG_MAX/10 && (n *= 10) <= ULONG_MAX - val)
-      n += val;
-    else
-      return 0;
-  }
-  result = n;
-  return 1;
-}
-
-void Parser::sdParamInvalidToken(Token token,
-				 const AllowedSdParams &allow)
-{
-  message(ParserMessages::sdParamInvalidToken,
-	  TokenMessageArg(token, sdMode, syntaxPointer(), sdPointer()),
-	  AllowedSdParamsMessageArg(allow, sdPointer()));
-}
-
-void Parser::sdParamConvertToLiteral(SdParam &parm)
-{
-  if (parm.type == SdParam::number) {
-    parm.type = SdParam::paramLiteral;
-    parm.paramLiteralText.resize(1);
-    parm.paramLiteralText[0] = parm.n;
-  }
-}
-
-void Parser::requireWWW(SdBuilder &sdBuilder)
-{
-  if (!sdBuilder.www) {
-    message(ParserMessages::wwwRequired);
-    sdBuilder.www = 1;
-  }
-}
-
-AllowedSdParams::AllowedSdParams(SdParam::Type arg1, SdParam::Type arg2,
-				 SdParam::Type arg3, SdParam::Type arg4,
-				 SdParam::Type arg5, SdParam::Type arg6)
-{
-  allow_[0] = arg1;
-  allow_[1] = arg2;
-  allow_[2] = arg3;
-  allow_[3] = arg4;
-  allow_[4] = arg5;
-  allow_[5] = arg6;
-}
-
-Boolean AllowedSdParams::param(SdParam::Type t) const
-{
-  for (int i = 0; i < maxAllow && allow_[i] != SdParam::invalid; i++)
-    if (t == allow_[i])
-      return 1;
-  return 0;
-}
-
-SdParam::Type AllowedSdParams::get(int i) const
-{
-  return i < 0 || i >= maxAllow ? SdParam::Type(SdParam::invalid) : allow_[i];
-}
-
-AllowedSdParamsMessageArg::AllowedSdParamsMessageArg(
-  const AllowedSdParams &allow,
-  const ConstPtr<Sd> &sd)
-: allow_(allow), sd_(sd)
-{
-}
-
-MessageArg *AllowedSdParamsMessageArg::copy() const
-{
-  return new AllowedSdParamsMessageArg(*this);
-}
-
-void AllowedSdParamsMessageArg::append(MessageBuilder &builder) const
-{
-  for (int i = 0;; i++) {
-    SdParam::Type type = allow_.get(i);
-    if (type == SdParam::invalid)
-      break;
-    if (i != 0)
-      builder.appendFragment(ParserMessages::listSep);
-    switch (type) {
-    case SdParam::eE:
-      builder.appendFragment(ParserMessages::entityEnd);
-      break;
-    case SdParam::minimumLiteral:
-      builder.appendFragment(ParserMessages::minimumLiteral);
-      break;
-    case SdParam::mdc:
-      {
-	builder.appendFragment(ParserMessages::delimStart);
-	Char c = sd_->execToInternal('>');
-	builder.appendChars(&c, 1);
-	builder.appendFragment(ParserMessages::delimEnd);
-      }
-      break;
-    case SdParam::number:
-      builder.appendFragment(ParserMessages::number);
-      break;
-    case SdParam::name:
-      builder.appendFragment(ParserMessages::name);
-      break;
-    case SdParam::paramLiteral:
-      builder.appendFragment(ParserMessages::parameterLiteral);
-      break;
-    case SdParam::systemIdentifier:
-      builder.appendFragment(ParserMessages::systemIdentifier);
-      break;
-    case SdParam::capacityName:
-      builder.appendFragment(ParserMessages::capacityName);
-      break;
-    case SdParam::generalDelimiterName:
-      builder.appendFragment(ParserMessages::generalDelimiteRoleName);
-      break;
-    case SdParam::referenceReservedName:
-      builder.appendFragment(ParserMessages::referenceReservedName);
-      break;
-    case SdParam::quantityName:
-      builder.appendFragment(ParserMessages::quantityName);
-      break;
-    case SdParam::minus:
-      {
-	StringC str(sd_->execToInternal("..."));
-	builder.appendChars(str.data(), str.size());
-	break;
-      }
-    default:
-      {
-	StringC str(sd_->reservedName(type - SdParam::reservedName));
-	builder.appendChars(str.data(), str.size());
-	break;
-      }
-    }
-  }
-}
-
-SdBuilder::SdBuilder()
-: valid(1), externalSyntax(0), enr(0), www(0), external(0)
-{
-}
-
-void SdBuilder::addFormalError(const Location &location,
-			       const MessageType1 &message,
-			       const StringC &id)
-{
-  formalErrorList.insert(new SdFormalError(location, message, id));
-}
-
-SdFormalError::SdFormalError(const Location &location,
-			     const MessageType1 &message,
-			     const StringC &id)
-: location_(location),
-  message_(&message),
-  id_(id)
-{
-}
-
-void SdFormalError::send(ParserState &parser)
-{
-  parser.Messenger::setNextLocation(location_);
-  parser.message(*message_, StringMessageArg(id_));
-}
-
-CharSwitcher::CharSwitcher()
-{
-}
-
-void CharSwitcher::addSwitch(WideChar from, WideChar to)
-{
-  switches_.push_back(from);
-  switches_.push_back(to);
-  switchUsed_.push_back(0);
-}
-
-SyntaxChar CharSwitcher::subst(WideChar c)
-{
-  for (size_t i = 0; i < switches_.size(); i += 2)
-    if (switches_[i] == c) {
-      switchUsed_[i/2] = 1;
-      return switches_[i + 1];
-    }
-  return c;
-}
-
-size_t CharSwitcher::nSwitches() const
-{
-  return switchUsed_.size();
-}
-
-Boolean CharSwitcher::switchUsed(size_t i) const
-{
-  return switchUsed_[i];
-}
-
-WideChar CharSwitcher::switchFrom(size_t i) const
-{
-  return switches_[i*2];
-}
-
-WideChar CharSwitcher::switchTo(size_t i) const
-{
-  return switches_[i*2 + 1];
-}
-
-CharsetMessageArg::CharsetMessageArg(const ISet<WideChar> &set)
-: set_(set)
-{
-}
-
-MessageArg *CharsetMessageArg::copy() const
-{
-  return new CharsetMessageArg(*this);
-}
-
-void CharsetMessageArg::append(MessageBuilder &builder) const
-{
-  ISetIter<WideChar> iter(set_);
-  WideChar min, max;
-  Boolean first = 1;
-  while (iter.next(min, max)) {
-    if (first)
-      first = 0;
-    else
-      builder.appendFragment(ParserMessages::listSep);
-    builder.appendNumber(min);
-    if (max != min) {
-      builder.appendFragment(max == min + 1
-			     ? ParserMessages::listSep
-			     : ParserMessages::rangeSep);
-      builder.appendNumber(max);
-    }
-  }
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/parser_inst.m4	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,328 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1994 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "splib.h"
-
-#ifdef SP_MANUAL_INST
-
-#define	SP_DEFINE_TEMPLATES
-#include "Owner.h"
-#include "CopyOwner.h"
-#include "Vector.h"
-#include "NCVector.h"
-#include "Ptr.h"
-#include "IList.h"
-#include "IQueue.h"
-#include "List.h"
-#include "OwnerTable.h"
-#include "PointerTable.h"
-#include "HashTable.h"
-#include "HashTableItemBase.h"
-#include "StringOf.h"
-#include "IListIter.h"
-#include "ListIter.h"
-#include "NamedResourceTable.h"
-#undef SP_DEFINE_TEMPLATES
-
-#include <stddef.h>
-#include "Attribute.h"
-#include "Attributed.h"
-#include "CharsetDecl.h"
-#include "ContentToken.h"
-#include "Dtd.h"
-#include "ElementType.h"
-#include "Entity.h"
-#include "EntityCatalog.h"
-#include "EntityManager.h"
-#include "EquivClass.h"
-#include "Event.h"
-#include "Hash.h"
-#include "HashTable.h"
-#include "HashTableItemBase.h"
-#include "InputSource.h"
-#include "LinkProcess.h"
-#include "Lpd.h"
-#include "LpdEntityRef.h"
-#include "Markup.h"
-#include "NamedResource.h"
-#include "NamedTable.h"
-#include "Named.h"
-#include "NameToken.h"
-#include "OpenElement.h"
-#include "OutputState.h"
-#include "Recognizer.h"
-#include "Sd.h"
-#include "SdText.h"
-#include "SdFormalError.h"
-#include "SrInfo.h"
-#include "StringResource.h"
-#include "Syntax.h"
-#include "Text.h"
-#include "Trie.h"
-#include "Undo.h"
-#include "Boolean.h"
-#include "types.h"
-#include "Id.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-__instantiate(Ptr < Entity >\
-)
-__instantiate(ConstPtr < Entity >\
-)
-__instantiate(Ptr < Notation >\
-)
-__instantiate(ConstPtr < Notation >\
-)
-__instantiate(Ptr < Recognizer >\
-)
-__instantiate(ConstPtr < Recognizer >\
-)
-__instantiate(Ptr < EntityOrigin >\
-)
-__instantiate(ConstPtr < EntityOrigin >\
-)
-__instantiate(Ptr < AttributeValue >\
-)
-__instantiate(ConstPtr < AttributeValue >\
-)
-__instantiate(Ptr < AttributeDefinitionList >\
-)
-__instantiate(ConstPtr < AttributeDefinitionList >\
-)
-__instantiate(Ptr < ElementDefinition >\
-)
-__instantiate(ConstPtr < ElementDefinition >\
-)
-__instantiate(Ptr < Dtd >\
-)
-__instantiate(ConstPtr < Dtd >\
-)
-__instantiate(Ptr < Sd >\
-)
-__instantiate(ConstPtr < Sd >\
-)
-__instantiate(Ptr < Syntax >\
-)
-__instantiate(ConstPtr < Syntax >\
-)
-__instantiate(Ptr < SourceLinkRuleResource >\
-)
-__instantiate(ConstPtr < SourceLinkRuleResource >\
-)
-__instantiate(Ptr < Lpd >\
-)
-__instantiate(ConstPtr < Lpd >\
-)
-__instantiate(Ptr < ComplexLpd >\
-)
-__instantiate(ConstPtr < ComplexLpd >\
-)
-__instantiate(CopyOwner < BlankTrie >\
-)
-__instantiate(CopyOwner < AttributeSemantics >\
-)
-__instantiate(CopyOwner < AttributeDefinition >\
-)
-__instantiate(CopyOwner < DeclaredValue >\
-)
-__instantiate(NCVector < Owner < ContentToken >   >\
-)
-__instantiate(Vector < CopyOwner < AttributeDefinition >   >\
-)
-__instantiate(NCVector < Owner < AttributeList >   >\
-)
-__instantiate(Vector < AttributeList >\
-)
-__instantiate(`HashTableItem < StringC, int > ')
-__instantiate(`HashTable < StringC, int > ')
-__instantiate(`HashTableItem < StringC, Char > ')
-__instantiate(`HashTable < StringC, Char > ')
-__instantiate(IList < EquivClass >\
-)
-__instantiate(IList < InputSource >\
-)
-__instantiate(IList < OpenElement >\
-)
-__instantiate(IList < Event >\
-)
-__instantiate(IList < OutputStateLevel >\
-)
-__instantiate(IList < SdFormalError >\
-)
-__instantiate(IList < Undo >\
-)
-__instantiate(IQueue < MessageEvent >\
-)
-__instantiate(IQueue < Event >\
-)
-__instantiate(`OwnerTable < Named,
-	StringC, Hash, NamedTableKeyFunction > ')
-__instantiate(`OwnerTableIter < Named,
-	StringC, Hash, NamedTableKeyFunction > ')
-__instantiate(Owner < AndInfo >\
-)
-__instantiate(Owner < BlankTrie >\
-)
-__instantiate(Owner < EquivClass >\
-)
-__instantiate(Owner < ModelGroup >\
-)
-__instantiate(Owner < OpenElement >\
-)
-__instantiate(Owner < ContentToken >\
-)
-__instantiate(Owner < DeclaredValue >\
-)
-__instantiate(Owner < LeafContentToken >\
-)
-__instantiate(Owner < AttributeSemantics >\
-)
-__instantiate(Owner < CompiledModelGroup >\
-)
-__instantiate(Owner < AttributeDefinition >\
-)
-__instantiate(Owner < AttributeList >\
-)
-__instantiate(Owner < Trie >\
-)
-__instantiate(Owner < Markup >\
-)
-__instantiate(`PointerTableIter < Named*,
-	StringC, Hash, NamedTableKeyFunction > ')
-__instantiate(`PointerTable < Named*,
-	StringC, Hash, NamedTableKeyFunction > ')
-__instantiate(`PointerTable < Ptr < NamedResource >,
-	StringC, Hash, NamedResourceKeyFunction > ')
-__instantiate(`PointerTableIter < Ptr < NamedResource >,
-	StringC, Hash, NamedResourceKeyFunction > ')
-__instantiate(Vector < ConstPtr < Entity >   >\
-)
-__instantiate(Vector < NameToken >\
-)
-__instantiate(Vector < CharsetDeclRange >\
-)
-__instantiate(Vector < CharsetDeclSection >\
-)
-__instantiate(Vector < Ptr < Dtd >   >\
-)
-__instantiate(Vector < Attribute >\
-)
-__instantiate(Vector < TextItem >\
-)
-__instantiate(Vector < SdTextItem >\
-)
-__instantiate(Vector < MarkupItem >\
-)
-__instantiate(Vector < RankStem* >\
-)
-__instantiate(Vector < const RankStem* >\
-)
-__instantiate(Vector < Attributed* >\
-)
-__instantiate(Vector < ElementType* >\
-)
-__instantiate(Vector < const ElementType* >\
-)
-__instantiate(Vector < ConstPtr < Notation >   >\
-)
-__instantiate(Vector < Ptr < NamedResource >   >\
-)
-__instantiate(Vector < LastSet >\
-)
-__instantiate(Vector < ConstPtr < AttributeValue >   >\
-)
-__instantiate(Vector < SrInfo >\
-)
-__instantiate(Vector < Named* >\
-)
-__instantiate(Vector < FirstSet >\
-)
-__instantiate(Vector < const AttributeList * >\
-)
-__instantiate(Vector < ConstPtr < ElementDefinition >   >\
-)
-__instantiate(Vector < Text >\
-)
-__instantiate(Vector < Location >\
-)
-__instantiate(Vector < NamedResourceTable < Entity >   >\
-)
-__instantiate(Vector < ContentModelAmbiguity >\
-)
-__instantiate(Vector < Transition >\
-)
-__instantiate(Vector < LeafContentToken* >\
-)
-#if ((!defined(SIZEOF_SIZE_T)) || \
-	(!defined(SIZEOF_UNSIGNED_INT)) || \
-	(SIZEOF_SIZE_T != SIZEOF_UNSIGNED_INT))
-__instantiate(Vector < unsigned int >\
-)
-#else
-__instantiate(Vector < size_t >\
-)
-#endif
-__instantiate(NamedTable < Id >\
-)
-__instantiate(NamedTableIter < Id >\
-)
-__instantiate(IListIter < EquivClass >\
-)
-__instantiate(IListIter < InputSource >\
-)
-
-__instantiate(NamedResourceTable < Notation >\
-)
-__instantiate(NamedResourceTable < Entity >\
-)
-__instantiate(NamedResourceTableIter < Entity >\
-)
-__instantiate(NamedResourceTableIter < Notation >\
-)
-__instantiate(ConstNamedResourceTableIter < Entity >\
-)
-__instantiate(ConstNamedResourceTableIter < Notation >\
-)
-
-__instantiate(Vector < IdLinkRule >\
-)
-__instantiate(Vector < ConstPtr < SourceLinkRuleResource >   >\
-)
-__instantiate(Vector < Vector < ConstPtr < SourceLinkRuleResource >   >   >\
-)
-__instantiate(Vector < ResultElementSpec >\
-)
-__instantiate(Vector < ConstPtr < AttributeDefinitionList >   >\
-)
-__instantiate(Vector < ConstPtr < Lpd >   >\
-)
-__instantiate(Vector < LpdEntityRef * >\
-)
-__instantiate(`PointerTable < LpdEntityRef *,
-	LpdEntityRef, LpdEntityRef, LpdEntityRef > ')
-__instantiate(`PointerTableIter < LpdEntityRef *,
-	LpdEntityRef, LpdEntityRef, LpdEntityRef > ')
-__instantiate(`OwnerTable < LpdEntityRef,
-	LpdEntityRef, LpdEntityRef, LpdEntityRef > ')
-__instantiate(`OwnerTableIter < LpdEntityRef,
-	LpdEntityRef, LpdEntityRef, LpdEntityRef > ')
-__instantiate(IList < LinkProcessOpenElement >\
-)
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* SP_MANUAL_INST */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/splib.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-// This file is used to build the pre-compiled header on those
-// systems that support it.
-
-#include "splib.h"
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/splib.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-// This file must be included first by all files in lib.
-
-#define BUILD_LIBSP
-#include "config.h"
-#ifdef SP_PCH
-#include "splibpch.h"
-#endif /* SP_PCH */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/splibpch.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-// Include all header files for systems that support pre-compiled headers.
-
-#include "Allocator.h"
-#include "ArcEngine.h"
-#include "Attribute.h"
-#include "Attributed.h"
-#include "Boolean.h"
-#include "CharMap.h"
-#include "CharsetDecl.h"
-#include "CharsetInfo.h"
-#include "CmdLineApp.h"
-#include "CodingSystem.h"
-#include "CodingSystemKit.h"
-#include "ConsoleOutput.h"
-#include "ContentState.h"
-#include "ContentToken.h"
-#include "CopyOwner.h"
-#include "DescriptorManager.h"
-#include "Dtd.h"
-#include "ElementType.h"
-#include "Entity.h"
-#include "EntityApp.h"
-#include "EntityCatalog.h"
-#include "EntityDecl.h"
-#include "EntityManager.h"
-#include "ErrnoMessageArg.h"
-#include "ErrorCountEventHandler.h"
-#include "Event.h"
-#include "EventsWanted.h"
-#include "ExtendEntityManager.h"
-#include "ExternalId.h"
-#include "GenericEventHandler.h"
-#include "Hash.h"
-#include "HashTable.h"
-#include "HashTableItemBase.h"
-#include "IList.h"
-#include "IListBase.h"
-#include "IListIter.h"
-#include "IListIterBase.h"
-#include "IQueue.h"
-#include "ISet.h"
-#include "ISetIter.h"
-#include "IdentityCodingSystem.h"
-#include "InputSource.h"
-#include "Link.h"
-#include "LinkProcess.h"
-#include "List.h"
-#include "ListIter.h"
-#include "LiteralStorage.h"
-#include "Location.h"
-#include "Lpd.h"
-#include "Markup.h"
-#include "Message.h"
-#include "MessageArg.h"
-#include "MessageBuilder.h"
-#include "MessageEventHandler.h"
-#include "MessageFormatter.h"
-#include "MessageReporter.h"
-#include "Mode.h"
-#include "NCVector.h"
-#include "Named.h"
-#include "NamedResource.h"
-#include "NamedResourceTable.h"
-#include "NamedTable.h"
-#include "Notation.h"
-#include "NotationStorage.h"
-#include "OpenElement.h"
-#include "Options.h"
-#include "OutputByteStream.h"
-#include "OutputCharStream.h"
-#include "Owner.h"
-#include "OwnerTable.h"
-#include "ParserApp.h"
-#include "ParserOptions.h"
-#include "PointerTable.h"
-#include "PosixStorage.h"
-#include "Ptr.h"
-#include "RangeMap.h"
-#include "Resource.h"
-#include "RewindStorageObject.h"
-#include "SOEntityCatalog.h"
-#include "Sd.h"
-#include "SdText.h"
-#include "SearchResultMessageArg.h"
-#include "SgmlParser.h"
-#include "ShortReferenceMap.h"
-#include "StdioStorage.h"
-#include "StorageManager.h"
-#include "StringC.h"
-#include "StringOf.h"
-#include "StringResource.h"
-#include "SubstTable.h"
-#include "Syntax.h"
-#include "Text.h"
-#include "TypeId.h"
-#include "URLStorage.h"
-#include "UnivCharsetDesc.h"
-#include "Vector.h"
-#include "XcharMap.h"
-#include "config.h"
-#include "constant.h"
-#include "macros.h"
-#include "rtti.h"
-#include "sptchar.h"
-#include "types.h"
-#include "xnew.h"
-#ifdef SP_MULTI_BYTE
-#include "EUCJPCodingSystem.h"
-#include "Fixed2CodingSystem.h"
-#include "SJISCodingSystem.h"
-#include "UnicodeCodingSystem.h"
-#include "UTF8CodingSystem.h"
-#ifdef WIN32
-#include "Win32CodingSystem.h"
-#endif
-#endif /* SP_MULTI_BYTE */
-#include "EventGenerator.h"
-#include "ParserEventGeneratorKit.h"
-#include "SGMLApplication.h"
-#include "ArcProcessor.h"
-#include "CatalogEntry.h"
-#include "CharsetRegistry.h"
-#include "EquivClass.h"
-#include "EventQueue.h"
-#include "Group.h"
-#include "Id.h"
-#include "InternalInputSource.h"
-#include "LpdEntityRef.h"
-#include "MarkupScan.h"
-#include "ModeInfo.h"
-#include "NameToken.h"
-#include "NumericCharRefOrigin.h"
-#include "OutputState.h"
-#include "Param.h"
-#include "Parser.h"
-#include "ParserMessages.h"
-#include "ParserState.h"
-#include "Partition.h"
-#include "Priority.h"
-#include "Recognizer.h"
-#include "SdFormalError.h"
-#include "SrInfo.h"
-#include "StorageObjectPosition.h"
-#include "StringVectorMessageArg.h"
-#include "TokenMessageArg.h"
-#include "Trie.h"
-#include "TrieBuilder.h"
-#include "Undo.h"
-#include "token.h"
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/strerror.c	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-#include <stdio.h>
-
-#define INT_DIGITS 19		/* enough for 64 bit integer */
-
-extern int sys_nerr;
-extern char *sys_errlist[];
-
-char *strerror(n)
-     int n;
-{
-  static char buf[sizeof("Error ") + 1 + INT_DIGITS];
-  if (n >= 0 && n < sys_nerr && sys_errlist[n] != 0)
-    return sys_errlist[n];
-  else {
-    sprintf(buf, "Error %d", n);
-    return buf;
-  }
-}
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/token.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef token_INCLUDED
-#define token_INCLUDED 1
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-enum EnumToken {
-  // tokenUnrecognized must be 0
-  tokenUnrecognized,		// no token could be recognized
-  tokenEe,			// end of entity
-  tokenS,			// RS RE SPACE SEPCHAR
-  tokenRe,			// RE
-  tokenRs,			// RS
-  tokenSpace,			// SPACE
-  tokenSepchar,			// SEPCHAR
-  tokenNameStart,		// X
-  tokenDigit,			// 1
-  tokenLcUcNmchar,		// LCNMCHAR or UCNMCHAR
-  tokenChar,			// a legal data character
-  tokenCharDelim,	        // a data character which starts a delimiter
-  tokenIgnoredChar,		// character in ignored marked section
-  // delimiters and delimiters in context
-  tokenAnd,
-  tokenCom,
-  tokenCroDigit,
-  tokenCroNameStart,
-  tokenDsc,
-  tokenDso,
-  tokenDtgc,
-  tokenDtgo,
-  tokenEroNameStart,
-  tokenEroGrpo,
-  tokenEtago,
-  tokenEtagoNameStart,
-  tokenEtagoTagc,
-  tokenEtagoGrpo,
-  tokenGrpc,
-  tokenGrpo,
-  tokenHcroHexDigit,
-  tokenLit,
-  tokenLita,
-  tokenMdc,
-  tokenMdoNameStart,
-  tokenMdoMdc,
-  tokenMdoCom,
-  tokenMdoDso,
-  tokenMinus,
-  tokenMinusGrpo,
-  tokenMscMdc,
-  tokenNet,
-  tokenNestc,
-  tokenOpt,
-  tokenOr,
-  tokenPero,
-  tokenPeroNameStart,
-  tokenPeroGrpo,
-  tokenPic,
-  tokenPio,
-  tokenPlus,
-  tokenPlusGrpo,
-  tokenRefc,
-  tokenRep,
-  tokenRni,
-  tokenSeq,
-  tokenStago,
-  tokenStagoNameStart,
-  tokenStagoTagc,
-  tokenStagoGrpo,
-  tokenTagc,
-  tokenVi,
-  // short references start here
-  tokenFirstShortref
-};
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not token_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/version.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-#define SP_VERSION SP_T("1.3.1")
--- a/usr/src/cmd/man/src/util/nsgmls.src/lib/xentmgr_inst.m4	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-// Copyright (c) 1994, 1995 James Clark
-// See the file COPYING for copying permission.
-
-#include "splib.h"
-
-#ifdef SP_MANUAL_INST
-
-#define SP_DEFINE_TEMPLATES
-#include "StringOf.h"
-#include "Vector.h"
-#include "NCVector.h"
-#include "ListIter.h"
-#include "IList.h"
-#include "List.h"
-#include "Owner.h"
-#include "OwnerTable.h"
-#include "PointerTable.h"
-#include "HashTableItemBase.h"
-#include "HashTable.h"
-#include "Ptr.h"
-#include "CharMap.h"
-#undef SP_DEFINE_TEMPLATES
-
-#include "StorageManager.h"
-#include "ExtendEntityManager.h"
-#include "OffsetOrderedList.h"
-#include "CodingSystem.h"
-#include "CodingSystemKit.h"
-#include "types.h"
-#include "StringOf.h"
-#include "DescriptorManager.h"
-#include "StorageManager.h"
-#include "Boolean.h"
-#include "StorageObjectPosition.h"
-#include "CatalogEntry.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-__instantiate(String<char>)
-__instantiate(NCVector<Owner<StorageObject> >)
-__instantiate(Vector<StorageObjectSpec>)
-__instantiate(NCVector<Owner<OffsetOrderedListBlock> >)
-__instantiate(NCVector<StorageObjectPosition>)
-__instantiate(IList<ListItem<DescriptorUser*> >)
-__instantiate(List<DescriptorUser*>)
-__instantiate(ListIter<DescriptorUser *>)
-__instantiate(ListItem<DescriptorUser *>)
-__instantiate(IListIter<ListItem<DescriptorUser*> >)
-__instantiate(Owner<StorageObject>)
-__instantiate(Owner<Decoder>)
-__instantiate(Owner<OffsetOrderedListBlock>)
-__instantiate(Owner<ExtendEntityManager::CatalogManager>)
-__instantiate(Owner<StorageManager>)
-__instantiate(NCVector<Owner<StorageManager> >)
-__instantiate(`HashTable<String<Char>,CatalogEntry>')
-__instantiate(`HashTableIter<String<Char>,CatalogEntry>')
-__instantiate(`HashTableItem<String<Char>,CatalogEntry>')
-__instantiate(HashTableItemBase<String<Char> >)
-__instantiate(`OwnerTable<HashTableItemBase<String<Char> >,String<Char>,Hash,HashTableKeyFunction<String<Char> > >')
-__instantiate(`CopyOwnerTable<HashTableItemBase<String<Char> >,String<Char>,Hash,HashTableKeyFunction<String<Char> > >')
-__instantiate(`OwnerTableIter<HashTableItemBase<String<Char> >, String<Char>, Hash, HashTableKeyFunction<String<Char> > >')
-__instantiate(`PointerTable<HashTableItemBase<String<Char> >*,String<Char>,Hash,HashTableKeyFunction<String<Char> > >')
-__instantiate(`PointerTableIter<HashTableItemBase<String<Char> > *, String<Char>, Hash, HashTableKeyFunction<String<Char> > >')
-__instantiate(Vector<HashTableItemBase<String<Char> >*>)
-__instantiate(Ptr<ExtendEntityManager>)
-__instantiate(ConstPtr<ExtendEntityManager>)
-__instantiate(Vector<ParsedSystemId::Map>)
-__instantiate(ConstPtr<InputCodingSystemKit>)
-__instantiate(Ptr<InputCodingSystemKit>)
-__instantiate(ConstPtr<CodingSystemKit>)
-__instantiate(Ptr<CodingSystemKit>)
-__instantiate(CharMap<Char>)
-#ifdef SP_MULTI_BYTE
-__instantiate(CharMapPage<Char>)
-__instantiate(CharMapColumn<Char>)
-#endif
-__instantiate(CharMapResource<Char>)
-__instantiate(Ptr<CharMapResource<Char> >)
-__instantiate(ConstPtr<CharMapResource<Char> >)
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* SP_MANUAL_INST */
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/Makefile.sub	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-PROG=nsgmls
-OBJS=nsgmls.o SgmlsEventHandler.o RastEventHandler.o StringSet.o nsgmls_inst.o
-INCLUDE=
-XLIBS=../lib/libsp.a
-GENSRCS=nsgmls_inst.cxx NsgmlsMessages.h RastEventHandlerMessages.h
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/NsgmlsMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-// This file was automatically generated from nsgmls\NsgmlsMessages.msg by msggen.pl.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct NsgmlsMessages {
-  // 0
-  static const MessageType1 unknownOutputOption;
-};
-const MessageType1 NsgmlsMessages::unknownOutputOption(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-0
-#ifndef SP_NO_MESSAGE_TEXT
-,"unknown output option %1"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/NsgmlsMessages.rc	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-STRINGTABLE
-BEGIN
-  0, "unknown output option %1"
-END
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/RastEventHandler.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,943 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1994,1995 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "config.h"
-#include "RastEventHandler.h"
-#include "SgmlParser.h"
-#include "ParserOptions.h"
-#include "Entity.h"
-#include "Notation.h"
-#include "Attribute.h"
-#include "Vector.h"
-#include "Vector.h"
-#include "MessageArg.h"
-
-#include "RastEventHandlerMessages.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-// This is based on ISO/IEC 13673, Intermediate Editor's Draft, 1994/8/29,
-// together with editing instructions in ISO/IEC JTC1/SC18/WG8 N1777.
-#ifdef __GNUC__
-using namespace std;
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const OutputCharStream::Newline nl = OutputCharStream::newline;
-
-class EventHandlerMessenger : public Messenger {
-public:
-	EventHandlerMessenger(EventHandler *eh) : eh_(eh) { }
-	void dispatchMessage(const Message &message) {
-		eh_->message(new MessageEvent(message));
-	}
-	void dispatchMessage(Message &message) {
-		eh_->message(new MessageEvent(message));
-	}
-private:
-	EventHandler *eh_;
-};
-
-#if 0
-const
-#endif
-RastPrintable RastEventHandler::printable;
-
-RastPrintable::RastPrintable()
-{
-	static const char s[] =
-		" !\"#$%&'()*+,-./0123456789:;<=>?@\
-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]\
-^_`abcdefghijklmnopqrstuvwxyz{|}~";
-	size_t i;
-	for (i = 0; i < sizeof (v_); i++)
-		v_[i] = 0;
-	for (i = 0; s[i] != '\0'; i++)
-		v_[(unsigned char)s[i]] = 32 + i;
-}
-
-// inline
-void RastEventHandler::flushLine(LineType type)
-{
-	if (lineLength_ > 0) {
-		os() << char(type) << nl;
-		lineLength_ = 0;
-	}
-}
-
-RastSubdocState::RastSubdocState()
-{
-	init(0, 0);
-}
-
-RastSubdocState::RastSubdocState(SgmlParser *parser, RastEventHandler *rast)
-{
-	init(parser, rast);
-}
-
-void RastSubdocState::init(SgmlParser *parser, RastEventHandler *rast)
-{
-	parser_ = parser;
-	hadActiveLpdOrDtd_ = 0;
-	activeLinkTypes_.clear();
-	hadDocumentElement_ = 0;
-	linkProcess_.clear();
-	linkProcess_.setHandler(rast);
-	haveLinkProcess_ = 0;
-	endPrologEvent_.clear();
-	parseSubdocQueue_.clear();
-	linkRuleQueue_.clear();
-	for (int i = 0; i < nAttributeType; i++)
-		attributeSortOrder_[i].clear();
-}
-
-void RastSubdocState::swap(RastSubdocState &to)
-{
-	{
-		SgmlParser *tem = to.parser_;
-		to.parser_ = parser_;
-		parser_ = tem;
-	}
-	{
-		Boolean tem = to.hadActiveLpdOrDtd_;
-		to.hadActiveLpdOrDtd_ = hadActiveLpdOrDtd_;
-		hadActiveLpdOrDtd_ = tem;
-	}
-	{
-		Boolean tem = to.hadDocumentElement_;
-		to.hadDocumentElement_ = hadDocumentElement_;
-		hadDocumentElement_ = tem;
-	}
-	activeLpdOrDtdLocation_.swap(to.activeLpdOrDtdLocation_);
-	activeLinkTypes_.swap(to.activeLinkTypes_);
-	linkProcess_.swap(to.linkProcess_);
-	endPrologEvent_.swap(to.endPrologEvent_);
-	parseSubdocQueue_.swap(to.parseSubdocQueue_);
-	linkRuleQueue_.swap(to.linkRuleQueue_);
-	for (int i = 0; i < nAttributeType; i++)
-		attributeSortOrder_[i].swap(to.attributeSortOrder_[i]);
-}
-
-RastEventHandler::RastEventHandler(SgmlParser *parser, Messenger *mgr)
-: lineLength_(0),
-	os_(0),
-	piErrorCount_(0),
-	RastSubdocState(parser, this),
-	mgr_(mgr)
-{
-	RastSubdocState::init(parser, this);
-}
-
-void RastEventHandler::end()
-{
-	if (errorCount() != 0) {
-		truncateOutput();
-		os() << (piErrorCount_ != 0
-			? "#RAST-PI-ERROR"
-			: "#ERROR")
-			<< nl;
-	}
-}
-
-void RastEventHandler::truncateOutput()
-{
-	// This must be handled by derived classes to get conforming output.
-}
-
-void RastEventHandler::sgmlDecl(SgmlDeclEvent *event)
-{
-	rastParseSubdocYesString_ = event->sd().execToInternal(
-		"rast-parse-subdoc:yes");
-	rastParseSubdocNoString_ = event->sd().execToInternal(
-		"rast-parse-subdoc:no");
-	rastActiveLpdString_ = event->sd().execToInternal("rast-active-lpd:");
-	rastLinkRuleString_ = event->sd().execToInternal("rast-link-rule:");
-	delete event;
-}
-
-void RastEventHandler::startElement(StartElementEvent *event)
-{
-	flushLine(dataLine);
-	if (!hadDocumentElement_) {
-		if (activeLinkTypes_.size() > 0) {
-			activeLinks();
-			simpleLinkInfo();
-		}
-		hadDocumentElement_ = 1;
-	}
-	os() << '[' << event->name();
-	Boolean hadNewline;
-	if (event->attributes().size() > 0) {
-		hadNewline = 1;
-		os() << nl;
-		attributeInfo(event->attributes(), dtdAttribute);
-	} else
-		hadNewline = 0;
-	if (haveLinkProcess_) {
-		const AttributeList *linkAttributes;
-		const ResultElementSpec *resultElementSpec;
-		EventHandlerMessenger messenger(this);
-		linkProcess_.startElement(event->elementType(),
-				    event->attributes(),
-				    event->location(),
-				    messenger,
-				    linkAttributes,
-				    resultElementSpec);
-		if (linkProcess_.nImpliedLinkRules() > 0) {
-			if (!hadNewline) {
-				os() << nl;
-				hadNewline = 1;
-			}
-			os() << "#LINK-SET-INFO" << nl;
-			impliedSourceLinkRules();
-		}
-		if (linkAttributes) {
-			if (!hadNewline) {
-				os() << nl;
-				hadNewline = 1;
-			}
-			os() << "#LINK-RULE" << nl;
-			attributeInfo(*linkAttributes, linkAttribute);
-			if (linkProcess_.isExplicit()) {
-				os() << "#RESULT=";
-				if (resultElementSpec &&
-					resultElementSpec->elementType) {
-					os() << resultElementSpec->
-						elementType->name()
-						<< nl;
-					attributeInfo(
-						resultElementSpec->
-						attributeList,
-						resultAttribute);
-				} else
-					os() << "#IMPLIED" << nl;
-			}
-		}
-		else
-			hadNewline = 0;
-	}
-	os() << ']' << nl;
-	delete event;
-}
-
-void RastEventHandler::activeLinks()
-{
-	for (size_t i = 0; i < activeLinkTypes_.size(); i++) {
-		os() << "#ACTIVE-LINK=" << activeLinkTypes_[i] << nl;
-		Boolean found = 0;
-		if (haveLinkProcess_ && linkProcess_.name() ==
-			activeLinkTypes_[i]) {
-			found = 1;
-			if (linkProcess_.nImpliedLinkRules() > 0) {
-	os() << "#INITIAL" << nl;
-	impliedSourceLinkRules();
-			}
-		}
-		if (!found) {
-			if (endPrologEvent_) {
-	for (size_t j = 0; j < endPrologEvent_->simpleLinkNames().size(); j++)
-		if (endPrologEvent_->simpleLinkNames()[j] ==
-			activeLinkTypes_[i]) {
-			found = 1;
-			break;
-		}
-			}
-			if (!found) {
-	setNextLocation(activeLpdOrDtdLocation_);
-	Messenger::message(RastEventHandlerMessages::invalidActiveLinkType,
-				StringMessageArg(activeLinkTypes_[i]));
-			}
-		}
-		os() << "#END-ACTIVE-LINK" << nl;
-	}
-}
-
-void RastEventHandler::simpleLinkInfo()
-{
-	if (!endPrologEvent_)
-		return;
-	for (size_t i = 0; i < activeLinkTypes_.size(); i++) {
-		for (size_t j = 0;
-			j < endPrologEvent_->simpleLinkNames().size(); j++) {
-			const StringC &name =
-				endPrologEvent_->simpleLinkNames()[j];
-			if (name == activeLinkTypes_[i]) {
-	os() << "#SIMPLE-LINK=" << name << nl;
-	if (endPrologEvent_->simpleLinkAttributes()[j].size() > 0)
-		attributeInfo(endPrologEvent_->simpleLinkAttributes()[j],
-			simpleAttribute);
-	os() << "#END-SIMPLE-LINK" << nl;
-	break;
-			}
-		}
-	}
-}
-
-void RastEventHandler::impliedSourceLinkRules()
-{
-	size_t n = linkProcess_.nImpliedLinkRules();
-	Vector < size_t > sortOrder(n);
-	size_t i;
-	for (i = 0; i < n; i++)
-		sortOrder[i] = i;
-	for (i = 1; i < n; i++) {
-		size_t tem = sortOrder[i];
-		const StringC &name
-			= linkProcess_.impliedLinkRule(tem).elementType->name();
-		size_t j;
-		for (j = i; j > 0; j--) {
-			if (lexCmp(
-				linkProcess_.impliedLinkRule(
-					j - 1).elementType->name(),
-		name) <= 0)
-	break;
-			sortOrder[j] = sortOrder[j - 1];
-		}
-		sortOrder[j] = tem;
-	}
-	for (i = 0; i < n; i++) {
-		const ResultElementSpec &result
-			= linkProcess_.impliedLinkRule(sortOrder[i]);
-		os() << '[' << result.elementType->name();
-		if (result.attributeList.size() > 0) {
-			os() << nl;
-			attributeInfo(result.attributeList, resultAttribute);
-		}
-		os() << ']' << nl;
-	}
-}
-
-void RastEventHandler::endElement(EndElementEvent *event)
-{
-	if (haveLinkProcess_)
-		linkProcess_.endElement();
-	flushLine(dataLine);
-	os() << "[/" << event->name() << ']' << nl;
-	if (haveLinkProcess_ && linkProcess_.nImpliedLinkRules() > 0) {
-		os() << "#LINK-SET-INFO" << nl;
-		impliedSourceLinkRules();
-		os() << "#END-LINK-SET-INFO" << nl;
-	}
-	delete event;
-}
-
-void RastEventHandler::data(DataEvent *event)
-{
-	lines(dataLine, event->data(), event->dataLength());
-	delete event;
-}
-
-void RastEventHandler::pi(PiEvent *event)
-{
-	flushLine(dataLine);
-	os() << "[?";
-	size_t dataLength = event->dataLength();
-	if (dataLength > 0) {
-		const Char *data = event->data();
-		if (dataLength >= 4 && memcmp(data,
-			rastParseSubdocYesString_.data(),
-			4*sizeof (Char)) == 0 &&
-				!interpretRastPi(data, dataLength,
-					event->location())) {
-			setNextLocation(event->location());
-			Messenger::message(
-				RastEventHandlerMessages::invalidRastPiError);
-		}
-		os() << nl;
-		lines(dataLine, event->data(), dataLength);
-		flushLine(dataLine);
-	}
-	os() << ']' << nl;
-	delete event;
-}
-
-inline Boolean
-	equal(const Char *s1, size_t n1, const StringC &s2)
-{
-	return (n1 == s2.size() &&
-		(n1 == 0 || memcmp(s1, s2.data(), n1*sizeof (Char)) == 0));
-}
-
-// Is s2 a prefix of s1 of length n1?
-
-inline Boolean
-	prefix(const Char *s1, size_t n1, const StringC &s2)
-{
-	return (n1 >= s2.size() && (n1 == 0 ||
-		memcmp(s1, s2.data(), s2.size()*sizeof (Char)) == 0));
-}
-
-Boolean RastEventHandler::interpretRastPi(const Char *data,
-						size_t dataLength,
-						const Location &loc)
-{
-	if (equal(data, dataLength, rastParseSubdocNoString_)) {
-		queueParseSubdoc(0);
-		return (1);
-	}
-	if (equal(data, dataLength, rastParseSubdocYesString_)) {
-		queueParseSubdoc(1);
-		return (1);
-	}
-	if (prefix(data, dataLength, rastActiveLpdString_)) {
-		if (hadActiveLpdOrDtd_)
-			return (1);
-		hadActiveLpdOrDtd_ = 1;
-		activeLpdOrDtdLocation_ = loc;
-		const Char *p = data + rastActiveLpdString_.size();
-		size_t n = dataLength - rastActiveLpdString_.size();
-		StringC name;
-		for (;;) {
-			if (n == 0 || *p == ',') {
-	if (name.size() == 0)
-		return (0);
-	for (size_t i = 0; i < activeLinkTypes_.size(); i++)
-		if (name == activeLinkTypes_[i]) {
-			setNextLocation(activeLpdOrDtdLocation_);
-			Messenger::message(
-				RastEventHandlerMessages::
-				duplicateActiveLinkType,
-				StringMessageArg(name));
-		}
-	activeLinkTypes_.resize(activeLinkTypes_.size() + 1);
-	name.swap(activeLinkTypes_.back());
-	if (n == 0)
-		break;
-			}
-			else
-	name += *p;
-			p++;
-			n--;
-		}
-		for (size_t i = 0; i < activeLinkTypes_.size(); i++)
-			parser_->activateLinkType(activeLinkTypes_[i]);
-		return (1);
-	}
-	if (prefix(data, dataLength, rastLinkRuleString_)) {
-		LinkRulePi *p = new LinkRulePi;
-		p->pi.assign(data + rastLinkRuleString_.size(),
-			dataLength - rastLinkRuleString_.size());
-		p->loc = loc;
-		linkRuleQueue_.append(p);
-		return (1);
-	}
-	return (0);
-}
-
-void RastEventHandler::sdataEntity(SdataEntityEvent *event)
-{
-	flushLine(dataLine);
-	os() << "#SDATA-TEXT" << nl;
-	lines(markupLine, event->data(), event->dataLength());
-	flushLine(markupLine);
-	os() << "#END-SDATA" << nl;
-	delete event;
-}
-
-void RastEventHandler::externalDataEntity(ExternalDataEntityEvent *event)
-{
-	const ExternalDataEntity *entity = event->entity();
-	if (!entity)
-		return;
-	flushLine(dataLine);
-	os() << "[&" << entity->name() << nl;
-	externalEntityInfo(entity, dtdAttribute);
-	os() << ']' << nl;
-	delete event;
-}
-
-void RastEventHandler::externalEntityInfo(const ExternalDataEntity *entity,
-						AttributeType attributeType)
-{
-	char c;
-	switch (entity->dataType()) {
-	case Entity::cdata:
-		c = 'C';
-		break;
-	case Entity::sdata:
-		c = 'S';
-		break;
-	case Entity::ndata:
-		c = 'N';
-		break;
-	default:
-		return;
-	}
-	os() << '#' << c << "DATA-EXTERNAL" << nl;
-	externalIdInfo(entity->externalId());
-	os() << "#NOTATION=" << entity->notation()->name() << nl;
-	externalIdInfo(entity->notation()->externalId());
-	attributeInfo(entity->attributes(),
-		(attributeType == resultAttribute
-		? resultAttribute
-		: dtdAttribute));
-}
-
-void RastEventHandler::subdocEntity(SubdocEntityEvent *event)
-{
-	const SubdocEntity *entity = event->entity();
-	if (!entity)
-		return;
-	flushLine(dataLine);
-	os() << "[&" << entity->name() << nl;
-	Ptr < InputSourceOrigin > origin(event->entityOrigin()->copy());
-	subdocEntityInfo(entity, origin, 1);
-	os() << ']' << nl;
-	delete event;
-}
-
-void RastEventHandler::subdocEntityInfo(const SubdocEntity *entity,
-					const Ptr < InputSourceOrigin >
-					&entityOrigin, Boolean referenced)
-{
-	os() << "#SUBDOC" << nl;
-	externalIdInfo(entity->externalId());
-	if (parseNextSubdoc()) {
-		// FIXME subdocuments in entity attributes shouldn't
-		// count against SUBDOC quantity limit.
-		os() << "#PARSED-SUBDOCUMENT" << nl;
-		SgmlParser::Params params;
-		params.entityType = SgmlParser::Params::subdoc;
-		params.subdocInheritActiveLinkTypes = 0;
-		params.subdocReferenced = referenced;
-		params.parent = parser_;
-		params.sysid = entity->externalId().effectiveSystemId();
-		params.origin = entityOrigin;
-		SgmlParser parser(params);
-		RastSubdocState oldSubdocState;
-		RastSubdocState::swap(oldSubdocState);
-		RastSubdocState::init(&parser, this);
-		parser.parseAll(*this);
-		oldSubdocState.swap(*this);
-	}
-}
-
-void RastEventHandler::queueParseSubdoc(Boolean parseSubdoc)
-{
-	parseSubdocQueue_.push_back(PackedBoolean(parseSubdoc));
-}
-
-Boolean RastEventHandler::parseNextSubdoc()
-{
-	if (parseSubdocQueue_.size() == 0)
-		return (0);
-	Boolean result = parseSubdocQueue_[0];
-	if (parseSubdocQueue_.size() > 1) {
-		for (size_t i = 1; i < parseSubdocQueue_.size(); i++)
-			parseSubdocQueue_[i - 1] = parseSubdocQueue_[i];
-	}
-	parseSubdocQueue_.resize(parseSubdocQueue_.size() - 1);
-	return (result);
-}
-
-
-void RastEventHandler::externalIdInfo(const ExternalId &id)
-{
-	const StringC *systemId = id.systemIdString();
-	const StringC *publicId = id.publicIdString();
-	if (publicId) {
-		os() << "#PUBLIC" << nl;
-		if (publicId->size() == 0)
-			os() << "#EMPTY" << nl;
-		else {
-			lines(markupLine, publicId->data(), publicId->size());
-			flushLine(markupLine);
-		}
-	}
-	if (systemId || !publicId) {
-		os() << "#SYSTEM" << nl;
-		if (!systemId)
-			os() << "#NONE" << nl;
-		else if (systemId->size() == 0)
-			os() << "#EMPTY" << nl;
-		else {
-			lines(markupLine, systemId->data(), systemId->size());
-			flushLine(markupLine);
-		}
-	}
-}
-
-void RastEventHandler::nonSgmlChar(NonSgmlCharEvent *event)
-{
-	flushLine(dataLine);
-	os() <<'#' << (unsigned long)event->character() << nl;
-	delete event;
-}
-
-void RastEventHandler::lines(LineType type, const Char *p, size_t length)
-{
-	// This needs to be fast.
-	while (length != 0) {
-		if (printable(*p)) {
-			size_t lim;
-			switch (lineLength_) {
-			case maxLineLength:
-	os() << char(type) << nl;
-	lineLength_ = 0;
-	// fall through
-			case 0:
-	os() << char(type);
-	lim = maxLineLength;
-	break;
-			default:
-	lim = maxLineLength - lineLength_;
-	break;
-			}
-			if (lim > length)
-	lim = length;
-			size_t n = lim;
-			for (;;) {
-	os().put(*p);
-	p++;
-	if (--n == 0)
-		break;
-	if (!printable(*p)) {
-		lim -= n;
-		break;
-	}
-			}
-			length -= lim;
-			lineLength_ += lim;
-		} else {
-			// *p is an unprintable character print it
-			flushLine(type);
-			switch (*p) {
-			case RS:
-				os() << "#RS" << nl;
-				break;
-			case RE:
-				os() << "#RE" << nl;
-				break;
-			case TAB:
-				os() << "#TAB" << nl;
-				break;
-			default:
-				os() << '#' << (unsigned long)*p << nl;
-				break;
-			}
-			p++;
-			length--;
-		}
-	}
-}
-
-int RastEventHandler::lexCmp(const StringC &s1, const StringC &s2)
-{
-	const Char *p1 = s1.data();
-	size_t n1 = s1.size();
-	const Char *p2 = s2.data();
-	size_t n2 = s2.size();
-	for (;;) {
-		if (n1 == 0)
-			return (n2 == 0 ? 0 : -1);
-		if (n2 == 0)
-			return (1);
-		if (*p1 != *p2) {
-			// printable characters precede non-printable;
-			// characters printable characters are in ASCII order
-			// non-printable characters are in document character
-			// set order
-			int a1 = printable(*p1);
-			int a2 = printable(*p2);
-			if (a1 == 0) {
-				if (a2 == 0)
-					return (*p1 < *p2 ? -1 : 1);
-				else
-					return (1);
-			} else if (a2 == 0)
-				return (-1);
-		else
-			return (a1 - a2);
-		}
-		p1++;
-		p2++;
-		n1--;
-		n2--;
-	}
-}
-
-void RastEventHandler::attributeInfo(const AttributeList &attributes,
-	AttributeType attributeType)
-{
-	size_t length = attributes.size();
-	if (length == 0)
-		return;
-	size_t defIndex = attributes.defIndex();
-	if (defIndex >= attributeSortOrder_[attributeType].size())
-		attributeSortOrder_[attributeType].resize(defIndex + 1);
-	Vector < size_t > &sortOrder =
-		attributeSortOrder_[attributeType][defIndex];
-	if (sortOrder.size() != length ||
-		attributeType == simpleAttribute) {
-		sortOrder.resize(length);
-		size_t i;
-		for (i = 0; i < length; i++)
-			sortOrder[i] = i;
-		// insertion sort
-		for (i = 1; i < length; i++) {
-			size_t tem = sortOrder[i];
-			size_t j;
-			for (j = i; j > 0; j--) {
-	if (lexCmp(attributes.name(sortOrder[j - 1]),
-		attributes.name(tem)) <= 0)
-		break;
-	sortOrder[j] = sortOrder[j - 1];
-			}
-			sortOrder[j] = tem;
-		}
-	}
-	for (size_t j = 0; j < length; j++) {
-		// Don't use sortOrder because attributeSortOrder_ may be grown
-		// because of data attributes.
-		size_t i = attributeSortOrder_[attributeType][defIndex][j];
-		os() << attributes.name(i) << '=' << nl;
-		const Text *text;
-		const StringC *string;
-		const AttributeValue *value = attributes.value(i);
-		if (value) {
-			switch (value->info(text, string)) {
-			case AttributeValue::implied:
-	os() << "#IMPLIED" << nl;
-	break;
-			case AttributeValue::tokenized:
-	lines(markupLine, string->data(), string->size());
-	flushLine(markupLine);
-	break;
-			case AttributeValue::cdata:
-	{
-		TextIter iter(*text);
-		TextItem::Type type;
-		const Char *p;
-		size_t length;
-		const Location *loc;
-		while (iter.next(type, p, length, loc))
-			switch (type) {
-			case TextItem::data:
-			case TextItem::cdata:
-				lines(markupLine, p, length);
-				break;
-			case TextItem::sdata:
-				flushLine(markupLine);
-				os() << "#SDATA-TEXT" << nl;
-				lines(markupLine, p, length);
-				flushLine(markupLine);
-				os() << "#END-SDATA" << nl;
-				break;
-			case TextItem::nonSgml:
-				flushLine(markupLine);
-				os() << '#' << (unsigned long)*p << nl;
-				break;
-			default:
-				break;
-			}
-		flushLine(markupLine);
-	}
-	break;
-			}
-		}
-		const AttributeSemantics *semantics = attributes.semantics(i);
-		if (semantics) {
-			ConstPtr < Notation > notation
-	= semantics->notation();
-			if (!notation.isNull())
-	externalIdInfo(notation->externalId());
-			size_t nEntities = semantics->nEntities();
-			for (size_t i = 0; i < nEntities; i++) {
-	ConstPtr < Entity > entity
-		= semantics->entity(i);
-	if (!entity.isNull()) {
-		const ExternalDataEntity *externalDataEntity
-			= entity->asExternalDataEntity();
-		if (externalDataEntity)
-			externalEntityInfo(externalDataEntity,
-				(attributeType == resultAttribute
-				? resultAttribute
-				: dtdAttribute));
-		else {
-			const SubdocEntity *subdocEntity =
-				entity->asSubdocEntity();
-			if (subdocEntity) {
-				Ptr < InputSourceOrigin > entityOrigin
-					= EntityOrigin::make(entity,
-						((TokenizedAttributeValue *)
-						value)
-						->tokenLocation(i));
-				subdocEntityInfo(subdocEntity, entityOrigin, 0);
-			} else {
-				const InternalEntity *internalEntity =
-					entity->asInternalEntity();
-				if (internalEntity)
-					internalEntityInfo(internalEntity);
-			}
-		}
-	}
-	os() << "#END-ENTITY" << nl;
-			}
-		}
-	}
-}
-
-void RastEventHandler::internalEntityInfo(const InternalEntity *entity)
-{
-	if (!entity)
-		return;
-	os() << '#'
-		<< char(entity->dataType() == Entity::cdata ? 'C' : 'S')
-		<< "DATA-INTERNAL" << nl;
-	const StringC &str = entity->string();
-	lines(markupLine, str.data(), str.size());
-	flushLine(markupLine);
-}
-
-void RastEventHandler::endProlog(EndPrologEvent *event)
-{
-	if (!event->lpdPointer().isNull()) {
-		linkProcess_.init(event->lpdPointer());
-		haveLinkProcess_ = 1;
-	}
-	if (event->simpleLinkNames().size() > 0)
-		endPrologEvent_ = event;
-	else
-		delete event;
-}
-
-void RastEventHandler::uselink(UselinkEvent *event)
-{
-	linkProcess_.uselink(event->linkSet(),
-			event->restore(),
-			event->lpd().pointer());
-	if (haveLinkProcess_ && linkProcess_.nImpliedLinkRules() > 0) {
-		flushLine(dataLine);
-		os() << "#LINK-SET-INFO" << nl;
-		impliedSourceLinkRules();
-		os() << "#END-LINK-SET-INFO" << nl;
-	}
-	delete event;
-}
-
-void RastEventHandler::initMessage(Message &msg)
-{
-	mgr_->initMessage(msg);
-}
-
-void RastEventHandler::dispatchMessage(const Message &msg)
-{
-	if (msg.isError())
-		piErrorCount_++;
-	if (!cancelled()) {
-		noteMessage(msg);
-		mgr_->dispatchMessage(msg);
-	}
-}
-
-RastLinkProcess::RastLinkProcess()
-: rast_(0)
-{
-}
-
-void RastLinkProcess::setHandler(RastEventHandler *rast)
-{
-	rast_ = rast;
-}
-
-// Always return 1. 0 means not ready.
-
-Boolean RastLinkProcess::selectLinkRule(
-	const Vector < const AttributeList * > &linkAttributes,
-	const Location &location,
-	size_t &selected)
-{
-	if (!rast_->linkRuleQueue_.empty()) {
-		LinkRulePi *p = rast_->linkRuleQueue_.get();
-		if (!selectLinkRulePi(p->pi, p->loc, linkAttributes, selected))
-			selected = 0;
-	} else {
-		if (linkAttributes.size() > 0) {
-			rast_->setNextLocation(location);
-			rast_->Messenger::message(
-				RastEventHandlerMessages::multipleLinkRules);
-		}
-		selected = 0;
-	}
-	return (1);
-}
-
-// Return zero for failure (RAST-PI-ERROR).
-
-Boolean RastLinkProcess::selectLinkRulePi(const StringC &value,
-	const Location &loc,
-	const Vector < const AttributeList * > &linkAttributes,
-	size_t &selected)
-{
-	Boolean haveSelection = 0;
-	size_t i;
-	for (i = 0; i < linkAttributes.size(); i++) {
-		const AttributeList &a = *linkAttributes[i];
-		Boolean matchValue = 0;
-		for (size_t j = 0; j < a.size(); j++) {
-			const Text *textp;
-			const StringC *strp;
-			switch (a.value(j)->info(textp, strp)) {
-			case AttributeValue::cdata:
-	// What if it contains SDATA entities?
-	if (textp->string() == value)
-		matchValue = 1;
-	break;
-			case AttributeValue::tokenized:
-	if (*strp == value)
-		matchValue = 1;
-	break;
-			default:
-	break;
-			}
-			if (matchValue)
-	break;
-		}
-		if (matchValue) {
-			if (haveSelection) {
-	rast_->setNextLocation(loc);
-	rast_->Messenger::message(
-			RastEventHandlerMessages::multipleLinkRuleMatch);
-	return (0);
-			}
-			haveSelection = 1;
-			selected = i;
-		}
-	}
-	if (!haveSelection) {
-		rast_->setNextLocation(loc);
-		rast_->Messenger::message(
-			RastEventHandlerMessages::noLinkRuleMatch);
-		return (0);
-	}
-	return (1);
-}
-
-void RastLinkProcess::swap(RastLinkProcess &to)
-{
-	LinkProcess::swap(to);
-	RastEventHandler *tem = to.rast_;
-	to.rast_ = rast_;
-	rast_ = tem;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/RastEventHandler.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1994 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef _RASTEVENTHANDLER_H
-#define	_RASTEVENTHANDLER_H
-
-#ifndef RastEventHandler_INCLUDED
-#define	RastEventHandler_INCLUDED 1
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "Event.h"
-#include "Vector.h"
-#include "Vector.h"
-#include "Boolean.h"
-#include "Vector.h"
-#include "StringC.h"
-#include "types.h"
-#include "OutputCharStream.h"
-#include "LinkProcess.h"
-#include "Message.h"
-#include "Link.h"
-#include "IQueue.h"
-#include "ErrorCountEventHandler.h"
-
-#include <limits.h>
-#include <stddef.h>
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class AttributeList;
-class ExternalDataEntity;
-class SubdocEntity;
-class ExternalId;
-class InternalEntity;
-class SgmlParser;
-
-class RastPrintable {
-public:
-	RastPrintable();
-	int operator()(Char c) const;
-private:
-	char v_[UCHAR_MAX + 1];
-};
-
-class RastEventHandler;
-
-class RastLinkProcess : public LinkProcess {
-public:
-	RastLinkProcess();
-	void setHandler(RastEventHandler *);
-	Boolean selectLinkRule(
-		const Vector < const AttributeList * > &linkAttributes,
-		const Location &location,
-		size_t &selected);
-	void swap(RastLinkProcess &);
-private:
-	Boolean selectLinkRulePi(const StringC &str,
-		const Location &loc,
-		const Vector < const AttributeList * > &linkAttributes,
-		size_t &selected);
-
-	RastLinkProcess(const RastLinkProcess &); // undefined
-	void operator=(RastLinkProcess &);	    // undefined
-	RastEventHandler *rast_;
-};
-
-struct LinkRulePi : public Link {
-	StringC pi;
-	Location loc;
-};
-
-class RastSubdocState {
-public:
-	RastSubdocState();
-	RastSubdocState(SgmlParser *, RastEventHandler *);
-	void init(SgmlParser *, RastEventHandler *);
-	void swap(RastSubdocState &);
-protected:
-	SgmlParser *parser_;
-	Boolean hadActiveLpdOrDtd_;
-	Location activeLpdOrDtdLocation_;
-	Vector < StringC > activeLinkTypes_;
-	Boolean hadDocumentElement_;
-	RastLinkProcess linkProcess_;
-	Boolean haveLinkProcess_;
-	Owner < EndPrologEvent > endPrologEvent_;
-	Vector < PackedBoolean > parseSubdocQueue_;
-	IQueue < LinkRulePi > linkRuleQueue_;
-	enum AttributeType {
-		dtdAttribute,
-		linkAttribute,
-		resultAttribute,
-		simpleAttribute
-		};
-	enum { nAttributeType = simpleAttribute + 1 };
-	Vector < Vector < size_t > > attributeSortOrder_[nAttributeType];
-private:
-	RastSubdocState(const RastSubdocState &); // undefined
-	void operator=(const RastSubdocState &);  // undefined
-	friend class RastLinkProcess;
-};
-
-class RastEventHandler : public ErrorCountEventHandler,
-		private RastSubdocState,
-		protected Messenger {
-public:
-	RastEventHandler(SgmlParser *, Messenger *);
-	void data(DataEvent *);
-	void startElement(StartElementEvent *);
-	void endElement(EndElementEvent *);
-	void pi(PiEvent *);
-	void sdataEntity(SdataEntityEvent *);
-	void externalDataEntity(ExternalDataEntityEvent *);
-	void subdocEntity(SubdocEntityEvent *);
-	void nonSgmlChar(NonSgmlCharEvent *);
-	void sgmlDecl(SgmlDeclEvent *);
-	void endProlog(EndPrologEvent *);
-	void uselink(UselinkEvent *);
-	virtual void truncateOutput();
-	void end();
-	void setOutputStream(OutputCharStream *os);
-	static const char *messageText(int);
-	static const char messageSource[];
-protected:
-	void initMessage(Message &);
-	void dispatchMessage(const Message &);
-	void dispatchMessage(Message &tmp_message) {
-		    dispatchMessage((const Message &)tmp_message);
-	};
-private:
-	RastEventHandler(const RastEventHandler &); // undefined
-	void operator=(const RastEventHandler &);   // undefined
-
-	enum LineType { dataLine = '|', markupLine = '!' };
-	void lines(LineType, const Char *p, size_t length);
-	enum { maxLineLength = 60 };
-	enum { RS = '\n', RE = '\r', TAB = '\t' };
-#if 0
-	static const RastPrintable printable;
-#else
-	static RastPrintable printable;
-#endif
-	int lineLength_;
-	OutputCharStream *os_;
-	StringC rastParseSubdocYesString_;
-	StringC rastParseSubdocNoString_;
-	StringC rastActiveLpdString_;
-	StringC rastLinkRuleString_;
-	unsigned piErrorCount_;
-	Messenger *mgr_;
-
-	int lexCmp(const StringC &s1, const StringC &s2);
-	void flushLine(LineType);
-	void attributeInfo(const AttributeList &, AttributeType);
-	void externalEntityInfo(const ExternalDataEntity *, AttributeType);
-	void subdocEntityInfo(const SubdocEntity *,
-			const Ptr < InputSourceOrigin > &entityOrigin,
-			Boolean referenced);
-	void externalIdInfo(const ExternalId &);
-	void internalEntityInfo(const InternalEntity *);
-	void queueParseSubdoc(Boolean);
-	Boolean parseNextSubdoc();
-	Boolean interpretRastPi(const Char *data, size_t dataLength,
-		const Location &);
-	void activeLinks();
-	void simpleLinkInfo();
-	void impliedSourceLinkRules();
-
-	OutputCharStream &os();
-	friend class RastLinkProcess;
-};
-
-inline
-int RastPrintable::operator()(Char c) const
-{
-	return (c <= UCHAR_MAX ? v_[c] : 0);
-}
-
-inline
-void RastEventHandler::setOutputStream(OutputCharStream *os)
-{
-	os_ = os;
-}
-
-inline
-OutputCharStream &RastEventHandler::os()
-{
-	return (*os_);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not RastEventHandler_INCLUDED */
-
-#endif /* _RASTEVENTHANDLER_H */
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/RastEventHandlerMessages.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-// This file was automatically generated from nsgmls\RastEventHandlerMessages.msg by msggen.pl.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#include "Message.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-struct RastEventHandlerMessages {
-  // 100
-  static const MessageType0 invalidRastPiError;
-  // 101
-  static const MessageType1 invalidActiveLinkType;
-  // 102
-  static const MessageType1 duplicateActiveLinkType;
-  // 103
-  static const MessageType0 multipleLinkRuleMatch;
-  // 104
-  static const MessageType0 noLinkRuleMatch;
-  // 105
-  static const MessageType0 multipleLinkRules;
-};
-const MessageType0 RastEventHandlerMessages::invalidRastPiError(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-100
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid RAST processing instruction"
-#endif
-);
-const MessageType1 RastEventHandlerMessages::invalidActiveLinkType(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-101
-#ifndef SP_NO_MESSAGE_TEXT
-,"invalid link type %1 in rast-active-lpd processing instruction"
-#endif
-);
-const MessageType1 RastEventHandlerMessages::duplicateActiveLinkType(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-102
-#ifndef SP_NO_MESSAGE_TEXT
-,"duplicate link type %1 in rast-active-lpd processing instruction"
-#endif
-);
-const MessageType0 RastEventHandlerMessages::multipleLinkRuleMatch(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-103
-#ifndef SP_NO_MESSAGE_TEXT
-,"rast-link-rule: processing instruction matches more than one link rule"
-#endif
-);
-const MessageType0 RastEventHandlerMessages::noLinkRuleMatch(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-104
-#ifndef SP_NO_MESSAGE_TEXT
-,"rast-link-rule: processing instruction matches does not match any link rules"
-#endif
-);
-const MessageType0 RastEventHandlerMessages::multipleLinkRules(
-MessageType::error,
-#ifdef BUILD_LIBSP
-MessageFragment::libModule,
-#else
-MessageFragment::appModule,
-#endif
-105
-#ifndef SP_NO_MESSAGE_TEXT
-,"multiple applicable link rules without disambiguating rast-link-rule: processing instruction"
-#endif
-);
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/RastEventHandlerMessages.rc	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-STRINGTABLE
-BEGIN
-  100, "invalid RAST processing instruction"
-  101, "invalid link type %1 in rast-active-lpd processing instruction"
-  102, "duplicate link type %1 in rast-active-lpd processing instruction"
-  103, "rast-link-rule: processing instruction matches more than one link rule"
-  104, "rast-link-rule: processing instruction matches does not match any link rules"
-  105, "multiple applicable link rules without disambiguating rast-link-rule: processing instruction"
-END
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/SgmlsEventHandler.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,639 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright (c) 1994 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "config.h"
-#include "SgmlsEventHandler.h"
-#include "SgmlParser.h"
-#include "ParserOptions.h"
-#include "Entity.h"
-#include "Notation.h"
-#include "Attribute.h"
-#include "ExtendEntityManager.h"
-#include "StorageManager.h"
-#include "macros.h"
-
-#ifdef __GNUC__
-using namespace std;
-#endif
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-const char dataCode = '-';
-const char piCode = '?';
-const char conformingCode = 'C';
-const char appinfoCode = '#';
-const char startElementCode = '(';
-const char endElementCode = ')';
-const char referenceEntityCode = '&';
-const char attributeCode = 'A';
-const char dataAttributeCode = 'D';
-const char linkAttributeCode = 'a';
-const char defineNotationCode = 'N';
-const char defineExternalEntityCode = 'E';
-const char defineInternalEntityCode = 'I';
-const char defineSubdocEntityCode = 'S';
-const char defineExternalTextEntityCode = 'T';
-const char pubidCode = 'p';
-const char sysidCode = 's';
-const char startSubdocCode = '{';
-const char endSubdocCode = '}';
-const char fileCode = 'f';
-const char locationCode = 'L';
-const char includedElementCode = 'i';
-const char emptyElementCode = 'e';
-
-const OutputCharStream::Newline nl = OutputCharStream::newline;
-
-const char space = ' ';
-const Char re = '\r';
-
-inline
-void SgmlsEventHandler::startData()
-{
-	if (!haveData_) {
-		os() << dataCode;
-		haveData_ = 1;
-	}
-}
-
-inline
-void SgmlsEventHandler::flushData()
-{
-	if (haveData_) {
-		os() << nl;
-		haveData_ = 0;
-	}
-}
-
-inline
-void SgmlsEventHandler::outputLocation(const Location &loc)
-{
-	if (outputLine_)
-		outputLocation1(loc);
-}
-
-SgmlsEventHandler::SgmlsEventHandler(const SgmlParser *parser,
-		OutputCharStream *os,
-		Messenger *messenger,
-		unsigned outputFlags)
-: SgmlsSubdocState(parser), os_(os), messenger_(messenger),
-	outputLine_((outputFlags & outputLine) != 0),
-	outputEntity_((outputFlags & outputEntity) != 0),
-	outputId_((outputFlags & outputId) != 0),
-	outputNotationSysid_((outputFlags & outputNotationSysid) != 0),
-	outputIncluded_((outputFlags & outputIncluded) != 0),
-	outputNonSgml_((outputFlags & outputNonSgml) != 0),
-	outputEmpty_((outputFlags & outputEmpty) != 0),
-	haveData_(0), lastSos_(0)
-{
-	os_->setEscaper(escape);
-}
-
-SgmlsEventHandler::~SgmlsEventHandler()
-{
-	flushData();
-	if (errorCount() == 0)
-		os() << conformingCode << nl;
-	delete os_;
-}
-
-void SgmlsEventHandler::message(MessageEvent *event)
-{
-	messenger_->dispatchMessage(event->message());
-	ErrorCountEventHandler::message(event);
-}
-
-void SgmlsEventHandler::appinfo(AppinfoEvent *event)
-{
-	const StringC *str;
-	if (event->literal(str)) {
-		outputLocation(event->location());
-		flushData();
-		os() << appinfoCode;
-		outputString(*str);
-		os() << nl;
-	}
-	delete event;
-}
-
-void SgmlsEventHandler::endProlog(EndPrologEvent *event)
-{
-	if (outputEntity_) {
-		flushData();
-		const Dtd &dtd = event->dtd();
-		Dtd::ConstEntityIter iter(dtd.generalEntityIter());
-		for (;;) {
-			const Entity *entity = iter.next().pointer();
-			if (!entity)
-	break;
-			defineEntity(entity);
-		}
-	}
-	if (!event->lpdPointer().isNull()) {
-		linkProcess_.init(event->lpdPointer());
-		haveLinkProcess_ = 1;
-		flushData();
-	}
-	for (size_t i = 0; i < event->simpleLinkNames().size(); i++) {
-		flushData();
-		attributes(event->simpleLinkAttributes()[i],
-			linkAttributeCode,
-			&event->simpleLinkNames()[i]);
-	}
-	delete event;
-}
-
-void SgmlsEventHandler::entityDefaulted(EntityDefaultedEvent *event)
-{
-	if (outputEntity_) {
-		flushData();
-		defineEntity(event->entityPointer().pointer());
-	}
-	delete event;
-}
-
-void SgmlsEventHandler::uselink(UselinkEvent *event)
-{
-	linkProcess_.uselink(event->linkSet(),
-		event->restore(),
-		event->lpd().pointer());
-	delete event;
-}
-
-void SgmlsEventHandler::sgmlDecl(SgmlDeclEvent *event)
-{
-	sd_ = event->sdPointer();
-	syntax_ = event->instanceSyntaxPointer(); // FIXME which syntax?
-	delete event;
-}
-
-void SgmlsEventHandler::data(DataEvent *event)
-{
-	outputLocation(event->location());
-	startData();
-	outputString(event->data(), event->dataLength());
-	delete event;
-}
-
-void SgmlsEventHandler::sdataEntity(SdataEntityEvent *event)
-{
-	outputLocation(event->location());
-	startData();
-	os() << "\\|";
-	outputString(event->data(), event->dataLength());
-	os() << "\\|";
-	delete event;
-}
-
-void SgmlsEventHandler::pi(PiEvent *event)
-{
-	outputLocation(event->location());
-	flushData();
-	os() << piCode;
-	outputString(event->data(), event->dataLength());
-	os() << nl;
-	delete event;
-}
-
-void SgmlsEventHandler::nonSgmlChar(NonSgmlCharEvent *event)
-{
-	if (outputNonSgml_) {
-		outputLocation(event->location());
-		startData();
-		os() << "\\%" << (unsigned long)event->character() << ';';
-	}
-	delete event;
-}
-
-void SgmlsEventHandler::startElement(StartElementEvent *event)
-{
-	flushData();
-	currentLocation_ = event->location();
-	if (haveLinkProcess_) {
-		const AttributeList *linkAttributes;
-		const ResultElementSpec *resultElementSpec;
-		linkProcess_.startElement(event->elementType(),
-			event->attributes(),
-			event->location(),
-			*this, // Messenger &
-			linkAttributes,
-			resultElementSpec);
-		if (linkAttributes)
-			attributes(*linkAttributes,
-				linkAttributeCode, &linkProcess_.name());
-	}
-	attributes(event->attributes(), attributeCode, 0);
-	currentLocation_.clear();
-	if (outputIncluded_ && event->included())
-		os() << includedElementCode << nl;
-	if (outputEmpty_ && event->mustOmitEnd())
-		os() << emptyElementCode << nl;
-	outputLocation(event->location());
-	os() << startElementCode << event->name() << nl;
-	delete event;
-}
-
-void SgmlsEventHandler::attributes(const AttributeList &attributes,
-	char code,
-	const StringC *ownerName)
-{
-	size_t nAttributes = attributes.size();
-	for (size_t i = 0; i < nAttributes; i++) {
-		const Text *text;
-		const StringC *string;
-		const AttributeValue *value = attributes.value(i);
-		if (value) {
-			switch (value->info(text, string)) {
-			case AttributeValue::implied:
-	startAttribute(attributes.name(i), code, ownerName);
-	os() << "IMPLIED" << nl;
-	break;
-			case AttributeValue::tokenized:
-	{
-		const char *typeString = "TOKEN";
-		const AttributeSemantics *semantics = attributes.semantics(i);
-		if (semantics) {
-			ConstPtr < Notation > notation
-				= semantics->notation();
-			if (!notation.isNull()) {
-				defineNotation(notation.pointer());
-				typeString = "NOTATION";
-			} else {
-				size_t nEntities = semantics->nEntities();
-				if (nEntities) {
-		typeString = "ENTITY";
-		if (!outputEntity_)
-			for (size_t i = 0; i < nEntities; i++) {
-				const Entity *entity =
-					semantics->entity(i).pointer();
-				if (!markEntity(entity))
-					defineEntity(entity);
-			}
-				}
-			}
-		}
-		if (outputId_ && attributes.id(i))
-			typeString = "ID";
-		startAttribute(attributes.name(i), code, ownerName);
-		os() << typeString << space << *string << nl;
-	}
-	break;
-			case AttributeValue::cdata:
-	{
-		startAttribute(attributes.name(i), code, ownerName);
-		os() << "CDATA ";
-		TextIter iter(*text);
-		TextItem::Type type;
-		const Char *p;
-		size_t length;
-		const Location *loc;
-		while (iter.next(type, p, length, loc))
-			switch (type) {
-			case TextItem::data:
-			case TextItem::cdata:
-				outputString(p, length);
-				break;
-			case TextItem::sdata:
-				os() << "\\|";
-				outputString(p, length);
-				os() << "\\|";
-				break;
-			case TextItem::nonSgml:
-				if (outputNonSgml_)
-		os() << "\\%" << (unsigned long)*p << ';';
-				break;
-			default:
-				break;
-			}
-		os() << nl;
-	}
-	break;
-			}
-		}
-	}
-}
-
-void SgmlsEventHandler::startAttribute(const StringC &name,
-		char code,
-		const StringC *ownerName)
-{
-	os() << code;
-	if (ownerName)
-		os() << *ownerName << space;
-	os() << name << space;
-}
-
-void SgmlsEventHandler::endElement(EndElementEvent *event)
-{
-	flushData();
-	if (haveLinkProcess_)
-		linkProcess_.endElement();
-	outputLocation(event->location());
-	os() << endElementCode << event->name() << nl;
-	delete event;
-}
-
-void SgmlsEventHandler::externalDataEntity(ExternalDataEntityEvent *event)
-{
-	currentLocation_ = event->location();
-	outputLocation(event->location());
-	flushData();
-	if (!outputEntity_ && !markEntity(event->entity()))
-		defineExternalDataEntity(event->entity());
-	currentLocation_.clear();
-	os() << referenceEntityCode << event->entity()->name() << nl;
-	delete event;
-}
-
-void SgmlsEventHandler::subdocEntity(SubdocEntityEvent *event)
-{
-	currentLocation_ = event->location();
-	outputLocation(event->location());
-	flushData();
-	const SubdocEntity *entity = event->entity();
-	if (!outputEntity_ && !markEntity(entity))
-		defineSubdocEntity(entity);
-	currentLocation_.clear();
-	os() << startSubdocCode << entity->name() << nl;
-	SgmlParser::Params params;
-	params.subdocInheritActiveLinkTypes = 1;
-	params.subdocReferenced = 1;
-	params.origin = event->entityOrigin()->copy();
-	params.parent = parser_;
-	params.sysid = entity->externalId().effectiveSystemId();
-	params.entityType = SgmlParser::Params::subdoc;
-	SgmlParser parser(params);
-	SgmlsSubdocState oldState;
-	SgmlsSubdocState::swap(oldState);
-	SgmlsSubdocState::init(&parser);
-	parser.parseAll(*this);
-	oldState.swap(*this);
-	os() << endSubdocCode << entity->name() << nl;
-	delete event;
-}
-
-void SgmlsEventHandler::defineEntity(const Entity *entity)
-{
-	const InternalEntity *internalEntity = entity->asInternalEntity();
-	if (internalEntity)
-		defineInternalEntity(internalEntity);
-	else {
-		switch (entity->dataType()) {
-		case Entity::cdata:
-		case Entity::sdata:
-		case Entity::ndata:
-			defineExternalDataEntity(
-				entity->asExternalDataEntity());
-			break;
-		case Entity::subdoc:
-			defineSubdocEntity(entity->asSubdocEntity());
-			break;
-		case Entity::sgmlText:
-			defineExternalTextEntity(entity->asExternalEntity());
-			break;
-		default:
-			CANNOT_HAPPEN();
-		}
-	}
-}
-
-void SgmlsEventHandler::defineExternalDataEntity(
-	const ExternalDataEntity *entity)
-{
-	const Notation *notation = entity->notation();
-	defineNotation(notation);
-	externalId(entity->externalId());
-	const char *typeString;
-	switch (entity->dataType()) {
-	case Entity::cdata:
-		typeString = "CDATA";
-		break;
-	case Entity::sdata:
-		typeString = "SDATA";
-		break;
-	case Entity::ndata:
-		typeString = "NDATA";
-		break;
-	default:
-		CANNOT_HAPPEN();
-	}
-	os() << defineExternalEntityCode << entity->name()
-		<< space << typeString
-		<< space << notation->name()
-		<< nl;
-	attributes(entity->attributes(), dataAttributeCode, &entity->name());
-}
-
-void SgmlsEventHandler::defineSubdocEntity(const SubdocEntity *entity)
-{
-	externalId(entity->externalId());
-	os() << defineSubdocEntityCode << entity->name() << nl;
-}
-
-void SgmlsEventHandler::defineExternalTextEntity(const ExternalEntity *entity)
-{
-	externalId(entity->externalId());
-	os() << defineExternalTextEntityCode << entity->name() << nl;
-}
-
-void SgmlsEventHandler::defineInternalEntity(const InternalEntity *entity)
-{
-	os() << defineInternalEntityCode << entity->name() << space;
-	const char *s;
-	switch (entity->dataType()) {
-	case Entity::sdata:
-		s = "SDATA";
-		break;
-	case Entity::cdata:
-		s = "CDATA";
-		break;
-	case Entity::sgmlText:
-		s = "TEXT";
-		break;
-	case Entity::pi:
-		s = "PI";
-		break;
-	default:
-		CANNOT_HAPPEN();
-	}
-	os() << s << space;
-	outputString(entity->string());
-	os() << nl;
-}
-
-void SgmlsEventHandler::defineNotation(const Notation *notation)
-{
-	if (markNotation(notation))
-		return;
-	externalId(notation->externalId(), outputNotationSysid_);
-	os() << defineNotationCode << notation->name() << nl;
-}
-
-void SgmlsEventHandler::externalId(const ExternalId &id, Boolean outputFile)
-{
-	const StringC *str = id.publicIdString();
-	if (str) {
-		os() << pubidCode;
-		outputString(*str);
-		os() << nl;
-	}
-	str = id.systemIdString();
-	if (str) {
-		os() << sysidCode;
-		outputString(*str);
-		os() << nl;
-	}
-	if (outputFile && id.effectiveSystemId().size()) {
-		os() << fileCode;
-		outputString(id.effectiveSystemId());
-		os() << nl;
-	}
-}
-
-Boolean SgmlsEventHandler::markEntity(const Entity *entity)
-{
-	return (definedEntities_.add(entity->name()));
-}
-
-Boolean SgmlsEventHandler::markNotation(const Notation *notation)
-{
-	return (definedNotations_.add(notation->name()));
-}
-
-void SgmlsEventHandler::outputString(const Char *p, size_t n)
-{
-	for (; n > 0; p++, n--) {
-		switch (*p) {
-		case '\\':
-			// FIXME we're punning Chars and chars
-			os() << "\\\\";
-			break;
-		case re:
-			os() << "\\n";
-			if (outputLine_ && haveData_)
-	lastLineno_++;
-			break;
-		default:
-			// FIXME not clear what to do here
-			// given possibility of wide characters
-			if (*p < 040) {
-	static const char digits[] = "0123456789";
-	os() << "\\0" << digits[*p / 8] << digits[*p % 8];
-			}
-			else
-	os().put(*p);
-			break;
-		}
-	}
-}
-
-void SgmlsEventHandler::escape(OutputCharStream &s, Char c)
-{
-	s << "\\#" << (unsigned long)c << ";";
-}
-
-void SgmlsEventHandler::outputLocation1(const Location &loc)
-{
-	const Origin *origin = loc.origin().pointer();
-	const InputSourceOrigin *inputSourceOrigin;
-	const ExternalInfo *info;
-	Index index = loc.index();
-	for (;;) {
-		if (!origin)
-			return;
-		inputSourceOrigin = origin->asInputSourceOrigin();
-		if (inputSourceOrigin) {
-			info = inputSourceOrigin->externalInfo();
-			if (info)
-	break;
-		}
-		const Location &loc = origin->parent();
-		index = loc.index();
-		origin = loc.origin().pointer();
-	}
-	Offset off = inputSourceOrigin->startOffset(index);
-	StorageObjectLocation soLoc;
-	if (!ExtendEntityManager::externalize(info, off, soLoc))
-		return;
-	if (soLoc.lineNumber == (unsigned long)-1)
-		return;
-	if (soLoc.storageObjectSpec == lastSos_) {
-		if (soLoc.lineNumber == lastLineno_)
-			return;
-		flushData();
-		os() << locationCode << soLoc.lineNumber << nl;
-		lastLineno_ = soLoc.lineNumber;
-	} else {
-		flushData();
-		os() << locationCode << soLoc.lineNumber << space;
-		outputString(soLoc.actualStorageId);
-		os() << nl;
-		lastLineno_ = soLoc.lineNumber;
-		lastSos_ = soLoc.storageObjectSpec;
-		lastLoc_ = loc;		// make sure lastSos_ doesn't get freed
-	}
-}
-
-void SgmlsEventHandler::dispatchMessage(const Message &msg)
-{
-	if (!cancelled()) {
-		noteMessage(msg);
-		messenger_->dispatchMessage(msg);
-	}
-}
-
-void SgmlsEventHandler::initMessage(Message &msg)
-{
-	msg.loc = currentLocation_;
-}
-
-SgmlsSubdocState::SgmlsSubdocState()
-: haveLinkProcess_(0), parser_(0)
-{
-}
-
-SgmlsSubdocState::SgmlsSubdocState(const SgmlParser *parser)
-: haveLinkProcess_(0), parser_(parser)
-{
-}
-
-void SgmlsSubdocState::init(const SgmlParser *parser)
-{
-	parser_ = parser;
-	definedNotations_.clear();
-	definedEntities_.clear();
-	haveLinkProcess_ = 0;
-	linkProcess_.clear();
-}
-
-void SgmlsSubdocState::swap(SgmlsSubdocState &to)
-{
-	{
-		const SgmlParser *tem = to.parser_;
-		to.parser_ = parser_;
-		parser_ = tem;
-	}
-	{
-		Boolean tem = to.haveLinkProcess_;
-		to.haveLinkProcess_ = haveLinkProcess_;
-		haveLinkProcess_ = tem;
-	}
-	linkProcess_.swap(to.linkProcess_);
-	definedNotations_.swap(to.definedNotations_);
-	definedEntities_.swap(to.definedEntities_);
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/SgmlsEventHandler.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef SgmlsEventHandler_INCLUDED
-#define SgmlsEventHandler_INCLUDED 1
-
-#include <stddef.h>
-#include "Event.h"
-#include "Boolean.h"
-#include "StringC.h"
-#include "OutputCharStream.h"
-#include "StringSet.h"
-#include "Location.h"
-#include "Syntax.h"
-#include "Sd.h"
-#include "Ptr.h"
-#include "LinkProcess.h"
-#include "Message.h"
-#include "ErrorCountEventHandler.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class SgmlParser;
-struct StorageObjectSpec;
-
-class SgmlsSubdocState {
-public:
-  SgmlsSubdocState();
-  SgmlsSubdocState(const SgmlParser *);
-  void init(const SgmlParser *);
-  void swap(SgmlsSubdocState &);
-protected:
-  const SgmlParser *parser_;
-  StringSet definedEntities_;
-  StringSet definedNotations_;
-  Boolean haveLinkProcess_;
-  LinkProcess linkProcess_;
-private:
-  SgmlsSubdocState(const SgmlsSubdocState &); // undefined
-  void operator=(const SgmlsSubdocState &);   // undefined
-};
-
-class SgmlsEventHandler : public ErrorCountEventHandler,
-  private SgmlsSubdocState, private Messenger {
-public:
-  enum {
-    outputLine = 01,
-    outputEntity = 02,
-    outputId = 04,
-    outputIncluded = 010,
-    outputNotationSysid = 020,
-    outputNonSgml = 040,
-    outputEmpty = 0100
-    };
-      
-  SgmlsEventHandler(const SgmlParser *,
-		    OutputCharStream *,
-		    Messenger *,
-		    unsigned outputFlags);
-  ~SgmlsEventHandler();
-  void data(DataEvent *);
-  void startElement(StartElementEvent *);
-  void endElement(EndElementEvent *);
-  void pi(PiEvent *);
-  void sdataEntity(SdataEntityEvent *);
-  void externalDataEntity(ExternalDataEntityEvent *);
-  void subdocEntity(SubdocEntityEvent *);
-  void nonSgmlChar(NonSgmlCharEvent *);
-  void appinfo(AppinfoEvent *);
-  void uselink(UselinkEvent *);
-  void sgmlDecl(SgmlDeclEvent *);
-  void endProlog(EndPrologEvent *);
-  void message(MessageEvent *);
-  void entityDefaulted(EntityDefaultedEvent *event);
-protected:
-  void dispatchMessage(const Message &);
-  void dispatchMessage(Message &tmp_message) {
-        dispatchMessage((const Message &)tmp_message);
-  };
-  void initMessage(Message &);
-private:
-  SgmlsEventHandler(const SgmlsEventHandler &); // undefined
-  void operator=(const SgmlsEventHandler &);	// undefined
-
-  void attributes(const AttributeList &attributes, char code,
-		  const StringC *ownerName);
-  void startAttribute(const StringC &name, char code,
-		      const StringC *ownerName);
-  void defineEntity(const Entity *entity);
-  void defineExternalDataEntity(const ExternalDataEntity *entity);
-  void defineSubdocEntity(const SubdocEntity *entity);
-  void defineExternalTextEntity(const ExternalEntity *entity);
-  void defineInternalEntity(const InternalEntity *entity);
-  void defineNotation(const Notation *notation);
-  void externalId(const ExternalId &id, Boolean outputFile = 1);
-  Boolean markEntity(const Entity *);
-  Boolean markNotation(const Notation *);
-  void startData();
-  void flushData();
-
-  void outputLocation(const Location &loc);
-  void outputLocation1(const Location &loc);
-  void outputString(const StringC &str);
-  void outputString(const Char *, size_t);
-  static void escape(OutputCharStream &, Char);
-
-  OutputCharStream &os();
-
-  Messenger *messenger_;
-  Location currentLocation_;
-  OutputCharStream *os_;
-  Boolean haveData_;
-  ConstPtr<Sd> sd_;
-  ConstPtr<Syntax> syntax_;
-  const StorageObjectSpec *lastSos_;
-  unsigned long lastLineno_;
-  Location lastLoc_;
-  PackedBoolean outputLine_;
-  PackedBoolean outputIncluded_;
-  PackedBoolean outputEntity_;
-  PackedBoolean outputId_;
-  PackedBoolean outputNotationSysid_;
-  PackedBoolean outputNonSgml_;
-  PackedBoolean outputEmpty_;
-};
-
-inline
-void SgmlsEventHandler::outputString(const StringC &str)
-{
-  outputString(str.data(), str.size());
-}
-
-inline
-OutputCharStream &SgmlsEventHandler::os()
-{
-  return *os_;
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not SgmlsEventHandler_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/StringSet.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "config.h"
-#include "StringSet.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-StringSet::StringSet()
-{
-}
-
-Boolean StringSet::add(const StringC &str)
-{
-  StringC *p = table_.lookup(str);
-  if (p)
-    return 1;
-  p = new StringC(str);
-  table_.insert(p);
-  return 0;
-}
-
-void StringSet::swap(StringSet &to)
-{
-  table_.swap(to.table_);
-}
-
-
-#ifdef SP_NAMESPACE
-}
-#endif
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/StringSet.h	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#ifndef StringSet_INCLUDED
-#define StringSet_INCLUDED 1
-
-#include "StringC.h"
-#include "Hash.h"
-#include "Boolean.h"
-#include "OwnerTable.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-class StringSetKey {
-public:
-  static inline const StringC &key(const StringC &str) { return str; }
-};
-
-class StringSet {
-public:
-  StringSet();
-  Boolean add(const StringC &);	// return 1 if already there
-  void swap(StringSet &);
-  void clear();
-private:
-  StringSet(const StringSet &);	// undefined
-  void operator=(const StringSet &); // undefined
-  OwnerTable<StringC, StringC, Hash, StringSetKey> table_;
-};
-
-inline
-void StringSet::clear()
-{
-  table_.clear();
-}
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* not StringSet_INCLUDED */
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/nsgmls.cxx	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,271 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- * Copyright 1994, 1995 James Clark
- * See the file COPYING for copying permission.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "config.h"
-#include "Event.h"
-#include "MessageEventHandler.h"
-#include "SgmlsEventHandler.h"
-#include "RastEventHandler.h"
-#include "OutputCharStream.h"
-#include "Boolean.h"
-#include "NsgmlsMessages.h"
-#include "MessageArg.h"
-#include "ErrnoMessageArg.h"
-#include "ParserApp.h"
-#include "sptchar.h"
-#include "macros.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <limits.h>
-
-#ifdef __GNUC__
-using namespace std;
-#endif
-
-class NsgmlsApp : public ParserApp {
-public:
-	NsgmlsApp();
-	int processArguments(int argc, AppChar **argv);
-	ErrorCountEventHandler *makeEventHandler();
-	void processOption(AppChar opt, const AppChar *arg);
-	void allLinkTypesActivated();
-private:
-	Boolean suppressOutput_;
-	Boolean prologOnly_;
-	unsigned outputFlags_;
-	String < AppChar > rastFile_;
-	const AppChar *rastOption_;
-	Boolean batchMode_;
-};
-
-SP_DEFINE_APP(NsgmlsApp)
-
-class PrologMessageEventHandler : public MessageEventHandler {
-public:
-	PrologMessageEventHandler(Messenger *messenger);
-	void endProlog(EndPrologEvent *);
-};
-
-class XRastEventHandler : public RastEventHandler {
-public:
-	XRastEventHandler(SgmlParser *,
-				const NsgmlsApp::AppChar *filename,
-				const StringC &filenameStr,
-				const OutputCodingSystem *,
-				CmdLineApp *,
-				Messenger *messenger);
-	~XRastEventHandler();
-	void message(MessageEvent *);
-	void truncateOutput();
-	void allLinkTypesActivated();
-private:
-	Messenger *messenger_;
-	// file_ must come before os_ so it gets inited first
-	FileOutputByteStream file_;
-	EncodeOutputCharStream os_;
-	const NsgmlsApp::AppChar *filename_;
-	const StringC filenameStr_;
-	CmdLineApp *app_;
-};
-
-NsgmlsApp::NsgmlsApp()
-: suppressOutput_(0),
-	batchMode_(0),
-	prologOnly_(0),
-	outputFlags_(0),
-	rastOption_(0)
-{
-	registerOption('B');
-	registerOption('d');
-	registerOption('l');
-	registerOption('m', SP_T("catalog_sysid"));
-	registerOption('o', SP_T("output_option"));
-	registerOption('p');
-	registerOption('r');
-	registerOption('s');
-	registerOption('t', SP_T("rast_file"));
-	registerOption('u');
-}
-
-void NsgmlsApp::processOption(AppChar opt, const AppChar *arg)
-{
-	switch (opt) {
-	case 'B':
-		batchMode_ = 1;
-		break;
-	case 'd':
-		// warn about duplicate entity declarations
-		options_.warnDuplicateEntity = 1;
-		break;
-	case 'l':
-		// output L commands
-		outputFlags_ |= SgmlsEventHandler::outputLine;
-		break;
-	case 'm':
-		processOption(SP_T('c'), arg);
-		break;
-	case 'o':
-		{
-			static struct {
-	// Qualifier works around CodeWarrior bug
-	const CmdLineApp::AppChar *name;
-	unsigned flag;
-			} outputOptions[] = {
-	{ SP_T("line"), SgmlsEventHandler::outputLine },
-	{ SP_T("entity"), SgmlsEventHandler::outputEntity },
-	{ SP_T("id"), SgmlsEventHandler::outputId },
-	{ SP_T("included"), SgmlsEventHandler::outputIncluded },
-	{ SP_T("notation-sysid"), SgmlsEventHandler::outputNotationSysid },
-	{ SP_T("nonsgml"), SgmlsEventHandler::outputNonSgml },
-	{ SP_T("empty"), SgmlsEventHandler::outputEmpty },
-			};
-			Boolean found = 0;
-			for (size_t i = 0; i < SIZEOF(outputOptions); i++)
-	if (tcscmp(arg, outputOptions[i].name) == 0) {
-		outputFlags_ |= outputOptions[i].flag;
-		found = 1;
-		break;
-	}
-			if (!found)
-	message(NsgmlsMessages::unknownOutputOption,
-		StringMessageArg(convertInput(arg)));
-		}
-		break;
-	case 'p':
-		prologOnly_ = 1;
-		break;
-	case 'r':
-		// warn about defaulted entity reference
-		options_.warnDefaultEntityReference = 1;
-		break;
-	case 's':
-		suppressOutput_ = 1;
-		break;
-	case 't':
-		rastOption_ = arg;
-		break;
-	case 'u':
-		// warn about undefined elements
-		options_.warnUndefinedElement = 1;
-		break;
-	default:
-		ParserApp::processOption(opt, arg);
-		break;
-	}
-}
-
-int NsgmlsApp::processArguments(int argc, AppChar **argv)
-{
-	if (batchMode_) {
-		int ret = 0;
-		for (int i = 0; i < argc; i++) {
-			if (rastOption_) {
-	rastFile_.assign(rastOption_, tcslen(rastOption_));
-	rastFile_.append(argv[i], tcslen(argv[i]));
-	rastFile_ += SP_T('\0');
-			}
-			int tem = ParserApp::processArguments(1, argv + i);
-			if (tem > ret)
-	ret = tem;
-		}
-		return (ret);
-	}
-	else
-		return (ParserApp::processArguments(argc, argv));
-}
-
-void NsgmlsApp::allLinkTypesActivated()
-{
-	if (!rastOption_)
-		ParserApp::allLinkTypesActivated();
-}
-
-ErrorCountEventHandler *NsgmlsApp::makeEventHandler()
-{
-	if (prologOnly_)
-		return (new PrologMessageEventHandler(this));
-	else if (rastOption_) {
-		const AppChar *s = batchMode_ ? rastFile_.data() : rastOption_;
-		return (new XRastEventHandler(&parser_, s, convertInput(s),
-			outputCodingSystem_, this, this));
-	} else if (suppressOutput_)
-		return (new MessageEventHandler(this, &parser_));
-	else
-		return (new SgmlsEventHandler(&parser_,
-			makeStdOut(),
-			this,
-			outputFlags_));
-}
-
-PrologMessageEventHandler::PrologMessageEventHandler(Messenger *messenger)
-: MessageEventHandler(messenger)
-{
-}
-
-void PrologMessageEventHandler::endProlog(EndPrologEvent *event)
-{
-	cancel();
-	delete event;
-}
-
-XRastEventHandler::XRastEventHandler(SgmlParser *parser,
-		const NsgmlsApp::AppChar *filename,
-		const StringC &filenameStr,
-		const OutputCodingSystem *codingSystem,
-		CmdLineApp *app,
-		Messenger *messenger)
-: RastEventHandler(parser, messenger),
-	messenger_(messenger),
-	filename_(filename),
-	filenameStr_(filenameStr),
-	app_(app)
-{
-	errno = 0;
-	if (!file_.open(filename)) {
-		messenger->message(CmdLineApp::openFileErrorMessage(),
-				StringMessageArg(filenameStr),
-				ErrnoMessageArg(errno));
-		exit(1);
-	}
-	os_.open(&file_, codingSystem);
-	setOutputStream(&os_);
-}
-
-XRastEventHandler::~XRastEventHandler()
-{
-	end();
-}
-
-void XRastEventHandler::truncateOutput()
-{
-	os_.flush();
-	errno = 0;
-	if (!file_.close())
-		messenger_->message(CmdLineApp::closeFileErrorMessage(),
-			StringMessageArg(filenameStr_),
-			ErrnoMessageArg(errno));
-	errno = 0;
-	if (!file_.open(filename_)) {
-		messenger_->message(CmdLineApp::openFileErrorMessage(),
-			StringMessageArg(filenameStr_),
-			ErrnoMessageArg(errno));
-		exit(1);
-	}
-}
-
-void XRastEventHandler::message(MessageEvent *event)
-{
-	messenger_->dispatchMessage(event->message());
-	ErrorCountEventHandler::message(event);
-}
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/nsgmls.rc	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-// Copyright (c) 1996 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "NsgmlsMessages.rc"
-#include "RastEventHandlerMessages.rc"
--- a/usr/src/cmd/man/src/util/nsgmls.src/nsgmls/nsgmls_inst.m4	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-// Copyright (c) 1994 James Clark
-// See the file COPYING for copying permission.
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include "config.h"
-
-#ifdef SP_MANUAL_INST
-
-#define SP_DEFINE_TEMPLATES
-#include "Vector.h"
-#include "PointerTable.h"
-#include "OwnerTable.h"
-#include "Vector.h"
-#include "IQueue.h"
-#include "Owner.h"
-#undef SP_DEFINE_TEMPLATES
-
-#include "StringSet.h"
-#include "RastEventHandler.h"
-
-#ifdef SP_NAMESPACE
-namespace SP_NAMESPACE {
-#endif
-
-__instantiate(`PointerTable<StringC *, StringC, Hash, StringSetKey>')
-__instantiate(`OwnerTable<StringC, StringC, Hash, StringSetKey>')
-__instantiate(Vector<StringC *>)
-__instantiate(Owner<EndPrologEvent>)
-__instantiate(IQueue<LinkRulePi>)
-__instantiate(Vector<Vector<size_t> >)
-
-#ifdef SP_NAMESPACE
-}
-#endif
-
-#endif /* SP_MANUAL_INST */
--- a/usr/src/cmd/man/src/util/nsgmls.src/sunfix.sh	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-#!/bin/sh
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-# Sun C++ 4.0.1 gets confused by the macros in include/NCVector.h.
-
-cd include
-mv NCVector.h NCVector.h.dist
-sed -f NCVector.sed Vector.h >NCVector.h
-chmod -w NCVector.h
-sed -f NCVector.sed Vector.cxx >NCVector.cxx
-chmod -w NCVector.cxx
--- a/usr/src/cmd/man/src/util/roff.cmap	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-#
-#
-# Copyright (c) 1994  
-# Open Software Foundation, Inc. 
-#  
-# Permission is hereby granted to use, copy, modify and freely distribute 
-# the software in this file and its documentation for any purpose without 
-# fee, provided that the above copyright notice appears in all copies and 
-# that both the copyright notice and this permission notice appear in 
-# supporting documentation.  Further, provided that the name of Open 
-# Software Foundation, Inc. ("OSF") not be used in advertising or 
-# publicity pertaining to distribution of the software without prior 
-# written permission from OSF.  OSF makes no representations about the 
-# suitability of this software for any purpose.  It is provided "as is" 
-# without express or implied warranty. 
-#
-# Copyright (c) 1996 X Consortium
-# Copyright (c) 1996 Dalrymple Consulting
-# 
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-# 
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-# 
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-# 
-# Except as contained in this notice, the names of the X Consortium and
-# Dalrymple Consulting shall not be used in advertising or otherwise to
-# promote the sale, use or other dealings in this Software without prior
-# written authorization.
-#
-#
-#  Character strings to map for troff/nroff.
-#
-# From		To
-#\\		\\e
-^		\^
-.		\\&.
-'		\\&'
--- a/usr/src/cmd/man/src/util/roff.sdata	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,590 +0,0 @@
-#
-# Copyright (c) 1994  
-# Open Software Foundation, Inc. 
-#  
-# Permission is hereby granted to use, copy, modify and freely distribute 
-# the software in this file and its documentation for any purpose without 
-# fee, provided that the above copyright notice appears in all copies and 
-# that both the copyright notice and this permission notice appear in 
-# supporting documentation.  Further, provided that the name of Open 
-# Software Foundation, Inc. ("OSF") not be used in advertising or 
-# publicity pertaining to distribution of the software without prior 
-# written permission from OSF.  OSF makes no representations about the 
-# suitability of this software for any purpose.  It is provided "as is" 
-# without express or implied warranty. 
-#
-# Copyright (c) 1996 X Consortium
-# Copyright (c) 1996 Dalrymple Consulting
-# 
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-# 
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-# 
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-# 
-# Except as contained in this notice, the names of the X Consortium and
-# Dalrymple Consulting shall not be used in advertising or otherwise to
-# promote the sale, use or other dealings in this Software without prior
-# written authorization.
-#
-#
-# SDATA entity mappings to TeX instructions.
-# sgmls outputs sdata references in the form: \\|[mdash ]\\|
-#
-# J.Bowe, 1993
-#
-#	Numeric and Special Graphic     ________________________________
-#
-[half  ]		\\(12
-[frac12]		\\(12
-[frac14]		\\(14
-[frac34]		\\(34
-[frac18]		1/8
-[frac38]		3/8
-[frac58]		5/8
-[frac78]		7/8
-[sup1  ]		\\u1\\l
-[sup2  ]		\\u2\\l
-[sup3  ]		\\u3\\l
-[plus  ]		\\(pl
-[plusmn]		\\(+-
-[lt    ]		<
-[equals]		=
-[gt    ]		>
-[divide]		\\(di
-[times ]		\\(ti
-# [curren]		=general currency sign
-[pound ]		#
-[dollar]		$
-[cent  ]		\\(ct
-[yen   ]		yen
-[num   ]		#
-[percnt]		%
-[amp   ]		&
-[ast   ]		*
-[commat]		@
-[lsqb  ]		[
-[bsol  ]		\\e
-[rsqb  ]		]
-[lcub  ]		{	/lbrace O: =left curly bracket
-# [horbar]		horizontal bar
-[horbar]		_
-[verbar]		\\(or
-[rcub  ]		}
-[micro ]		\\(*m
-[ohm   ]		\\(*W
-[deg   ]		\\(de
-# [ordm  ]		=ordinal indicator, masculine
-# [ordf  ]		=ordinal indicator, feminine
-[sect  ]		\\(sc
-# [para  ]		=pilcrow (paragraph sign)
-# [middot]		/centerdot B: =middle dot
-[larr  ]		\\(<-
-[rarr  ]		\\(->
-[uarr  ]		\\(ua
-[darr  ]		\\(da
-[copy  ]		\\(co
-[reg   ]		\\(rg
-#[trade ]		trademark
-[trade ]		\\(tm
-# [brvbar]		=broken (vertical) bar
-[brvbar]		|
-[not   ]		\\(no
-# [sung  ]		=music note (sung text sign)
-[excl  ]		!
-# [iexcl ]		=inverted exclamation mark
-[quot  ]		"
-[apos  ]		\\&'
-[lpar  ]		(
-[rpar  ]		)
-[comma ]		,
-[lowbar]		_
-[hyphen]		\\-
-[period]		.
-[sol   ]		/
-[colon ]		:
-[semi  ]		;
-[quest ]		?
-# [iquest]		=inverted question mark
-# [laquo ]		=angle quotation mark, left
-[laquo ]		<<
-# [raquo ]		=angle quotation mark, right
-[raquo ]		>>
-[lsquo ]		`
-[rsquo ]		\\&'
-[ldquo ]		"
-[rdquo ]		"
-[nbsp  ]		\\ 
-[shy   ]		\\%
-#
-#	Publishing      ________________________________
-#
-# 			trailing space here
-[emsp  ]		\\ \\ 
-[ensp  ]		\\ 
-[emsp3 ]		\\ 
-[emsp4 ]		\\ 
-[numsp ]		\\0
-[puncsp]		\\|
-[thinsp]		\\|
-[hairsp]		\\\^
-[mdash ]		\\(em
-[ndash ]		-
-[dash  ]		-
-[blank ]		\\ 
-[hellip]		\\&...
-[nldr  ]		\\&..
-[frac13]		1/3
-[frac23]		2/3
-[frac15]		1/5
-[frac25]		2/5
-[frac35]		3/5
-[frac45]		4/5
-[frac16]		1/6
-[frac56]		5/6
-# [incare]		=in-care-of symbol
-# [block ]		=full block
-# [uhblk ]		=upper half block
-# [lhblk ]		=lower half block
-# [blk14 ]		=25% shaded block
-# [blk12 ]		=50% shaded block
-# [blk34 ]		=75% shaded block
-# [marker]		=histogram marker
-[cir   ]		\\(ci
-[squ   ]		\\(sq
-# [rect  ]		=rectangle, open
-# [utri  ]		/triangle =up triangle, open
-# [dtri  ]		/triangledown =down triangle, open
-[star  ]		\\(**	=star, open
-[bull  ]		\\(bu
-# [squf  ]		/blacksquare =sq bullet, filled
-# [utrif ]		/blacktriangle =up tri, filled
-# [dtrif ]		/blacktriangledown =dn tri, filled
-# [ltrif ]		/blacktriangleleft R: =l tri, filled
-# [rtrif ]		/blacktriangleright R: =r tri, filled
-# [clubs ]		/clubsuit =club suit symbol
-# [diams ]		/diamondsuit =diamond suit symbol
-# [hearts]		/heartsuit =heart suit symbol
-# [spades]		/spadesuit =spades suit symbol
-# [malt  ]		/maltese =maltese cross
-[dagger]		\\(dg
-[Dagger]		\\(dd
-# [check ]		/checkmark =tick, check mark
-# [ballot]		=ballot cross
-# [sharp ]		/sharp =musical sharp
-# [flat  ]		/flat =musical flat
-# [male  ]		=male symbol
-# [female]		=female symbol
-# [phone ]		=telephone symbol
-# [telrec]		=telephone recorder symbol
-# [copysr]		=sound recording copyright sign
-[caret ]		\^
-[lsquor]		`
-[ldquor]		``
-[fflig ]		\\(ff
-[filig ]		\\(fi
-# [fjlig ]		small fj ligature
-[ffilig]		\\(Fi
-[ffllig]		\\(Fl
-[fllig ]		\\(fl
-# [mldr  ]		em leader
-[rdquor]		\\&''
-[rsquor]		\\&'
-# [vellip]		vertical ellipsis
-# [hybull]		rectangle, filled (hyphen bullet)
-# [loz   ]		/lozenge - lozenge or total mark
-# [lozf  ]		/blacklozenge - lozenge, filled
-# [ltri  ]		/triangleleft B: l triangle, open
-# [rtri  ]		/triangleright B: r triangle, open
-# [starf ]		/bigstar - star, filled
-# [natur ]		/natural - music natural
-# [rx    ]		pharmaceutical prescription (Rx)
-# [sext  ]		sextile (6-pointed star)
-# [target]		register mark or target
-# [dlcrop]		downward left crop mark
-# [drcrop]		downward right crop mark
-# [ulcrop]		upward left crop mark
-# [urcrop]		upward right crop mark
-#
-#       Added Latin 1   ________________________________
-#
-[aacute]	\\(a'
-[Aacute]	\\(A'
-[acirc ]	\\(a^
-[Acirc ]	\\(A^
-[agrave]	\\(a`
-[Agrave]	\\(A`
-# [aring ]	=small a, ring
-# [Aring ]	=capital A, ring
-# [atilde]	=small a, tilde
-# [Atilde]	=capital A, tilde
-[auml  ]	\\(a:
-# [Auml  ]	=capital A, dieresis or umlaut mark
-[aelig ]	\\(ae
-[AElig ]	\\(AE
-# [ccedil]	=small c, cedilla
-# [Ccedil]	=capital C, cedilla
-# [eth   ]	=small eth, Icelandic
-# [ETH   ]	=capital Eth, Icelandic
-[eacute]	\\(e'
-[Eacute]	\\(E'
-# [ecirc ]	=small e, circumflex accent
-# [Ecirc ]	=capital E, circumflex accent
-[egrave]	\\(e`
-[Egrave]	\\(E`
-# [euml  ]	=small e, dieresis or umlaut mark
-# [Euml  ]	=capital E, dieresis or umlaut mark
-[iacute]	\\(i'
-[Iacute]	\\(I'
-# [icirc ]	=small i, circumflex accent
-# [Icirc ]	=capital I, circumflex accent
-[igrave]	\\(i`
-[Igrave]	\\(I`
-# [iuml  ]	=small i, dieresis or umlaut mark
-# [Iuml  ]	=capital I, dieresis or umlaut mark
-[ntilde]	\\(n~
-[Ntilde]	\\(N~
-[oacute]	\\(o'
-[Oacute]	\\(O'
-# [ocirc ]	=small o, circumflex accent
-# [Ocirc ]	=capital O, circumflex accent
-[ograve]	\\(o`
-[Ograve]	\\(O`
-[oslash]	\\(o/
-[Oslash]	\\(O/
-# [otilde]	=small o, tilde
-# [Otilde]	=capital O, tilde
-# [ouml  ]	=small o, dieresis or umlaut mark
-# [Ouml  ]	=capital O, dieresis or umlaut mark
-[szlig ]	\\(ss
-[thorn ]	\\(th
-# [THORN ]	=capital THORN, Icelandic
-[uacute]	\\(u'
-[Uacute]	\\(U'
-# [ucirc ]	=small u, circumflex accent
-# [Ucirc ]	=capital U, circumflex accent
-[ugrave]	\\(u`
-[Ugrave]	\\(U`
-# [uuml  ]	=small u, dieresis or umlaut mark
-# [Uuml  ]	=capital U, dieresis or umlaut mark
-# [yacute]	=small y, acute accent
-# [Yacute]	=capital Y, acute accent
-# [yuml  ]	=small y, dieresis or umlaut mark
-#
-#       Added Latin 2   ________________________________
-#
-# [abreve]	=small a, breve
-# [Abreve]	=capital A, breve
-# [amacr ]	=small a, macron
-# [Amacr ]	=capital A, macron
-[aogon ]	\\(ao
-# [Aogon ]	=capital A, ogonek
-# [cacute]	=small c, acute accent
-# [Cacute]	=capital C, acute accent
-# [ccaron]	=small c, caron
-# [Ccaron]	=capital C, caron
-# [ccirc ]	=small c, circumflex accent
-# [Ccirc ]	=capital C, circumflex accent
-# [cdot  ]	=small c, dot above
-# [Cdot  ]	=capital C, dot above
-# [dcaron]	=small d, caron
-# [Dcaron]	=capital D, caron
-# [dstrok]	=small d, stroke
-# [Dstrok]	=capital D, stroke
-# [ecaron]	=small e, caron
-# [Ecaron]	=capital E, caron
-# [edot  ]	=small e, dot above
-# [Edot  ]	=capital E, dot above
-# [emacr ]	=small e, macron
-# [Emacr ]	=capital E, macron
-# [eogon ]	=small e, ogonek
-# [Eogon ]	=capital E, ogonek
-# [gacute]	=small g, acute accent
-# [gbreve]	=small g, breve
-# [Gbreve]	=capital G, breve
-# [Gcedil]	=capital G, cedilla
-# [gcirc ]	=small g, circumflex accent
-# [Gcirc ]	=capital G, circumflex accent
-# [gdot  ]	=small g, dot above
-# [Gdot  ]	=capital G, dot above
-# [hcirc ]	=small h, circumflex accent
-# [Hcirc ]	=capital H, circumflex accent
-# [hstrok]	=small h, stroke
-# [Hstrok]	=capital H, stroke
-# [Idot  ]	=capital I, dot above
-# [Imacr ]	=capital I, macron
-# [imacr ]	=small i, macron
-# [ijlig ]	=small ij ligature
-# [IJlig ]	=capital IJ ligature
-# [inodot]	=small i without dot
-# [iogon ]	=small i, ogonek
-# [Iogon ]	=capital I, ogonek
-# [itilde]	=small i, tilde
-# [Itilde]	=capital I, tilde
-# [jcirc ]	=small j, circumflex accent
-# [Jcirc ]	=capital J, circumflex accent
-# [kcedil]	=small k, cedilla
-# [Kcedil]	=capital K, cedilla
-# [kgreen]	=small k, Greenlandic
-# [lacute]	=small l, acute accent
-# [Lacute]	=capital L, acute accent
-# [lcaron]	=small l, caron
-# [Lcaron]	=capital L, caron
-# [lcedil]	=small l, cedilla
-# [Lcedil]	=capital L, cedilla
-# [lmidot]	=small l, middle dot
-# [Lmidot]	=capital L, middle dot
-# [lstrok]	=small l, stroke
-# [Lstrok]	=capital L, stroke
-# [nacute]	=small n, acute accent
-# [Nacute]	=capital N, acute accent
-# [eng   ]	=small eng, Lapp
-# [ENG   ]	=capital ENG, Lapp
-# [napos ]	=small n, apostrophe
-# [ncaron]	=small n, caron
-# [Ncaron]	=capital N, caron
-# [ncedil]	=small n, cedilla
-# [Ncedil]	=capital N, cedilla
-# [odblac]	=small o, double acute accent
-# [Odblac]	=capital O, double acute accent
-# [Omacr ]	=capital O, macron
-# [omacr ]	=small o, macron
-# [oelig ]	=small oe ligature
-# [OElig ]	=capital OE ligature
-# [racute]	=small r, acute accent
-# [Racute]	=capital R, acute accent
-# [rcaron]	=small r, caron
-# [Rcaron]	=capital R, caron
-# [rcedil]	=small r, cedilla
-# [Rcedil]	=capital R, cedilla
-# [sacute]	=small s, acute accent
-# [Sacute]	=capital S, acute accent
-# [scaron]	=small s, caron
-# [Scaron]	=capital S, caron
-# [scedil]	=small s, cedilla
-# [Scedil]	=capital S, cedilla
-# [scirc ]	=small s, circumflex accent
-# [Scirc ]	=capital S, circumflex accent
-# [tcaron]	=small t, caron
-# [Tcaron]	=capital T, caron
-# [tcedil]	=small t, cedilla
-# [Tcedil]	=capital T, cedilla
-# [tstrok]	=small t, stroke
-# [Tstrok]	=capital T, stroke
-# [ubreve]	=small u, breve
-# [Ubreve]	=capital U, breve
-# [udblac]	=small u, double acute accent
-# [Udblac]	=capital U, double acute accent
-# [umacr ]	=small u, macron
-# [Umacr ]	=capital U, macron
-# [uogon ]	=small u, ogonek
-# [Uogon ]	=capital U, ogonek
-# [uring ]	=small u, ring
-# [Uring ]	=capital U, ring
-# [utilde]	=small u, tilde
-# [Utilde]	=capital U, tilde
-# [wcirc ]	=small w, circumflex accent
-# [Wcirc ]	=capital W, circumflex accent
-# [ycirc ]	=small y, circumflex accent
-# [Ycirc ]	=capital Y, circumflex accent
-# [Yuml  ]	=capital Y, dieresis or umlaut mark
-# [zacute]	=small z, acute accent
-# [Zacute]	=capital Z, acute accent
-# [zcaron]	=small z, caron
-# [Zcaron]	=capital Z, caron
-# [zdot  ]	=small z, dot above
-# [Zdot  ]	=capital Z, dot above
-#
-#       Greek Letters   ________________________________
-#
-[agr   ]	\\(*a
-[Agr   ]	\\(*A
-[bgr   ]	\\(*b
-[Bgr   ]	\\(*B
-[ggr   ]	\\(*g
-[Ggr   ]	\\(*G
-[dgr   ]	\\(*d
-[Dgr   ]	\\(*D
-[egr   ]	\\(*e
-[Egr   ]	\\(*E
-[zgr   ]	\\(*z
-[Zgr   ]	\\(*Z
-[eegr  ]	\\(*y
-[EEgr  ]	\\(*Y
-[thgr  ]	\\(*h
-[THgr  ]	\\(*H
-[igr   ]	\\(*i
-[Igr   ]	\\(*I
-[kgr   ]	\\(*k
-[Kgr   ]	\\(*K
-[lgr   ]	\\(*l
-[Lgr   ]	\\(*L
-[mgr   ]	\\(*m
-[Mgr   ]	\\(*M
-[ngr   ]	\\(*n
-[Ngr   ]	\\(*N
-[xgr   ]	\\(*c
-[Xgr   ]	\\(*C
-[ogr   ]	\\(*o
-[Ogr   ]	\\(*O
-[pgr   ]	\\(*p
-[Pgr   ]	\\(*P
-[rgr   ]	\\(*r
-[Rgr   ]	\\(*R
-[sgr   ]	\\(*s
-[Sgr   ]	\\(*S
-[sfgr  ]	\\(ts
-[tgr   ]	\\(*t
-[Tgr   ]	\\(*T
-[ugr   ]	\\(*u
-[Ugr   ]	\\(*U
-[phgr  ]	\\(*f
-[PHgr  ]	\\(*F
-[khgr  ]	\\(*x
-[KHgr  ]	\\(*X
-[psgr  ]	\\(*q
-[PSgr  ]	\\(*Q
-[ohgr  ]	\\(*w
-[OHgr  ]	\\(*W
-#
-#       Greek Symbols   ________________________________
-#
-[alpha ]	\\(*a
-[beta  ]	\\(*b
-[gamma ]	\\(*g
-[Gamma ]	\\(*G
-# [gammad]	/digamma
-[delta ]	\\(*d
-[Delta ]	\\(*D
-[epsi  ]	\\(*e
-# [epsiv ]	/varepsilon
-[epsis ]	\\(*e
-[zeta  ]	\\(*z
-[eta   ]	\\(*y
-[thetas]	\\(*h
-[Theta ]	\\(*H
-# [thetav]	/vartheta - curly or open theta
-[iota  ]	\\(*i
-[kappa ]	\\(*k
-# [kappav]	/varkappa
-[lambda]	\\(*l
-[Lambda]	\\(*L
-[mu    ]	\\(*m
-[nu    ]	\\(*n
-[xi    ]	\\(*c
-[Xi    ]	\\(*C
-[pi    ]	\\(*p
-# [piv   ]	/varpi
-[Pi    ]	\\(*P
-[rho   ]	\\(*r
-# [rhov  ]	/varrho
-[sigma ]	\\(*s
-[Sigma ]	\\(*S
-# [sigmav]	/varsigma
-[tau   ]	\\(*t
-[upsi  ]	\\(*u
-[Upsi  ]	\\(*U
-[phis  ]	\\(*f
-[Phi   ]	\\(*F
-# [phiv  ]	/varphi - curly or open phi
-[chi   ]	\\(*x
-[psi   ]	\\(*q
-[Psi   ]	\\(*X
-[omega ]	\\(*w
-[Omega ]	\\(*W
-#
-#	General Technical ________________________________
-#
-# [aleph ]		/aleph =aleph, Hebrew
-# [and   ]		/wedge /land B: =logical and
-# [ang90 ]		=right (90 degree) angle
-# [angsph]		/sphericalangle =angle-spherical
-[ap    ]		\\(ap
-# [becaus]		/because R: =because
-# [bottom]		/bot B: =perpendicular
-# [cap   ]		/cap B: =intersection
-# [cong  ]		/cong R: =congruent with
-# [conint]		/oint L: =contour integral operator
-# [cup   ]		/cup B: =union or logical sum
-[equiv ]		\\(==
-# [exist ]		/exists =at least one exists
-# [forall]		/forall =for all
-# [fnof  ]		=function of (italic small f)
-[ge    ]		\\(>=
-# [iff   ]		/iff =if and only if
-[infin ]		\\(if
-# [int   ]		/int L: =integral operator
-[isin  ]		\\(sb
-# [lang  ]		/langle O: =left angle bracket
-# [lArr  ]		/Leftarrow A: =is implied by
-[le    ]		\\(<=
-[minus ]		\\(mi
-# [mnplus]		/mp B: =minus-or-plus sign
-# [nabla ]		/nabla =del, Hamilton operator
-[ne    ]		\\(!=
-# [ni    ]		/ni /owns R: =contains
-# [or    ]		/vee /lor B: =logical or
-# [par   ]		/parallel R: =parallel
-# [part  ]		/partial =partial differential
-# [permil]		=per thousand
-# [perp  ]		/perp R: =perpendicular
-# [prime ]		/prime =prime or minute
-# [Prime ]		=double prime or second
-[prop  ]		\\(pt
-# [radic ]		/surd =radical
-# [rang  ]		/rangle C: =right angle bracket
-# [rArr  ]		/Rightarrow A: =implies
-[rArr  ]		\\(rh
-# [sim   ]		/sim R: =similar
-# [sime  ]		/simeq R: =similar, equals
-[square]		\\(sq
-[sub   ]		\\(sb
-[sube  ]		\\(ib
-[sup   ]		\\(sp
-[supe  ]		\\(ip
-# [there4]		/therefore R: =therefore
-# [Verbar]		/Vert =dbl vertical bar
-# [angst ]		Angstrom =capital A, ring
-# [bernou]		Bernoulli function (script capital B)
-# [compfn]		B: composite function (small circle)
-# [Dot   ]		=dieresis or umlaut mark
-# [DotDot]		four dots above
-# [hamilt]		Hamiltonian (script capital H)
-# [lagran]		Lagrangian (script capital L)
-# [lowast]		low asterisk
-# [notin ]		N: negated set membership
-# [order ]		order of (script small o)
-# [phmmat]		physics M-matrix (script capital M)
-# [tdot  ]		three dots above
-# [tprime]		triple prime
-# [wedgeq]		R: corresponds to (wedge, equals)
-#
-#	Diacritical Marks ________________________________
-#
-[acute ]		\\&'
-[breve ]		\\(be
-[caron ]		\\(hc
-[cedil ]		\\(cd
-[circ  ]		\^
-# [dblac ]		=double acute accent
-# [die   ]		=dieresis
-[dot   ]		\\(dt
-[grave ]		`
-[macr  ]		\\(ma
-[ogon  ]		\\(og
-[ring  ]		\\(ri
-[tilde ]		~
-[uml   ]		\\(..
-#
--- a/usr/src/cmd/man/src/util/sgml2roff.sh	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-#!/bin/sh
-#
-# Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-#############################################################################
-#
-#	sgml2roff
-#       adapted from docbook-to-man.sh
-#
-#############################################################################
-# 
-# Copyright (c) 1996 X Consortium
-# Copyright (c) 1996 Dalrymple Consulting
-# 
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-# 
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-# 
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM OR DALRYMPLE CONSULTING BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-# 
-# Except as contained in this notice, the names of the X Consortium and
-# Dalrymple Consulting shall not be used in advertising or otherwise to
-# promote the sale, use or other dealings in this Software without prior
-# written authorization.
-# 
-#############################################################################
-#
-# Written 5/29/96 by Fred Dalrymple
-#
-#############################################################################
-
-# ***** change the following paths if your installation of nsgmls and / or
-# ***** DocBook isn't into the default places.
-
-ROOT=/usr
-SGMLS=$ROOT/lib/sgml
-SUPPORT=$ROOT/share/lib/sgml/locale
-LOCALE_DIR=${LC_ALL:-${LC_MESSAGES:-${LANG:-C}}}
-
-if [ $LOCALE_DIR = "en_US" ]
-then
-    LOCALE_DIR=C
-fi
-
-if [ ! -d $SUPPORT/$LOCALE_DIR ]
-then
-	LOCALE_DIR=C
-fi
-
-DTDS=$SUPPORT/$LOCALE_DIR/dtds
-TPTFILES=$SUPPORT/$LOCALE_DIR/transpec
-
-# Everything below this line should be pretty standard and not require
-# modification.
-
-PARSER=$SGMLS/nsgmls
-INSTANT=$SGMLS/instant
-INSTANT_OPT=-d
-
-CATALOG=$DTDS/catalog
-DECL=$DTDS/solbook.dcl
-
-if [ $# -ne 1 ]; then
-	echo "usage:  sgml2roff <manpage>"
-	exit 1
-fi
-
-# Is it an SGML man page? If not is it a shadow?
-#
-if grep -i '<refentry[ >]' < $1 >/dev/null 2>&1;
-then
-   echo "'"'\" te';	\
-   $PARSER -gl -m$CATALOG -E0 $1 2>/dev/null | \
-   $INSTANT $INSTANT_OPT \
-    -c$TPTFILES/roff.cmap -s$TPTFILES/roff.sdata -t$TPTFILES/docbook-to-man.ts
-else
-   if  head -10 $1 | fgrep SHADOW_PAGE >/dev/null 2>&1
-   then
-	# This is a shadow man page.
-	# Figure out the real page, and kick out stub pointing to it
-
-	MASTER=`nawk '/SYSTEM/ {gsub("\"","",$4);gsub(">","",$4);print $4}' \
-	    < $1`
-	echo ".so `dirname $1`/$MASTER"
-   fi
-fi
--- a/usr/src/cmd/man/src/util/solbookv2/Makefile	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-
-include		../../../../Makefile.cmd
-
-SOLBOOKV2 =	solbook.dtd \
-		solbook.dcl
-
-SGMLSHLIB =	$(ROOTSHLIB)/sgml
-SGMLSHLIBLOCALE =	$(ROOTSHLIB)/sgml/locale
-SGMLSHLIBLOCALEC =	$(ROOTSHLIB)/sgml/locale/C
-SGMLDTDDIR = 	$(ROOTSHLIB)/sgml/locale/C/dtds
-SOLBOOKV2DIR =  $(SGMLDTDDIR)/solbookv2
-
-ROOTSOLBOOKV2 = $(SOLBOOKV2:%=$(SOLBOOKV2DIR)/%)
-
-FILEMODE = 	0644
-
-.KEEP_STATE :
-
-all :		THIRDPARTYLICENSE
-
-install :	all $(SOLBOOKV2DIR) $(ROOTSOLBOOKV2)
-
-clobber:
-	$(RM) THIRDPARTYLICENSE
-
-$(SOLBOOKV2DIR) :
-		$(INS.dir) 
-
-$(ROOTSOLBOOKV2):
-		$(INS.file) $(@F)
-
-# the license text appears multiple times; just grab the first instance.
-THIRDPARTYLICENSE: solbook.dtd
-	$(SED) -n -e '/HaL Computer/,/warranty/H' -e '/warranty/{x;p;q;}' \
-	    solbook.dtd > $@
-
--- a/usr/src/cmd/man/src/util/solbookv2/THIRDPARTYLICENSE.descrip	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-DOCUMENT TYPE DEFINITION SOFTWARE
--- a/usr/src/cmd/man/src/util/solbookv2/solbook.dcl	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-<!SGML  "ISO 8879:1986"
--- Copyright 2005 Sun Microsystems, Inc.  All rights reserved. --
--- Use is subject to license terms. --
--- --
--- CDDL HEADER START --
--- --
--- The contents of this file are subject to the terms of the --
--- Common Development and Distribution License, Version 1.0 only --
--- (the "License").  You may not use this file except in compliance --
--- with the License. --
--- --
--- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --
--- or http://www.opensolaris.org/os/licensing. --
--- See the License for the specific language governing permissions --
--- and limitations under the License. --
--- --
--- When distributing Covered Code, include this CDDL HEADER in each --
--- file and include the License file at usr/src/OPENSOLARIS.LICENSE. --
--- If applicable, add the following below this CDDL HEADER, with the --
--- fields enclosed by brackets "[]" replaced with your own identifying --
--- information: Portions Copyright [yyyy] [name of copyright owner] --
--- --
--- CDDL HEADER END --
--- --
--- ident	"%Z%%M%	%I%	%E% SMI" --
-
-         --  SGML Declaration for SolBook 2.0  --
-
-CHARSET
-
-        BASESET   "ISO 646:1983//CHARSET
-                   International Reference Version (IRV)//ESC 2/5 4/0"
-        DESCSET
-                    0   9   UNUSED
-                    9   2   9
-                   11   2   UNUSED
-                   13   1   13
-                   14  18   UNUSED
-                   32  95   32
-                  127   1   UNUSED
-
-        BASESET   "ISO Registration Number 100//CHARSET
-                   ECMA-94 Right Part of Latin Alphabet Nr. 1//ESC 2/13 4/1"
-        DESCSET  
-                  128  32   UNUSED
-                  160  96   32
-
-
-CAPACITY  SGMLREF
-
-        TOTALCAP 99000000
-        ATTCAP    1000000
-        ATTCHCAP  1000000
-        AVGRPCAP  1000000
-        ELEMCAP   1000000
-        ENTCAP    1000000
-        ENTCHCAP  1000000
-        GRPCAP    1000000
-        IDCAP    45000000
-        IDREFCAP 45000000
-  
-	--
-                TOTALCAP        4000000
-                ATTCAP           256000
-                AVGRPCAP         256000
-                ENTCAP           300000
-                ENTCHCAP         350000
-                GRPCAP           300000
-                IDCAP           2000000
-	--
-
-SCOPE    DOCUMENT
-
-SYNTAX
-
-        SHUNCHAR CONTROLS   0   1   2   3   4   5   6   7   8   9
-                           10  11  12  13  14  15  16  17  18  19
-                           20  21  22  23  24  25  26  27  28  29
-                           30  31                     127 128 129
-                          130 131 132 133 134 135 136 137 138 139
-                          140 141 142 143 144 145 146 147 148 149
-                          150 151 152 153 154 155 156 157 158 159
-
-        BASESET  "ISO 646:1983//CHARSET
-                  International Reference Version (IRV)//ESC 2/5 4/0"
-        DESCSET
-                 0 128 0
-
-
-        FUNCTION
-                  RE          13
-                  RS          10
-                  SPACE       32
-                  TAB SEPCHAR  9
-
-        NAMING
-                  LCNMSTRT ""
-                  UCNMSTRT ""
-                  LCNMCHAR ".-_"
-                  UCNMCHAR ".-_"
-                  NAMECASE GENERAL YES
-                           ENTITY  NO
-
-        DELIM     GENERAL  SGMLREF
-                  SHORTREF SGMLREF
-
-        NAMES     SGMLREF
-
-        QUANTITY  SGMLREF
-		  ATTCNT    256
-                  GRPCNT    253
-                  GRPGTCNT  253
-                  LITLEN   8092
-                  NAMELEN    44
-                  TAGLVL    100
-
-FEATURES
-
-        MINIMIZE
-                  DATATAG  NO
-                  OMITTAG  NO
-                  RANK     NO
-                  SHORTTAG YES 
-
-        LINK
-                  SIMPLE   NO
-                  IMPLICIT NO
-                  EXPLICIT NO
-
-        OTHER
-                  CONCUR   NO
-                  SUBDOC   NO
-                  FORMAL   NO
-
-        APPINFO   NONE
->
-<!-- version: $Id: solbook.dcl	1.9 - 98/04/06 16:53:26 altheim $ -->
--- a/usr/src/cmd/man/src/util/solbookv2/solbook.dtd	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4296 +0,0 @@
-<!-- ...................................................................... -->
-<!-- DocBook DTD V3.0-Based SolBook Subset V2.0 ........................... -->
-<!-- File solbook.dtd ..................................................... -->
-
-<!-- This is SolBook 2.0, a subset of DocBook V3.0.
-     Copyright 1999 Sun Microsystems, Inc., All rights reserved.
-     $Id: solbook.dtd 1.34 99/06/25 SMI $
-	 ident	"%Z%%M%	%I%	%E% SMI"
-
-     DocBook V3.0
-     Copyright 1992, 1993, 1994, 1995, 1996 HaL Computer Systems, Inc.,
-     O'Reilly & Associates, Inc., ArborText, Inc., and Fujitsu Software Corp.
-
-     Permission to use, copy, modify and distribute the DocBook DTD and its
-     accompanying documentation for any purpose and without fee is hereby
-     granted in perpetuity, provided that the above copyright notice and
-     this paragraph appear in all copies. The copyright holders make no
-     representation about the suitability of the DTD for any purpose.
-     It is provided "as is" without expressed or implied warranty.
--->
-
-<!-- ...................................................................... -->
-<!--
-     This is the driver file for Version 2.0 of the SolBook DTD.
-     Please use the following formal public identifier to identify it:
-
-     "-//Sun Microsystems//DTD DocBook V3.0-Based SolBook Subset V2.0//EN"
-
-     For example, if your document's top-level element is Book, and
-     you are using SolBook directly, use the FPI in the DOCTYPE
-     declaration:
-
-     <!DOCTYPE Book PUBLIC
-         "-//Sun Microsystems//DTD DocBook V3.0-Based SolBook Subset V2.0//EN">
-
-     The SolBook DTD is accompanied by an SGML declaration.
-
-#               SolBook 3.0 Revision History:
-# file: solbook.dtd
-
-     For detailed revision information, try: % grep '^#' solbook.dtd
--->
-
-<!-- ...................................................................... -->
-<!-- Notation declarations ................................................ -->
-
-<!ENTITY % local.notation.class "">
-<!ENTITY % notation.class
-                "AU | BMP | CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
-                | EPS | EQN | FAX | GIF | GIF87a | GIF89a | IGES | JPEG
-                | PCX | PIC | PS | SGML | SMCL | TBL | TEX | TIFF | WMF | WPG
-                | linespecific
-                %local.notation.class;">
-
-<!NOTATION AU                PUBLIC
-  "-//Sun Microsystems//NOTATION Sun Audio File format//EN">
-<!NOTATION BMP               PUBLIC
-  "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
-<!NOTATION CGM-CHAR          PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
-<!NOTATION CGM-BINARY        PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
-<!NOTATION CGM-CLEAR         PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
-<!NOTATION DITROFF           SYSTEM "DITROFF">
-<!NOTATION DVI               SYSTEM "DVI">
-<!NOTATION EPS               PUBLIC 
-  "+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
-<!-- EQN was SYSTEM "-//AT&T//NOTATION EQN-1//EN" -->
-<!NOTATION EQN               SYSTEM "">
-<!NOTATION FAX               PUBLIC 
-  "-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
-<!NOTATION GIF               SYSTEM "GIF">
-<!NOTATION GIF87a            PUBLIC
-  "-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
-<!NOTATION GIF89a            PUBLIC
-  "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
-<!NOTATION IGES              PUBLIC 
-  "-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
-<!NOTATION JPEG              PUBLIC 
-  "ISO/IEC 10918:1993//NOTATION Digital Compression and Coding of Continuous-tone Still Images (JPEG)//EN">
-<!NOTATION PCX               PUBLIC 
-  "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
-<!-- PIC was SYSTEM "-//AT&T//NOTATION EQN-1//EN" -->
-<!NOTATION PIC               SYSTEM "">
-<!NOTATION PS                SYSTEM "PS">
-<!NOTATION SGML              PUBLIC 
-  "ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
-<!NOTATION SMCL              PUBLIC
-  "-//Sun Microsystems//NOTATION Sun Media Center Lite video format//EN">
-<!-- TBL was SYSTEM "-//AT&T//NOTATION EQN-1//EN" -->
-<!NOTATION TBL               SYSTEM "">
-<!NOTATION TEX               PUBLIC 
-  "+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
-<!NOTATION TIFF              SYSTEM "TIFF">
-<!NOTATION WMF               PUBLIC 
-  "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
-<!NOTATION WPG               SYSTEM "WPG" --WordPerfect Graphic format-->
-<!NOTATION linespecific      SYSTEM 
-  "line ends and leading white space must be preserved in output">
-
-<!-- ...................................................................... -->
-<!-- DTD modules .......................................................... -->
-
-<!-- Character Mnemonic Entities ... -->
-
-<!ENTITY % charents PUBLIC
-  "-//Sun Microsystems//ENTITIES SolBook V2.0 Character Mnemonics//EN">
-<!-- ...................................................................... -->
-<!-- SolBook V2.0 Character Mnemonics Module .............................. -->
-<!-- File charents.mod .................................................... -->
-
-<!-- This is SolBook 2.0, a subset of DocBook V3.0.
-     Copyright 1999 Sun Microsystems, Inc., All rights reserved.
-     $Id: @(#)charents.mod 1.9 99/06/18 SMI $
-
-     DocBook V3.0
-     Copyright 1992, 1993, 1994, 1995, 1996 HaL Computer Systems, Inc.,
-     O'Reilly & Associates, Inc., ArborText, Inc., and Fujitsu Software Corp.
-
-     Permission to use, copy, modify and distribute the DocBook DTD and its
-     accompanying documentation for any purpose and without fee is hereby
-     granted in perpetuity, provided that the above copyright notice and
-     this paragraph appear in all copies. The copyright holders make no
-     representation about the suitability of the DTD for any purpose.
-     It is provided "as is" without expressed or implied warranty.
--->
-
-<!-- This module contains the definitions for the character mnemonic entities
-     used by SolBook documents. This module references the commonly used set
-     of ISO character entities as declared and used in DocBook V3.0.
-
-     In DTD driver files referring to this module, please use an entity
-     declaration that uses the public identifier shown below:
-
-     <!ENTITY % charents PUBLIC
-       "-//Sun Microsystems//ENTITIES SolBook V2.0 Character Mnemonics//EN">
-     %charents;
--->
-
-<!-- <<<<<<<<<<<<<<<     SolBook variation(s) from DocBook     >>>>>>>>>>>>>>>>
-# 1998-02-02        IGNORE all ISO entity sets; declare single 'SunISO' module
--->
-
-<!-- ...................................................................... -->
-<!-- Sun character entity sets ............................................ -->
-
-<!ENTITY % SunIso.module "INCLUDE">
-<![ %SunIso.module; [
-<!ENTITY % SunIso PUBLIC
-    "-//Sun Microsystems//ENTITIES SolBook ISO 8879:1986 Subset//EN">
-%SunIso;
-<!--end of SunIso.module-->]]>
-
-
-<!-- ...................................................................... -->
-<!-- ISO character entity sets ............................................ -->
-
-<!ENTITY % ISOamsa.module "IGNORE">
-<![ %ISOamsa.module; [
-<!ENTITY % ISOamsa PUBLIC
-  "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN">
-%ISOamsa;
-<!--end of ISOamsa.module-->]]>
-
-<!ENTITY % ISOamsb.module "IGNORE">
-<![ %ISOamsb.module; [
-<!ENTITY % ISOamsb PUBLIC
-  "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN">
-%ISOamsb;
-<!--end of ISOamsb.module-->]]>
-
-<!ENTITY % ISOamsc.module "IGNORE">
-<![ %ISOamsc.module; [
-<!ENTITY % ISOamsc PUBLIC
-  "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN">
-%ISOamsc;
-<!--end of ISOamsc.module-->]]>
-
-<!ENTITY % ISOamsn.module "IGNORE">
-<![ %ISOamsn.module; [
-<!ENTITY % ISOamsn PUBLIC
-  "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN">
-%ISOamsn;
-<!--end of ISOamsn.module-->]]>
-
-<!ENTITY % ISOamso.module "IGNORE">
-<![ %ISOamso.module; [
-<!ENTITY % ISOamso PUBLIC
-  "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN">
-%ISOamso;
-<!--end of ISOamso.module-->]]>
-
-<!ENTITY % ISOamsr.module "IGNORE">
-<![ %ISOamsr.module; [
-<!ENTITY % ISOamsr PUBLIC
-  "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN">
-%ISOamsr;
-<!--end of ISOamsr.module-->]]>
-
-<!ENTITY % ISObox.module "IGNORE">
-<![ %ISObox.module; [
-<!ENTITY % ISObox PUBLIC
-  "ISO 8879:1986//ENTITIES Box and Line Drawing//EN">
-%ISObox;
-<!--end of ISObox.module-->]]>
-
-<!ENTITY % ISOcyr1.module "IGNORE">
-<![ %ISOcyr1.module; [
-<!ENTITY % ISOcyr1 PUBLIC
-  "ISO 8879:1986//ENTITIES Russian Cyrillic//EN">
-%ISOcyr1;
-<!--end of ISOcyr1.module-->]]>
-
-<!ENTITY % ISOcyr2.module "IGNORE">
-<![ %ISOcyr2.module; [
-<!ENTITY % ISOcyr2 PUBLIC
-  "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN">
-%ISOcyr2;
-<!--end of ISOcyr2.module-->]]>
-
-<!ENTITY % ISOdia.module "IGNORE">
-<![ %ISOdia.module; [
-<!ENTITY % ISOdia PUBLIC
-  "ISO 8879:1986//ENTITIES Diacritical Marks//EN">
-%ISOdia;
-<!--end of ISOdia.module-->]]>
-
-<!ENTITY % ISOgrk1.module "IGNORE">
-<![ %ISOgrk1.module; [
-<!ENTITY % ISOgrk1 PUBLIC
-  "ISO 8879:1986//ENTITIES Greek Letters//EN">
-%ISOgrk1;
-<!--end of ISOgrk1.module-->]]>
-
-<!ENTITY % ISOgrk2.module "IGNORE">
-<![ %ISOgrk2.module; [
-<!ENTITY % ISOgrk2 PUBLIC
-  "ISO 8879:1986//ENTITIES Monotoniko Greek//EN">
-%ISOgrk2;
-<!--end of ISOgrk2.module-->]]>
-
-<!ENTITY % ISOgrk3.module "IGNORE">
-<![ %ISOgrk3.module; [
-<!ENTITY % ISOgrk3 PUBLIC
-  "ISO 8879:1986//ENTITIES Greek Symbols//EN">
-%ISOgrk3;
-<!--end of ISOgrk3.module-->]]>
-
-<!ENTITY % ISOgrk4.module "IGNORE">
-<![ %ISOgrk4.module; [
-<!ENTITY % ISOgrk4 PUBLIC
-  "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN">
-%ISOgrk4;
-<!--end of ISOgrk4.module-->]]>
-
-<!ENTITY % ISOlat1.module "IGNORE">
-<![ %ISOlat1.module; [
-<!ENTITY % ISOlat1 PUBLIC
-  "ISO 8879:1986//ENTITIES Added Latin 1//EN">
-%ISOlat1;
-<!--end of ISOlat1.module-->]]>
-
-<!ENTITY % ISOlat2.module "IGNORE">
-<![ %ISOlat2.module; [
-<!ENTITY % ISOlat2 PUBLIC
-  "ISO 8879:1986//ENTITIES Added Latin 2//EN">
-%ISOlat2;
-<!--end of ISOlat2.module-->]]>
-
-<!ENTITY % ISOnum.module "IGNORE">
-<![ %ISOnum.module; [
-<!ENTITY % ISOnum PUBLIC
-  "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN">
-%ISOnum;
-<!--end of ISOnum.module-->]]>
-
-<!ENTITY % ISOpub.module "IGNORE">
-<![ %ISOpub.module; [
-<!ENTITY % ISOpub PUBLIC
-  "ISO 8879:1986//ENTITIES Publishing//EN">
-%ISOpub;
-<!--end of ISOpub.module-->]]>
-
-<!ENTITY % ISOtech.module "IGNORE">
-<![ %ISOtech.module; [
-<!ENTITY % ISOtech PUBLIC
-  "ISO 8879:1986//ENTITIES General Technical//EN">
-%ISOtech;
-<!--end of ISOtech.module-->]]>
-
-<!-- End of SolBook V2.0 Character Mnemonics Module ....................... -->
-<!-- ...................................................................... -->
-
-<!-- Information pool .............. -->
-
-<!-- Entities for module inclusions ....................................... -->
-
-<!ENTITY % include.extensions "INCLUDE">
-<![ %include.extensions; [
-<!ENTITY % SUNEXTENSIONS PUBLIC
-  "-//Sun Microsystems//ENTITIES SolBook V2.0 Extensions to DocBook V3.0//EN" >
-<!-- ...................................................................... -->
-<!-- SolBook V2.0 extensions to dbpool.mod entities ....................... -->
-<!-- File sunents.mod ..................................................... -->
-
-<!-- This is SolBook 2.0, a subset of DocBook V3.0.
-     Copyright 1999 Sun Microsystems, Inc., All rights reserved.
-     $Id: @(#)sunents.mod 1.17 99/06/18 SMI $
-
-     Permission to use, copy, modify and distribute the DocBook DTD and its
-     accompanying documentation for any purpose and without fee is hereby
-     granted in perpetuity, provided that the above copyright notice and
-     this paragraph appear in all copies. The copyright holders make no
-     representation about the suitability of the DTD for any purpose.
-     It is provided "as is" without expressed or implied warranty.
--->
-
-<!-- ...................................................................... -->
-<!-- General-purpose semantics entities ................................... -->
-
-<!ENTITY % yesorno.attvals      "NUMBER">
-<!ENTITY % yes.attval           "1">
-<!ENTITY % no.attval            "0">
-
-<!-- ...................................................................... -->
-<!-- Entities for element classes and mixtures ............................ -->
-
-<!-- Object-level classes ................................................. -->
-
-<!ENTITY % local.list.class "">
-<!ENTITY % list.class
-                "GlossList|ItemizedList|OrderedList|SegmentedList
-                |SimpleList|VariableList %local.list.class;">
-
-<!ENTITY % local.admon.class "">
-<!ENTITY % admon.class
-                "Warning %local.admon.class;">
-
-<!ENTITY % local.linespecific.class "">
-<!ENTITY % linespecific.class
-                "LiteralLayout|ProgramListing|Screen
-                |ScreenShot %local.linespecific.class;">
-
-<!ENTITY % local.synop.class "">
-<!ENTITY % synop.class
-                "Synopsis|CmdSynopsis|FuncSynopsis %local.synop.class;">
-
-<!ENTITY % local.para.class "">
-<!ENTITY % para.class
-                "Para  %local.para.class;">
-
-<!ENTITY % local.informal.class "">
-<!ENTITY % informal.class
-                "BlockQuote|Graphic|InformalEquation
-                |InformalExample|InformalTable %local.informal.class;">
-
-<!ENTITY % local.formal.class "">
-<!ENTITY % formal.class
-                "Equation|Example|Figure|Table %local.formal.class;">
-
-<!ENTITY % local.compound.class "">
-<!ENTITY % compound.class
-                "MsgSet|Procedure %local.compound.class;">
-
-<!ENTITY % local.genobj.class "">
-<!ENTITY % genobj.class
-                "BridgeHead|Comment|Highlights
-                %local.genobj.class;">
-
-<!-- Character-level classes .............................................. -->
-
-<!ENTITY % local.ndxterm.class "">
-<!ENTITY % ndxterm.class
-                "IndexTerm %local.ndxterm.class;">
-
-<!ENTITY % local.xref.char.class "">
-<!ENTITY % xref.char.class
-                "FootnoteRef|XRef %local.xref.char.class;">
-
-<!ENTITY % local.word.char.class "">
-<!ENTITY % word.char.class
-                "Acronym|CiteRefEntry|CiteTitle|Emphasis
-                |FirstTerm|GlossTerm|Footnote|Phrase
-                |Quote|Trademark %local.word.char.class;">
-
-<!ENTITY % local.link.char.class "">
-<!ENTITY % link.char.class
-                "Link|OLink|ULink %local.link.char.class;">
-
-<!ENTITY % local.cptr.char.class "">
-<!ENTITY % cptr.char.class
-                "Application|ClassName|Command|ComputerOutput
-                |EnVar|ErrorCode|ErrorName|ErrorType|Filename|Function
-                |KeySym|Literal|MediaLabel
-                |MsgText|Option|Optional|Parameter|Property|Prompt
-                |Replaceable|ReturnValue|StructField|StructName
-                |Symbol|SystemItem|Type|UserInput
-                %local.cptr.char.class;">
-
-<!-- 
-<!ENTITY % local.base.char.class "">
-<!ENTITY % base.char.class
-                "Anchor %local.base.char.class;">
--->
-
-<!ENTITY % local.docinfo.char.class "">
-<!ENTITY % docinfo.char.class
-                "Author|AuthorInitials|CorpAuthor|ModeSpec|OtherCredit
-                |ProductName|ProductNumber|RevHistory
-                %local.docinfo.char.class;">
-
-<!ENTITY % local.other.char.class "">
-<!ENTITY % other.char.class
-                "Comment|Subscript|Superscript %local.other.char.class;">
-
-<!ENTITY % local.inlineobj.char.class "">
-<!ENTITY % inlineobj.char.class
-                "InlineGraphic|InlineEquation %local.inlineobj.char.class;">
-
-<!-- Redeclaration placeholder ............................................ -->
-
-<!-- For redeclaring entities that are declared after this point while
-     retaining their references to the entities that are declared before
-     this point -->
-
-
-<!-- Object-level mixtures ................................................ -->
-
-<!--
-                      list admn line synp para infm form cmpd gen  desc
-Component mixture       X    X    X    X    X    X    X    X    X    X
-Sidebar mixture         X    X    X    X    X    X    X    a    X
-Footnote mixture        X         X    X    X    X
-Example mixture         X         X    X    X    X
-Highlights mixture      X    X              X
-Paragraph mixture       X         X    X         X
-Admonition mixture      X         X    X    X    X    X    b    c
-Figure mixture                    X    X         X
-Table entry mixture     X    X    X         X    d
-Glossary def mixture    X         X    X    X    X         e
-Legal notice mixture    X    X    X         X    f
-
-a. Just Procedure; not Sidebar itself or MsgSet.
-b. No MsgSet.
-c. No Highlights.
-d. Just Graphic; no other informal objects.
-e. No Anchor, BridgeHead, or Highlights.
-f. Just BlockQuote; no other informal objects.
--->
-
-<!ENTITY % local.component.mix "">
-<!ENTITY % component.mix
-                "%list.class;                |%admon.class;
-                |%linespecific.class;        |%synop.class;
-                |%para.class;                |%informal.class;
-                |%formal.class;                |%compound.class;
-                |%genobj.class;                |Caution        
-                |Note        |Tip        %local.component.mix;">
-
-<!--
-<!ENTITY % local.sidebar.mix "">
-<!ENTITY % sidebar.mix
-                "%list.class;                |%admon.class;
-                |%linespecific.class;        |%synop.class;
-                |%para.class;                |%informal.class;
-                |%formal.class;                |Procedure
-                |%genobj.class;         |Caution
-                |Note        |Tip        %local.sidebar.mix;">
--->
-
-<!ENTITY % local.footnote.mix "">
-<!ENTITY % footnote.mix
-                "%list.class;
-                |%linespecific.class;        |%synop.class;
-                |%para.class;                |%informal.class;
-                %local.footnote.mix;">
-
-<!ENTITY % local.example.mix "">
-<!ENTITY % example.mix
-                "%list.class;
-                |%linespecific.class;        |%synop.class;
-                |%para.class;                |%informal.class;
-                %local.example.mix;">
-
-<!ENTITY % local.highlights.mix "">
-<!ENTITY % highlights.mix
-                "%list.class;        
-                |%para.class;
-                %local.highlights.mix;">
-
-<!-- %synop.class; is already included in para.char.mix because synopses
-     used inside paragraph-like contexts are "inline" synopses -->
-<!-- %formal.class; is explicitly excluded from many contexts in which
-     paragraphs are used -->
-<!--BETA Removed admon.class and formal.class -->
-<!ENTITY % local.para.mix "">
-<!ENTITY % para.mix
-                "%list.class;           
-                |%linespecific.class;
-                |%informal.class;
-                %local.para.mix;">
-
-<!ENTITY % local.admon.mix "">
-<!ENTITY % admon.mix
-                "%list.class;
-                |%linespecific.class;        |%synop.class;
-                |%para.class;                |%informal.class;
-                |Procedure
-                |Comment
-                %local.admon.mix;">
-
-<!ENTITY % local.figure.mix "">
-<!ENTITY % figure.mix
-                "%linespecific.class;        |%synop.class;
-                                        |%informal.class;
-                %local.figure.mix;">
-
-<!ENTITY % local.tabentry.mix "">
-<!ENTITY % tabentry.mix
-                "%list.class;                |%admon.class;
-                |%linespecific.class;
-                |%para.class;                |Graphic        |Caution
-                |Note        |Tip        %local.tabentry.mix;">
-
-<!--Removed formal.class from glossdef.mix-->
-<!ENTITY % local.glossdef.mix "">
-<!ENTITY % glossdef.mix
-                "%list.class;
-                |%linespecific.class;        |%synop.class;
-                |%para.class;                |%informal.class;
-                |Comment
-                %local.glossdef.mix;">
-<!--Removed BlockQuote from legalnotice.mix-to conform to solbook1-->
-<!ENTITY % local.legalnotice.mix "">
-<!ENTITY % legalnotice.mix
-                "%list.class;                |%admon.class;
-                |%linespecific.class;
-                |%para.class;        |Caution
-                |Note        |Tip        %local.legalnotice.mix;">
-
-<!-- Character-level mixtures ............................................. -->
-
-<!ENTITY % local.ubiq.mix "">
-<!ENTITY % ubiq.mix
-                "%ndxterm.class;|BeginPage">
-
-<!--
-                    #PCD xref word link cptr base dnfo othr inob (synop)
-para.char.mix         X    X    X    X    X    X    X    X    X     X
-title.char.mix        X    X    X    X    X    X    X    X    X
-ndxterm.char.mix      X    X    X    X    X    X    X    X    a
-cptr.char.mix         X              X    X    X         X    a
-smallcptr.char.mix    X                   b                   a
-word.char.mix         X         c    X         X         X    a
-docinfo.char.mix      X         d         b              X    a
-
-a. Just InlineGraphic; no InlineEquation.
-b. Just Replaceable; no other computer terms.
-c. Just Emphasis and Trademark; no other word elements.
-d. Just Acronym, Emphasis, and Trademark; no other word elements.
--->
-
-<!-- Note that synop.class is not usually used for *.char.mixes,
-     but is used here because synopses used inside paragraph
-     contexts are "inline" synopses -->
-
-<!ENTITY % local.para.char.mix "">
-<!ENTITY % para.char.mix
-                "#PCDATA
-                |%xref.char.class;      |%word.char.class;
-                |%link.char.class;      |%cptr.char.class;
-                |%docinfo.char.class;   |%synop.class; 
-                |%other.char.class;        |%inlineobj.char.class;
-                %local.para.char.mix;">
-
-<!--the small.para.char.mix is a solbook2.0 construct to limit the
-        programlisting and screen content models.  they originally
-        contained para.char.mix
--->
-<!ENTITY % small.para.char.mix   
-                "#PCDATA
-                |%xref.char.class;      |%word.char.class;
-                |%link.char.class;      |%cptr.char.class;
-                |%docinfo.char.class;   
-                |%other.char.class;     
-                %local.para.char.mix;">
-
-
-<!--BETA Removed inlineobj.char.class from title.char.mix-->
-<!ENTITY % local.title.char.mix "">
-<!ENTITY % title.char.mix
-                "#PCDATA
-                |%xref.char.class;      |%word.char.class;
-                |%link.char.class;      |%cptr.char.class;
-                |%docinfo.char.class;  
-                |%other.char.class; 
-                %local.title.char.mix;">
-
-<!--Removed InlineGraphic from ndxterm.char.mix for solbook2 -->
-<!ENTITY % local.ndxterm.char.mix "">
-<!ENTITY % ndxterm.char.mix
-                "#PCDATA
-                |%xref.char.class;        |%word.char.class;
-                |%link.char.class;        |%cptr.char.class;
-                |%docinfo.char.class;   
-                |%other.char.class;
-                %local.ndxterm.char.mix;">
-
-<!ENTITY % local.cptr.char.mix "">
-<!ENTITY % cptr.char.mix
-                "#PCDATA
-                |%link.char.class;        |%cptr.char.class;
-                |%other.char.class;
-                %local.cptr.char.mix;">
-
-<!ENTITY % local.smallcptr.char.mix "">
-<!ENTITY % smallcptr.char.mix
-                "#PCDATA
-                                        |Replaceable
-                                        |InlineGraphic
-                %local.smallcptr.char.mix;">
-
-<!ENTITY % local.word.char.mix "">
-<!ENTITY % word.char.mix
-                "#PCDATA
-                                        |Acronym|Emphasis|Trademark
-                |%link.char.class;
-                |%other.char.class;        |InlineGraphic
-                %local.word.char.mix;">
-
-<!ENTITY % local.docinfo.char.mix "">
-<!ENTITY % docinfo.char.mix
-                "#PCDATA
-                                        |Emphasis|Trademark
-                                        |Replaceable
-                |%other.char.class;        |InlineGraphic
-                %local.docinfo.char.mix;">
-<!--ENTITY % bibliocomponent.mix (see Bibliographic section, below)-->
-<!--ENTITY % person.ident.mix (see Bibliographic section, below)-->
-
-<!-- ...................................................................... -->
-<!-- Entities for content models .......................................... -->
-
-<!ENTITY % formalobject.title.content "Title, TitleAbbrev?">
-
-<!ENTITY % equation.content "(Graphic+)">
-
-<!ENTITY % inlineequation.content "(Graphic+)">
-
-<!ENTITY % programlisting.content "LineAnnotation | %small.para.char.mix;">
-
-<!ENTITY % screen.content "LineAnnotation | %small.para.char.mix;">
-
-<!-- ...................................................................... -->
-<!-- Entities for attributes and attribute components ..................... -->
-
-<!-- Effectivity attributes ............................................... -->
-
-<!ENTITY % arch.attrib
-        --Arch: computer or chip architecture to which element applies; no default--
-        "Arch            (SPARC | X86 | POWERPC | IA)           #IMPLIED">
-
-<!ENTITY % conformance.attrib
-        --Conformance: standards conformance characteristics--
-        "Conformance     NMTOKENS           #IMPLIED">
-
-<!ENTITY % os.attrib
-        --OS: operating system to which element applies; no default--
-        "OS              (SOLARIS | SOLARIS32 | SOLARIS64 | HP-UX)    #IMPLIED">
-
-<!ENTITY % revision.attrib
-        --Revision: editorial revision to which element belongs; no default--
-        "Revision        CDATA              #IMPLIED">
-
-<!ENTITY % userlevel.attrib
-        -- UserLevel: level of user experience to which element applies; 
-        no default --
-        "UserLevel (ADMIN | USER | DEVELOPER | USER-ADMIN | USER-DEVELOPER 
-         | ADMIN-DEVELOPER | ALL-AUDIENCES) #IMPLIED" >
-
-<!ENTITY % vendor.attrib
-        --Vendor: computer vendor to which element applies; no default--
-        "Vendor                CDATA                #IMPLIED">
-
-<!ENTITY % local.effectivity.attrib "">
-<!ENTITY % effectivity.attrib
-        "%arch.attrib;
-        %conformance.attrib;
-        %os.attrib;
-        %revision.attrib;
-        %userlevel.attrib;
-        %vendor.attrib;
-        %local.effectivity.attrib;"
->
-
-<!-- Common attributes .................................................... -->
-
-<!ENTITY % id.attrib
-        --Id: unique identifier of element; no default--
-        "Id                ID                #IMPLIED">
-
-<!ENTITY % idreq.attrib
-        --Id: unique identifier of element; a value must be supplied; no 
-        default--
-        "Id                ID                #REQUIRED">
-
-<!ENTITY % lang.attrib
-        --Lang: indicator of language in which element is written, for
-        translation, character set management, etc.; no default--
-        "Lang        (ca | de | en | es | fr | it | ja | ko | pl | ru | sv | zh | zh_TW ) en">
-
-<!ENTITY % remap.attrib
-        --Remap: previous role of element before conversion; no default--
-        "Remap                CDATA                #IMPLIED">
-
-<!ENTITY % role.attrib
-        --Role: new role of element in local environment; no default--
-        "Role                CDATA                #IMPLIED">
-
-<!ENTITY % xreflabel.attrib
-        --XRefLabel: alternate labeling string for XRef text generation;
-        default is usually title or other appropriate label text already
-        contained in element--
-        "XRefLabel        CDATA                #IMPLIED">
-
-<!ENTITY % revisionflag.attrib
-        --RevisionFlag: revision status of element; default is that element
-        wasn't revised--
-        "RevisionFlag        (Changed
-                        |Added
-                        |Deleted
-                        |Off)                #IMPLIED">
-
-<!ENTITY % local.common.attrib "">
-<!ENTITY % common.attrib
-        "%id.attrib;
-        %lang.attrib;
-        %remap.attrib;
-        --Role is included explicitly on each element--
-        %xreflabel.attrib;
-        %revisionflag.attrib;
-        %effectivity.attrib;"
->
-
-<!ENTITY % idreq.common.attrib
-        "%idreq.attrib;
-        %lang.attrib;
-        %remap.attrib;
-        --Role is included explicitly on each element--
-        %xreflabel.attrib;
-        %revisionflag.attrib;
-        %effectivity.attrib;
-        %local.common.attrib;"
->
-
-<!-- Semi-common attributes and other attribute entities .................. -->
-
-<!ENTITY % local.graphics.attrib "">
-<!ENTITY % graphics.attrib
-        "Entityref        ENTITY                #IMPLIED
-        Fileref         CDATA                #IMPLIED
-        Format                NOTATION
-                        (%notation.class;)
-                                        #IMPLIED
-        SrcCredit        CDATA                #IMPLIED
-        --Width = CALS reprowid (desired width)--
-        Width                NUTOKEN                #IMPLIED
-        --Depth = CALS reprodep (desired depth)--
-        Depth                NUTOKEN                #IMPLIED
-        --Align = CALS hplace with 'none' removed;
-        #IMPLIED means application-specific--
-        Align                (Left
-                        |Right 
-                        |Center)        #IMPLIED
-        --Scale = conflation of CALS hscale and vscale--
-        Scale                NUMBER                #IMPLIED
-        --Scalefit = CALS scalefit--
-        Scalefit        %yesorno.attvals;
-                                        #IMPLIED
-        %local.graphics.attrib;"
->
-
-<!ENTITY % local.keyaction.attrib "">
-<!ENTITY % keyaction.attrib
-        --Action: Key combination type; default is unspecified if one 
-        child element, Simul if there is more than one; if value is 
-        Other, the OtherAction attribute must have a nonempty value--
-        --OtherAction: User-defined key combination type--
-        "Action                (Click
-                        |Double-Click
-                        |Press
-                        |Seq
-                        |Simul
-                        |Other)                #IMPLIED
-        OtherAction        CDATA                #IMPLIED"
->
-
-<!ENTITY % label.attrib
-        --Label: number or identifying string; default is usually the
-        appropriate number or string autogenerated by a formatter--
-        "Label                CDATA                #IMPLIED">
-
-<!ENTITY % linespecific.attrib
-        --Format: whether element is assumed to contain significant white
-        space--
-        "Format                NOTATION
-                        (linespecific)        linespecific">
-
-<!ENTITY % linkend.attrib
-        --Linkend: link to related information; no default--
-        "Linkend        IDREF                #IMPLIED">
-
-<!ENTITY % linkendreq.attrib
-        --Linkend: required link to related information--
-        "Linkend        IDREF                #REQUIRED">
-
-<!ENTITY % linkends.attrib
-        --Linkends: link to one or more sets of related information; no 
-        default--
-        "Linkends        IDREFS                #IMPLIED">
-
-<!ENTITY % linkendsreq.attrib
-        --Linkends: required link to one or more sets of related information--
-        "Linkends        IDREFS                #REQUIRED">
-
-<!ENTITY % local.mark.attrib "">
-<!ENTITY % mark.attrib
-        "Mark                CDATA                #IMPLIED
-        %local.mark.attrib;"
->
-
-<!ENTITY % moreinfo.attrib
-        --MoreInfo: whether element's content has an associated RefEntry--
-        "MoreInfo        (RefEntry|None)        None">
-
-<!ENTITY % pagenum.attrib
-        --Pagenum: number of page on which element appears; no default--
-        "Pagenum        CDATA                #IMPLIED">
-
-<!ENTITY % local.status.attrib "">
-<!ENTITY % status.attrib
-        --Status: Editorial or publication status of the element
-        it applies to, such as "in review" or "approved for distribution"--
-        "Status                CDATA                #IMPLIED
-        %local.status.attrib;"
->
-
-<!ENTITY % width.attrib
-        --Width: width in characters (if intended display is to be in a
-        monospaced font) or in ens (if intended display is to be in a
-        variable-width font)--
-        "Width                NUMBER                #IMPLIED">
- 
-<!-- End of SolBook V2.0 extensions to dbpool.mod ......................... -->
-<!-- ...................................................................... -->
-
-]]>
-
-<!ENTITY % dbpool PUBLIC 
-  "-//Sun Microsystems//ELEMENTS DocBook Information Pool V3.0-Based SolBook Subset V2.0//EN">
-<!-- ...................................................................... -->
-<!-- SolBook V2.0 information pool module ................................. -->
-<!-- File dbpool.mod ...................................................... -->
-
-<!-- This is SolBook 2.0, a subset of DocBook V3.0.
-     Copyright 1999 Sun Microsystems, Inc., All rights reserved.
-     $Id: @(#)dbpool.mod 1.25 99/06/18 SMI $
-
-     DocBook V3.0
-     Copyright 1992, 1993, 1994, 1995, 1996 HaL Computer Systems, Inc.,
-     O'Reilly & Associates, Inc., ArborText, Inc., and Fujitsu Software Corp.
-
-     Permission to use, copy, modify and distribute the DocBook DTD and its
-     accompanying documentation for any purpose and without fee is hereby
-     granted in perpetuity, provided that the above copyright notice and
-     this paragraph appear in all copies. The copyright holders make no
-     representation about the suitability of the DTD for any purpose.
-     It is provided "as is" without expressed or implied warranty.
--->
-
-<!-- ...................................................................... -->
-
-<!-- This module contains the definitions for the objects, inline
-     elements, and so on that are available to be used as the main
-     content of SolBook documents.  Some elements are useful for general
-     publishing, and others are useful specifically for computer
-     documentation.
-
-     This module has the following dependencies on other modules:
-
-     o It assumes that a %notation.class; entity is defined by the
-       driver file or other high-level module.  This entity is
-       referenced in the NOTATION attributes for the graphic-related and
-       ModeSpec elements.
-
-     o It assumes that an appropriately parameterized table module is
-       available for use with the table-related elements.
-
-     In DTD driver files referring to this module, please use an entity
-     declaration that uses the public identifier shown below:
-
-     <!ENTITY % dbpool PUBLIC
-     "-//Sun Microsystems//ELEMENTS DocBook Information Pool V3.0-Based SolBook Subset V2.0//EN">
-     %dbpool;
-
-     See the documentation for detailed information on the parameter
-     entity and module scheme used in DocBook, customizing DocBook and
-     planning for interchange, and changes made since the last release
-     of DocBook.
-
-#file: dbpool.mod
--->
-
-<!-- ...................................................................... -->
-<!-- Title elements ....................................................... -->
-
-<!ENTITY % title.module "INCLUDE">
-<![ %title.module; [
-<!ENTITY % local.title.attrib "">
-<!ENTITY % title.role.attrib "%role.attrib;">
-<!ELEMENT Title - O ((%title.char.mix;)+)>
-<!ATTLIST Title
-                %pagenum.attrib;
-                %common.attrib;
->
-<!--end of title.module-->]]>
-
-<!ENTITY % titleabbrev.module "INCLUDE">
-<![ %titleabbrev.module; [
-<!ENTITY % local.titleabbrev.attrib "">
-<!ENTITY % titleabbrev.role.attrib "%role.attrib;">
-<!ELEMENT TitleAbbrev - O ((%title.char.mix;)+)>
-<!ATTLIST TitleAbbrev
-                %common.attrib;
->
-<!--end of titleabbrev.module-->]]>
-
-<!ENTITY % subtitle.module "INCLUDE">
-<![ %subtitle.module; [
-<!ENTITY % local.subtitle.attrib "">
-<!ENTITY % subtitle.role.attrib "%role.attrib;">
-<!ELEMENT Subtitle - O ((%title.char.mix;)+)>
-<!ATTLIST Subtitle
-                %common.attrib;
->
-<!--end of subtitle.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Bibliographic entities and elements .................................. -->
-
-<!-- The bibliographic elements are typically used in the document
-     hierarchy. They do not appear in content models of information
-     pool elements.  See also the document information elements,
-     below. -->
-
-<!ENTITY % local.person.ident.mix "">
-<!ENTITY % person.ident.mix
-                "FirstName|Surname|OtherName?
-                |Contrib? %local.person.ident.mix;">
-
-
-<!ENTITY % biblioentry.module "INCLUDE">
-<![ %biblioentry.module; [
-<!ENTITY % local.biblioentry.attrib "">
-
-<!ENTITY % biblioentry.role.attrib "%role.attrib;">
-<!ELEMENT BiblioEntry - O (BookBiblio)>
-<!ATTLIST BiblioEntry
-                %common.attrib;
->
-<!--end of biblioentry.module-->]]>
-
-<!ENTITY % bookbiblio.module "INCLUDE">
-<![ %bookbiblio.module; [
-<!ENTITY % local.bookbiblio.attrib "">
-<!ENTITY % bookbiblio.role.attrib "%role.attrib;">
-<!ELEMENT BookBiblio - - (Title, TitleAbbrev?, Subtitle?, Edition?,
-                           AuthorGroup, (ISBN, VolumeNum?), ProductNumber?,
-                           ProductName?, PubsNumber, ReleaseInfo?, PubDate,
-                           Publisher*, (Copyright)+, Abstract?,
-                           RevHistory?) -(%ubiq.mix;)
->
-<!--end of bookbiblio.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Subject, Keyword, and ITermSet elements .............................. -->
-
-<!ENTITY % subjectset.content.module "INCLUDE">
-<![ %subjectset.content.module; [
-<!ENTITY % subjectset.module "INCLUDE">
-<![ %subjectset.module; [
-<!ENTITY % local.subjectset.attrib "">
-<!ENTITY % subjectset.role.attrib "%role.attrib;">
-<!ELEMENT SubjectSet - - (Subject+)>
-<!ATTLIST SubjectSet
-                --Scheme: External set of subject terms employed in
-                SubjectTerms--
-                Scheme          NAME            #IMPLIED
-                %common.attrib;
-                %subjectset.role.attrib;
-                %local.subjectset.attrib;
->
-<!--end of subjectset.module-->]]>
-
-<!ENTITY % subject.module "INCLUDE">
-<![ %subject.module; [
-<!ENTITY % local.subject.attrib "">
-<!ENTITY % subject.role.attrib "%role.attrib;">
-<!ELEMENT Subject - - (SubjectTerm+)>
-<!ATTLIST Subject
-                --Weight: Ranking of this group of SubjectTerms relative
-                to others, 0 is low, no highest value specified--
-                Weight          NUMBER          #IMPLIED
-                %common.attrib;
-                %subject.role.attrib;
-                %local.subject.attrib;
->
-<!--end of subject.module-->]]>
-
-<!ENTITY % subjectterm.module "INCLUDE">
-<![ %subjectterm.module; [
-<!ENTITY % local.subjectterm.attrib "">
-<!ENTITY % subjectterm.role.attrib "%role.attrib;">
-<!ELEMENT SubjectTerm - - (#PCDATA)>
-<!ATTLIST SubjectTerm
-                %common.attrib;
-                %subjectterm.role.attrib;
-                %local.subjectterm.attrib;
->
-<!--end of subjectterm.module-->]]>
-<!--end of subjectset.content.module-->]]>
-
-<!ENTITY % keywordset.content.module "INCLUDE">
-<![ %keywordset.content.module; [
-<!ENTITY % local.keywordset.attrib "">
-<!ENTITY % keywordset.module "INCLUDE">
-<![ %keywordset.module; [
-<!ENTITY % local.keywordset.attrib "">
-<!ENTITY % keywordset.role.attrib "%role.attrib;">
-<!ELEMENT KeywordSet - - (Keyword+)>
-<!ATTLIST KeywordSet
-                %common.attrib;
-                %keywordset.role.attrib;
-                %local.keywordset.attrib;
->
-<!--end of keywordset.module-->]]>
-
-<!ENTITY % keyword.module "INCLUDE">
-<![ %keyword.module; [
-<!ENTITY % local.keyword.attrib "">
-<!ENTITY % keyword.role.attrib "%role.attrib;">
-<!ELEMENT Keyword - - (#PCDATA)>
-<!ATTLIST Keyword
-                %common.attrib;
-                %keyword.role.attrib;
-                %local.keyword.attrib;
->
-<!--end of keyword.module-->]]>
-<!--end of keywordset.content.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Compound (section-ish) elements ...................................... -->
-
-<!-- Message set ...................... -->
-
-<!ENTITY % msgset.content.module "INCLUDE">
-<![ %msgset.content.module; [
-<!ENTITY % msgset.module "INCLUDE">
-<![ %msgset.module; [
-<!ENTITY % local.msgset.attrib "">
-<!ENTITY % msgset.role.attrib "%role.attrib;">
-<!ELEMENT MsgSet - - (MsgEntry+)>
-<!ATTLIST MsgSet
-                %common.attrib;
->
-<!--end of msgset.module-->]]>
-
-<!ENTITY % msgentry.module "INCLUDE">
-<![ %msgentry.module; [
-<!ENTITY % local.msgentry.attrib "">
-<!ENTITY % msgentry.role.attrib "%role.attrib;">
-<!ELEMENT MsgEntry - O (Msg+, MsgExplan*)>
-<!ATTLIST MsgEntry
-                %common.attrib;
->
-<!--end of msgentry.module-->]]>
-
-<!ENTITY % msg.module "INCLUDE">
-<![ %msg.module; [
-<!ENTITY % local.msg.attrib "">
-<!ENTITY % msg.role.attrib "%role.attrib;">
-<!ELEMENT Msg - O (Title?, MsgMain, (MsgSub)*)>
-<!ATTLIST Msg
-                %common.attrib;
->
-<!--end of msg.module-->]]>
-
-<!ENTITY % msgmain.module "INCLUDE">
-<![ %msgmain.module; [
-<!ENTITY % local.msgmain.attrib "">
-<!ENTITY % msgmain.role.attrib "%role.attrib;">
-<!ELEMENT MsgMain - - (Title?, MsgText)>
-<!ATTLIST MsgMain
-                %common.attrib;
->
-<!--end of msgmain.module-->]]>
-
-<!ENTITY % msgsub.module "INCLUDE">
-<![ %msgsub.module; [
-<!ENTITY % local.msgsub.attrib "">
-<!ENTITY % msgsub.role.attrib "%role.attrib;">
-<!ELEMENT MsgSub - - (MsgText)>
-<!ATTLIST MsgSub
-                %common.attrib;
->
-<!--end of msgsub.module-->]]>
-
-<!ENTITY % msgexplan.module "INCLUDE">
-<![ %msgexplan.module; [
-<!ENTITY % local.msgexplan.attrib "">
-<!ENTITY % msgexplan.role.attrib "%role.attrib;">
-<!ELEMENT MsgExplan - - (Title?, (%component.mix;)+)>
-<!ATTLIST MsgExplan
-                %common.attrib;
-        Role         (Description | Cause | Solution | Example)  #IMPLIED        
->
-<!--end of msgexplan.module-->]]>
-<!--end of msgset.content.module-->]]>
-
-<!-- Procedure ........................ -->
-
-<!ENTITY % procedure.content.module "INCLUDE">
-<![ %procedure.content.module; [
-<!ENTITY % procedure.module "INCLUDE">
-<![ %procedure.module; [
-<!ENTITY % local.procedure.attrib "">
-<!ENTITY % procedure.role.attrib "%role.attrib;">
-<!ELEMENT Procedure - - ((%formalobject.title.content;)?,
-        (%component.mix;)*, Step+)>
-<!ATTLIST Procedure
-                %common.attrib;
-        Role    (SINGLE-STEP)           #IMPLIED
->
-<!--end of procedure.module-->]]>
-
-<!ENTITY % step.module "INCLUDE">
-<![ %step.module; [
-<!ENTITY % local.step.attrib "">
-<!ENTITY % step.role.attrib "%role.attrib;">
-<!ELEMENT Step - O (Title?, (((%component.mix;)+, (SubSteps,
-                (%component.mix;)*)?) | (SubSteps, (%component.mix;)*)))>
-<!ATTLIST Step
-                --Performance: whether step must be performed--
-                Performance        (Optional
-                                |Required)        Required -- not #REQUIRED! --
-                %common.attrib;
->
-<!--end of step.module-->]]>
-
-<!ENTITY % substeps.module "INCLUDE">
-<![ %substeps.module; [
-<!ENTITY % local.substeps.attrib "">
-<!ENTITY % substeps.role.attrib "%role.attrib;">
-<!ELEMENT SubSteps - - (Step+)>
-<!ATTLIST SubSteps
-                --Performance: whether whole set of substeps must be
-                performed--
-                Performance        (Optional
-                                |Required)        Required -- not #REQUIRED! --
-                %common.attrib;
->
-<!--end of substeps.module-->]]>
-<!--end of procedure.content.module-->]]>
-
-<!-- Sidebar .......................... -->
-
-<!-- ...................................................................... -->
-<!-- Paragraph-related elements ........................................... -->
-
-<!ENTITY % abstract.module "INCLUDE">
-<![ %abstract.module; [
-<!ENTITY % local.abstract.attrib "">
-<!ENTITY % abstract.role.attrib "%role.attrib;">
-<!ELEMENT Abstract - - (Title?, (%para.class;)+)>
-<!ATTLIST Abstract
-                %common.attrib;
->
-<!--end of abstract.module-->]]>
-
-
-<!ENTITY % blockquote.module "INCLUDE">
-<![ %blockquote.module; [
-<!ENTITY % local.blockquote.attrib "">
-<!ENTITY % blockquote.role.attrib "%role.attrib;">
-<!ELEMENT BlockQuote - - ((%component.mix;)+)>
-<!ATTLIST BlockQuote
-        %common.attrib;
-        Role    (Alt)  #IMPLIED
->
-<!--end of blockquote.module-->]]>
-
-<!ENTITY % bridgehead.module "INCLUDE">
-<![ %bridgehead.module; [
-<!ENTITY % local.bridgehead.attrib "">
-<!ENTITY % bridgehead.role.attrib "%role.attrib;">
-<!ELEMENT BridgeHead - - ((%title.char.mix;)+)>
-<!ATTLIST BridgeHead
-        %common.attrib;
->
-<!--end of bridgehead.module-->]]>
-
-<!ENTITY % comment.module "INCLUDE">
-<![ %comment.module; [
-<!ENTITY % local.comment.attrib "">
-<!ENTITY % comment.role.attrib "%role.attrib;">
-<!ELEMENT Comment - - ((%para.char.mix;)+) -(%ubiq.mix;)>
-<!ATTLIST Comment
-                %common.attrib;
->
-<!--end of comment.module-->]]>
-
-<!ENTITY % footnote.module "INCLUDE">
-<![ %footnote.module; [
-<!ENTITY % local.footnote.attrib "">
-<!ENTITY % footnote.role.attrib "%role.attrib;">
-<!ELEMENT Footnote - - ((%footnote.mix;)+) -(Footnote|%formal.class;)>
-<!ATTLIST Footnote
-                %common.attrib;
-                %footnote.role.attrib;
->
-<!--end of footnote.module-->]]>
-
-<!ENTITY % highlights.module "INCLUDE">
-<![ %highlights.module; [
-<!ENTITY % local.highlights.attrib "">
-<!ENTITY % highlights.role.attrib "%role.attrib;">
-<!ELEMENT Highlights - - ((%highlights.mix; | (Caution | Note | Tip | Warning))+)
-          -(%ubiq.mix;|%formal.class;)>
-<!ATTLIST Highlights
-                %common.attrib;
->
-<!--end of highlights.module-->]]>
-
-<!ENTITY % para.module "INCLUDE">
-<![ %para.module; [
-<!ENTITY % local.para.attrib "">
-<!ENTITY % para.role.attrib "%role.attrib;">
-<!ELEMENT Para - O ((%para.char.mix; | %para.mix;)+)>
-<!ATTLIST Para
-                %common.attrib;
->
-<!--end of para.module-->]]>
-
-<!ENTITY % admon.module "INCLUDE">
-<![ %admon.module; [
-<!ENTITY % local.admon.attrib "">
-<!ENTITY % admon.role.attrib "%role.attrib;">
-<!ELEMENT (%admon.class;) - - (%admon.mix;)+ -(Caution|Note|Tip|%admon.class;)>
-<!ATTLIST (%admon.class;)
-                %common.attrib;
->
-<!--end of admon.module-->]]>
-
-<!ENTITY % note.module "INCLUDE">
-<![ %note.module; [
-<!ELEMENT Note - - (%admon.mix;)+ -(Note|Tip|Caution|%admon.class;)>
-<!ATTLIST Note
-        %common.attrib;
-        Role        (Note | MarginNote)         Note
->
-<!--end of note.module-->]]>
- 
-<!ENTITY % tip.module "INCLUDE">
-<![ %tip.module; [
-<!ELEMENT Tip - - (BridgeHead | %admon.mix;)+
-                        -(Note|Tip|Caution|%admon.class;)>
-<!ATTLIST Tip
-        %common.attrib;
->
-<!--end of tip.module-->]]>
-
-<!ENTITY % caution.module "INCLUDE">
-<![ %caution.module; [
-<!ELEMENT Caution - - (BridgeHead | %admon.mix;)+
-                        -(Note|Tip|Caution|%admon.class;)>
-<!ATTLIST Caution
-        %common.attrib;
-                Role (Hot | Electrical | Caution) Caution
->
-<!--end of caution.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Lists ................................................................ -->
-
-<!-- GlossList ........................ -->
-
-<!ENTITY % glosslist.module "INCLUDE">
-<![ %glosslist.module; [
-<!ENTITY % local.glosslist.attrib "">
-<!ENTITY % glosslist.role.attrib "%role.attrib;">
-<!ELEMENT GlossList - - (GlossEntry+)>
-<!ATTLIST GlossList
-                %common.attrib;
->
-<!--end of glosslist.module-->]]>
-
-<!ENTITY % glossentry.content.module "INCLUDE">
-<![ %glossentry.content.module; [
-<!ENTITY % glossentry.module "INCLUDE">
-<![ %glossentry.module; [
-<!ENTITY % local.glossentry.attrib "">
-<!ENTITY % glossentry.role.attrib "%role.attrib;">
-<!ELEMENT GlossEntry - O (GlossTerm, Acronym?, (GlossSee|GlossDef+))>
-<!ATTLIST GlossEntry
-                --SortAs: alternate sort string for automatically
-                alphabetized set of glossary entries--
-                SortAs                CDATA                #IMPLIED
-                %common.attrib;
->
-<!--end of glossentry.module-->]]>
-
-<!--ELEMENT GlossTerm (defined in the Inlines section, below)-->
-<!ENTITY % glossdef.module "INCLUDE">
-<![ %glossdef.module; [
-<!ENTITY % local.glossdef.attrib "">
-<!ELEMENT GlossDef - O ((%glossdef.mix;)+, GlossSeeAlso*)>
-<!ATTLIST GlossDef
-                %common.attrib;
-                %local.glossdef.attrib;
->
-<!--end of glossdef.module-->]]>
-
-<!ENTITY % glosssee.module "INCLUDE">
-<![ %glosssee.module; [
-<!ENTITY % local.glosssee.attrib "">
-<!ENTITY % glosssee.role.attrib "%role.attrib;">
-<!ELEMENT GlossSee - O ((%para.char.mix;)+)>
-<!ATTLIST GlossSee
-                --OtherTerm: link to GlossEntry of real term to look up--
-                OtherTerm        IDREF                #CONREF
-                %common.attrib;
->
-<!--end of glosssee.module-->]]>
-
-<!ENTITY % glossseealso.module "INCLUDE">
-<![ %glossseealso.module; [
-<!ENTITY % local.glossseealso.attrib "">
-<!ENTITY % glossseealso.role.attrib "%role.attrib;">
-<!ELEMENT GlossSeeAlso - O ((%para.char.mix;)+)>
-<!ATTLIST GlossSeeAlso
-                --OtherTerm: link to GlossEntry of related term--
-                OtherTerm        IDREF                #CONREF
-                %common.attrib;
->
-<!--end of glossseealso.module-->]]>
-<!--end of glossentry.content.module-->]]>
-
-<!-- ItemizedList and OrderedList ..... -->
-
-<!ENTITY % itemizedlist.module "INCLUDE">
-<![ %itemizedlist.module; [
-<!ENTITY % local.itemizedlist.attrib "">
-<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
-<!ELEMENT ItemizedList - - (ListItem+)>
-<!ATTLIST ItemizedList        
-        %common.attrib;
-        Mark        (Bullet | Dash | Checkbox | Checkmark | None)  Bullet
-        --Spacing: relative desired compactness of list, in author's
-                judgment--
-        Spacing        (Normal | Compact)       #IMPLIED
->
-<!--end of itemizedlist.module-->]]>
-
-<!ENTITY % orderedlist.module "INCLUDE">
-<![ %orderedlist.module; [
-<!ENTITY % local.orderedlist.attrib "">
-<!ENTITY % orderedlist.role.attrib "%role.attrib;">
-<!ELEMENT OrderedList - - (ListItem+)>
-<!ATTLIST OrderedList
-        --Continuation: whether numbers are reset from previous list--
-        Continuation        (Continues | Restarts)         Restarts
-        --Spacing: relative desired compactness of list, in author's  
-                judgment--     
-        Spacing (Normal | Compact)       #IMPLIED
-                %common.attrib;
->
-<!--end of orderedlist.module-->]]>
-
-<!ENTITY % listitem.module "INCLUDE">
-<![ %listitem.module; [
-<!ENTITY % local.listitem.attrib "">
-<!ENTITY % listitem.role.attrib "%role.attrib;">
-<!ELEMENT ListItem - O ((%component.mix;)+) -(Procedure,Bridgehead,Highlights)>
-<!ATTLIST ListItem
-        Override    (Bullet | Dash | Checkbox | Checkmark | None) #IMPLIED
-                %common.attrib;
->
-<!--end of listitem.module-->]]>
-
-<!-- SegmentedList .................... -->
-<!ENTITY % segmentedlist.content.module "INCLUDE">
-<![ %segmentedlist.content.module; [
-<!ENTITY % segmentedlist.module "INCLUDE">
-<![ %segmentedlist.module; [
-<!ENTITY % local.segmentedlist.attrib "">
-<!ENTITY % segmentedlist.role.attrib "%role.attrib;">
-<!ELEMENT SegmentedList - - ((%formalobject.title.content;)?, SegTitle*,
-                SegListItem+)>
-<!ATTLIST SegmentedList
-                %common.attrib;
->
-<!--end of segmentedlist.module-->]]>
-
-<!ENTITY % segtitle.module "INCLUDE">
-<![ %segtitle.module; [
-<!ENTITY % local.segtitle.attrib "">
-<!ENTITY % segtitle.role.attrib "%role.attrib;">
-<!ELEMENT SegTitle - O ((%title.char.mix;)+)>
-<!ATTLIST SegTitle
-                %common.attrib;
->
-<!--end of segtitle.module-->]]>
-
-<!ENTITY % seglistitem.module "INCLUDE">
-<![ %seglistitem.module; [
-<!ENTITY % local.seglistitem.attrib "">
-<!ENTITY % seglistitem.role.attrib "%role.attrib;">
-<!ELEMENT SegListItem - O (Seg, Seg+)>
-<!ATTLIST SegListItem
-                %common.attrib;
->
-<!--end of seglistitem.module-->]]>
-
-<!ENTITY % seg.module "INCLUDE">
-<![ %seg.module; [
-<!ENTITY % local.seg.attrib "">
-<!ENTITY % seg.role.attrib "%role.attrib;">
-<!ELEMENT Seg - O ((%small.para.char.mix;)+)>
-<!ATTLIST Seg
-                %common.attrib;
->
-<!--end of seg.module-->]]>
-<!--end of segmentedlist.content.module-->]]>
-
-<!-- SimpleList ....................... -->
-
-<!ENTITY % simplelist.content.module "INCLUDE">
-<![ %simplelist.content.module; [
-<!ENTITY % simplelist.module "INCLUDE">
-<![ %simplelist.module; [
-<!ENTITY % local.simplelist.attrib "">
-<!ENTITY % simplelist.role.attrib "%role.attrib;">
-<!ELEMENT SimpleList - - (Member+)>
-<!ATTLIST SimpleList
-                --Columns: number of columns--
-                Columns                NUMBER                #IMPLIED
-
-                --Type: Inline: members separated with commas etc. inline
-                        Vert: members top to bottom in n Columns
-                        Horiz: members left to right in n Columns
-                If Column=1 or implied, Vert and Horiz are the same--
-                Type                (Inline
-                                |Vert
-                                |Horiz)                Vert
-                %common.attrib;
->
-<!--end of simplelist.module-->]]>
-
-<!--Changed para.char.mix to small.para.char.mix for Member-->
-<!ENTITY % member.module "INCLUDE">
-<![ %member.module; [
-<!ENTITY % local.member.attrib "">
-<!ENTITY % member.role.attrib "%role.attrib;">
-<!ELEMENT Member - O ((%small.para.char.mix;)+)>
-<!ATTLIST Member
-                %common.attrib;
->
-<!--end of member.module-->]]>
-<!--end of simplelist.content.module-->]]>
-
-<!-- VariableList ..................... -->
-
-<!ENTITY % variablelist.content.module "INCLUDE">
-<![ %variablelist.content.module; [
-<!ENTITY % variablelist.module "INCLUDE">
-<![ %variablelist.module; [
-<!ENTITY % local.variablelist.attrib "">
-<!ENTITY % variablelist.role.attrib "%role.attrib;">
-<!ELEMENT VariableList - - ((%formalobject.title.content;)?, VarListEntry+)>
-<!ATTLIST VariableList
-        --TermLength: approximate length of term content that should 
-        fit onto one line, in same units that table ColWidth accepts--
-        TermLength   (xtranarrow | narrow | medium | wide | xtrawide | wholeline) medium
-        %common.attrib;
->
-<!--end of variablelist.module-->]]>
-
-<!ENTITY % varlistentry.module "INCLUDE">
-<![ %varlistentry.module; [
-<!ENTITY % local.varlistentry.attrib "">
-<!ENTITY % varlistentry.role.attrib "%role.attrib;">
-<!ELEMENT VarListEntry - O (Term+, ListItem)>
-<!ATTLIST VarListEntry
-                %common.attrib;
->
-<!--end of varlistentry.module-->]]>
-
-<!--Changed para.char.mix to small.para.char.list for Term-->
-<!ENTITY % term.module "INCLUDE">
-<![ %term.module; [
-<!ENTITY % local.term.attrib "">
-<!ENTITY % term.role.attrib "%role.attrib;">
-<!ELEMENT Term - O ((%small.para.char.mix;)+)>
-<!ATTLIST Term
-                %common.attrib;
->
-<!--end of term.module-->]]>
-
-<!--ELEMENT ListItem (defined above)-->
-<!--end of variablelist.content.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Objects .............................................................. -->
-
-<!-- Examples etc. .................... -->
-
-<!ENTITY % example.module "INCLUDE">
-<![ %example.module; [
-<!ENTITY % local.example.attrib "">
-<!ENTITY % example.role.attrib "%role.attrib;">
-<!ELEMENT Example - - ((%formalobject.title.content;), (%example.mix;)+)
-                -(%formal.class;)>
-<!ATTLIST Example
-        %label.attrib;
-        --Width: The numbers equal inches--
-        Width         (50|70|100)         #IMPLIED
-        Role        (Example | Code)         Code
-        %common.attrib;
->
-<!--end of example.module-->]]>
-
-<!ENTITY % informalexample.module "INCLUDE">
-<![ %informalexample.module; [
-<!ENTITY % local.informalexample.attrib "">
-<!ENTITY % informalexample.role.attrib "%role.attrib;">
-<!ELEMENT InformalExample - - ((%example.mix;)+)>
-<!ATTLIST InformalExample
-        --Width: The numbers equal inches--
-        Width   (50|70|100)     #IMPLIED
-        %common.attrib;
->
-<!--end of informalexample.module-->]]>
-
-<!ENTITY % programlisting.module "INCLUDE">
-<![ %programlisting.module; [
-<!ENTITY % local.programlisting.attrib "">
-<!ENTITY % programlisting.role.attrib "%role.attrib;">
-<!ELEMENT ProgramListing - - ((%programlisting.content;)+)>
-<!ATTLIST ProgramListing
-        --Width: The numbers equal percentage values --
-        Width   (50|70|100|8050|8070|80100)     #IMPLIED                
-        %linespecific.attrib;
-                %common.attrib;
-        Role        (Complete | Fragment)        Fragment
->
-<!--end of programlisting.module-->]]>
-<!ENTITY % literallayout.module "INCLUDE">
-<![ %literallayout.module; [
-<!ENTITY % local.literallayout.attrib "">
-<!ENTITY % literallayout.role.attrib "%role.attrib;">
-<!ELEMENT LiteralLayout - - ((LineAnnotation | %small.para.char.mix;)+)>
-<!ATTLIST LiteralLayout
-        --Width: The numbers equal inches--
-        Width   (50|70|100)     #IMPLIED                
-        %linespecific.attrib;
-        %common.attrib;
->
-<!--ELEMENT LineAnnotation (defined in the Inlines section, below)-->
-<!--end of literallayout.module-->]]>
-
-<!ENTITY % screen.module "INCLUDE">
-<![ %screen.module; [
-<!ENTITY % local.screen.attrib "">
-<!ENTITY % screen.role.attrib "%role.attrib;">
-<!ELEMENT Screen - - ((%screen.content;)+)>
-<!ATTLIST Screen
-        --Width: The numbers equal percentage values --
-        Width   (50|70|100|8050|8070|80100)     #IMPLIED                
-        %linespecific.attrib;
-        %common.attrib;
->
-<!--end of screen.module-->]]>
-
-<!ENTITY % screenshot.content.module "INCLUDE">
-<![ %screenshot.content.module; [
-<!ENTITY % screenshot.module "INCLUDE">
-<![ %screenshot.module; [
-<!ENTITY % local.screenshot.attrib "">
-<!ENTITY % screenshot.role.attrib "%role.attrib;">
-<!ELEMENT ScreenShot - - (ScreenInfo?, Graphic)>
-<!ATTLIST ScreenShot
-                %common.attrib;
->
-<!--end of screenshot.module-->]]>
-
-<!ENTITY % screeninfo.module "INCLUDE">
-<![ %screeninfo.module; [
-<!ENTITY % local.screeninfo.attrib "">
-<!ENTITY % screeninfo.role.attrib "%role.attrib;">
-<!ELEMENT ScreenInfo - O ((%docinfo.char.mix;)+) -(%ubiq.mix;)>
-<!ATTLIST ScreenInfo
-                %common.attrib;
->
-<!--end of screeninfo.module-->]]>
-<!--end of screenshot.content.module-->]]>
-
-<!-- Figures etc. ..................... -->
-
-<!ENTITY % figure.module "INCLUDE">
-<![ %figure.module; [
-<!ENTITY % local.figure.attrib "">
-<!ENTITY % figure.role.attrib "%role.attrib;">
-<!ELEMENT Figure - - (%formalobject.title.content;, (%figure.mix; |
-                %link.char.class;)+)>
-<!ATTLIST Figure
-                --Float: whether figure can float in output--
-                Float                %yesorno.attvals;        %no.attval;
-                %label.attrib;
-                %common.attrib;
->
-<!--end of figure.module-->]]>
-
-<!-- Graphical data can be the content of Graphic, or you can reference
-     an external file either as an entity (Entitref) or a filename
-     (Fileref). -->
-
-<!ENTITY % graphic.module "INCLUDE">
-<![ %graphic.module; [
-<!ENTITY % local.graphic.attrib "">
-<!ENTITY % graphic.role.attrib "%role.attrib;">
-<!ELEMENT Graphic - - CDATA>
-<!ATTLIST Graphic
-                %graphics.attrib;
-                %common.attrib;
->
-<!--end of graphic.module-->]]>
-
-<!ENTITY % inlinegraphic.module "INCLUDE">
-<![ %inlinegraphic.module; [
-<!ENTITY % local.inlinegraphic.attrib "">
-<!ENTITY % inlinegraphic.role.attrib "%role.attrib;">
-<!ELEMENT InlineGraphic - - CDATA>
-<!ATTLIST InlineGraphic
-                %graphics.attrib;
-                %common.attrib;
->
-<!--end of inlinegraphic.module-->]]>
-
-<!-- Equations ........................ -->
-
-<!ENTITY % equation.content "(Graphic+)">
-
-<!ENTITY % equation.module "INCLUDE">
-<![ %equation.module; [
-<!ENTITY % local.equation.attrib "">
-<!ENTITY % equation.role.attrib "%role.attrib;">
-<!ELEMENT Equation - - ((%formalobject.title.content;)?, (InformalEquation |
-                (Alt?, %equation.content;)))>
-<!ATTLIST Equation
-                %label.attrib;
-                 %common.attrib;
->
-<!--end of equation.module-->]]>
-
-<!ENTITY % informalequation.module "INCLUDE">
-<![ %informalequation.module; [
-<!ENTITY % local.informalequation.attrib "">
-<!ENTITY % informalequation.role.attrib "%role.attrib;">
-<!ELEMENT InformalEquation - - ((Graphic)+)>
-<!ATTLIST InformalEquation
-                %common.attrib;
->
-<!--end of informalequation.module-->]]>
-
-<!ENTITY % alt.module "INCLUDE">
-<![ %alt.module; [
-<!ENTITY % local.alt.attrib "">
-<!ENTITY % alt.role.attrib "%role.attrib;">
-<!ELEMENT Alt - - (#PCDATA)>
-<!ATTLIST Alt
-                %common.attrib;
-                %alt.role.attrib;
-                %local.alt.attrib;
->
-<!--end of alt.module-->]]>
-
-<!ENTITY % inlineequation.module "INCLUDE">
-<![ %inlineequation.module; [
-<!ENTITY % local.inlineequation.attrib "">
-<!ENTITY % inlineequation.role.attrib "%role.attrib;">
-<!ELEMENT InlineEquation - - ((Graphic)+)>
-<!ATTLIST InlineEquation
-                %common.attrib;
->
-<!--end of inlineequation.module-->]]>
-
-<!-- Tables ........................... -->
-
-<!ENTITY % table.module "INCLUDE">
-<![ %table.module; [
-
-<!ENTITY % tables.role.attrib "%role.attrib;">
-
-<!-- Add Label attribute to Table element (and InformalTable element). -->
-<!ENTITY % bodyatt "%label.attrib;">
-
-<!-- Add common attributes to Table, TGroup, TBody, THead, TFoot, Row, 
-     EntryTbl, and Entry (and InformalTable element). -->
-<!ENTITY % secur
-        "%common.attrib; ">
-
-<!-- Remove Chart. -->
-<!ENTITY % tbl.table.name "Table">
-
-<!-- Content model for Table. -->
-<!ENTITY % tbl.table.mdl
-        "((%formalobject.title.content;), (Graphic+|TGroup+))">
-
-<!-- Exclude all DocBook tables and formal objects. -->
-<!ENTITY % tbl.table.excep "-(InformalTable|%formal.class;)">
-
-<!-- Remove pgbrk exception on Row. -->
-<!ENTITY % tbl.row.excep "">
-
-<!-- Allow either objects or inlines; beware of REs between elements. -->
-<!ENTITY % tbl.entry.mdl "((%tabentry.mix;)+ | (%para.char.mix;)+)">
-
-<!-- Remove pgbrk exception on Entry. -->
-<!ENTITY % tbl.entry.excep "">
-
-<!-- Remove pgbrk exception on EntryTbl. -->
-<!ENTITY % tbl.entrytbl.excep "">
-
-<!-- Reference CALS table module. -->
-<!ENTITY % calstbls PUBLIC "-//USA-DOD//DTD Table Model 951010//EN">
-<!-- CALS TABLE MODEL DECLARATION MODULE -->
-
-<!-- This set of declarations defines the CALS Table Model as of the
-     date shown in the Formal Public Identifier (FPI) for this entity.
-
-     This set of declarations may be referred to using a public external
-     entity declaration and reference as shown in the following two lines:
-
-<!ENTITY % calstbls PUBLIC "-//USA-DOD//DTD Table Model 951010//EN">
-%calstbls;
-
-     If various parameter entities used within this set of declarations
-     are to be given non-default values, the appropriate declarations
-     should be given before calling in this package (i.e., before the
-     "%calstbls;" reference).
-
-     NOTE:  This set of declarations assumes a NAMELEN of 32 as is used in
-     the standard CALS defined SGML declaration.
--->
-
-<!-- This entity includes a set of element and attribute declarations
-     that partially defines the CALS table model.  However, the model
-     is not well-defined without the accompanying natural language
-     description of the semantics (meanings) of these various elements,
-     attributes, and attribute values.  The semantic writeup, available
-     as a separate entity, should be used in conjunction with this entity.
--->
-
-<!-- In order to use the CALS table model, various parameter entity
-     declarations are required.  A brief description is as follows:
-
-     ENTITY NAME      WHERE USED              WHAT IT IS
-
-     %bodyatt         In ATTLIST of:          Additional (non-table related)
-                      table element(s)        attributes on the overall
-                                              (wrapper) table element(s)
-
-     %secur           In ATTLIST of:          Additional (non-table related)
-                      table element(s)        attributes on all the listed
-                      <tgroup>                elements
-                      <tbody>
-                      table head and foot element(s)
-                      <row>
-                      <entrytbl>
-                      <entry>
-
-     %yesorno         In ATTLIST of:          An attribute declared value
-                      almost all elements     for a "boolean" attribute
-
-     %titles          In content model of:    The "title" part of the model
-                      table element(s)        group for the table element(s)
-
-     %paracon         In content model of:    The "text" (data content) part
-                      <entry>                 of the model group for <entry>
-
-     %tbl.table.name  In declaration of:      The name(s) of the "table"
-                      table element(s)        element(s)
-
-     %tbl.table-titles.mdl In content model of: The model group for the title
-                      table elements(s)       part of the content model for 
-                                              table element(s)
-
-     %tbl.table-main.mdl In content model of: The model group for the main part
-                      table elements(s)       (not including titles) of the
-                                              content model for table element(s)
-
-     %tbl.table.mdl   In content model of:    The model group for the content
-                      table elements(s)       model for table element(s),
-                                              often (and by default) defined
-                                              in terms of %tbl.table-titles.mdl
-                                              and %tbl.table-main.mdl
-
-     %tbl.table.excep In content model of:    The exceptions for the content
-                      table element(s)        model for table element(s)
-
-     %tbl.table.att   In ATTLIST of:          Additional attributes on the
-                      table element(s)        table element(s)
-
-     %tbl.tgroup.mdl  In content model of:    The model group for the content
-                      <tgroup>                model for <tgroup>
-
-     %tbl.tgroup.att  In ATTLIST of:          Additional attributes on the
-                      <tgroup>                <tgroup> and <entrytbl> elements
-                      <entrytbl>
-
-     %tbl.hdft.name   In declaration of:      The name(s) of the table
-                      head/foot element(s)    head and foot element(s)
-
-     %tbl.hdft.mdl    In content model of:    The model group for the content
-                      head/foot element(s)    model for head/foot element(s)
-
-     %tbl.hdft.excep  In content model of:    The exceptions for the content
-                      head/foot element(s)    model for head/foot element(s)
-
-     %tbl.row.mdl     In content model of:    The model group for the content
-                      <row>                   model for <row>
-
-     %tbl.row.excep   In content model of:    The exceptions for the content
-                      <row>                   model for <row>
-
-     %tbl.entrytbl.mdl In content model of:   The model group for the content
-                      <entrytbl>              model for <entrytbl>
-
-     %tbl.entrytbl.excep In content model of: The exceptions for the content
-                      <entrytbl>              model for <entrytbl>
-
-     %tbl.entry.mdl   In content model of:    The model group for the content
-                      <entry>                 model for <entry>
-
-     %tbl.entry.excep In content model of:    The exceptions for the content
-                      <entry>                 model for <entry>
-
-     If any of these parameter entities are not declared before this set of
-     declarations is referenced, this set of declarations will make the
-     following default definitions for all of these have parameter entities.
--->
-
-<!-- These definitions are not directly related to the table model, but are 
-     used in the default CALS table model and are usually defined elsewhere 
-     (and prior to the inclusion of this table module) in a CALS DTD. -->
-
-<!ENTITY % bodyatt "">
-<!ENTITY % secur "">
-<!ENTITY % yesorno 'NUMBER'  -- no if zero(s),
-                                yes if any other digits value -->
-<!ENTITY % titles  'title?'>
-<!ENTITY % paracon '#PCDATA' -- default for use in entry content -->
-
-<!--
-The parameter entities as defined below provide the CALS table model
-as published (as part of the Example DTD) in MIL-HDBK-28001.
-
-These following declarations provide the CALS-compliant default definitions
-for these entities.  However, these entities can and should be redefined
-(by giving the appropriate parameter entity declaration(s) prior to the
-reference to this Table Model declaration set entity) to fit the needs
-of the current application.
--->
-
-<!ENTITY % tbl.table.name       "(table|chart)">
-<!ENTITY % tbl.table-titles.mdl "%titles,">
-<!ENTITY % tbl.table-main.mdl   "(tgroup+|graphic+)">
-<!ENTITY % tbl.table.mdl        "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
-<!ENTITY % tbl.table.excep      "-(table|chart|figure)">
-<!ENTITY % tbl.table.att        '
-    tabstyle    NMTOKEN         #IMPLIED
-    tocentry    %yesorno;       #IMPLIED
-    shortentry  %yesorno;       #IMPLIED
-    orient      (port|land)     #IMPLIED
-    pgwide      %yesorno;       #IMPLIED '>
-<!ENTITY % tbl.tgroup.mdl       "colspec*,spanspec*,thead?,tfoot?,tbody">
-<!ENTITY % tbl.tgroup.att       '
-    tgroupstyle NMTOKEN         #IMPLIED '>
-<!ENTITY % tbl.hdft.name        "(thead|tfoot)">
-<!ENTITY % tbl.hdft.mdl         "colspec*,row+">
-<!ENTITY % tbl.hdft.excep       "-(entrytbl)">
-<!ENTITY % tbl.row.mdl          "(entry|entrytbl)+">
-<!ENTITY % tbl.row.excep        "-(pgbrk)">
-<!ENTITY % tbl.entrytbl.mdl     "colspec*,spanspec*,thead?,tbody">
-<!ENTITY % tbl.entrytbl.excep   "-(entrytbl|pgbrk)">
-<!ENTITY % tbl.entry.mdl        "(para|warning|caution|note|legend|%paracon;)*">
-<!ENTITY % tbl.entry.excep      "-(pgbrk)">
-
-<!-- =====  Element and attribute declarations follow. =====  -->
-
-<!--
-     Default declarations previously defined in this entity and
-     referenced below include:
-     ENTITY % tbl.table.name       "(table|chart)"
-     ENTITY % tbl.table-titles.mdl "%titles,"
-     ENTITY % tbl.table-main.mdl   "(tgroup+|graphic+)"
-     ENTITY % tbl.table.mdl        "%tbl.table-titles; %tbl.table-main.mdl;"
-     ENTITY % tbl.table.excep      "-(table|chart|figure)"
-     ENTITY % tbl.table.att        '
-                        tabstyle        NMTOKEN         #IMPLIED
-                        tocentry        %yesorno;       #IMPLIED
-                        shortentry      %yesorno;       #IMPLIED
-                        orient          (port|land)     #IMPLIED
-                        pgwide          %yesorno;       #IMPLIED '
--->
-
-<!ELEMENT %tbl.table.name; - - (%tbl.table.mdl;) %tbl.table.excep; >
-
-<!ATTLIST table
-        frame           (top|bottom|topbot|all|sides|none)      #IMPLIED
-        colsep          %yesorno;                               #IMPLIED
-        rowsep          %yesorno;                               #IMPLIED
-        %tbl.table.att;
-        %bodyatt;
-        %secur;
->
-
-<!--
-     Default declarations previously defined in this entity and
-     referenced below include:
-     ENTITY % tbl.tgroup.mdl    "colspec*,spanspec*,thead?,tfoot?,tbody"
-     ENTITY % tbl.tgroup.att    '
-                        tgroupstyle     NMTOKEN         #IMPLIED '
--->
-
-<!ELEMENT tgroup - O (%tbl.tgroup.mdl;) >
-
-<!ATTLIST tgroup
-        cols            NUMBER                                  #REQUIRED
-        %tbl.tgroup.att;
-        colsep          %yesorno;                               #IMPLIED
-        rowsep          %yesorno;                               #IMPLIED
-        align           (left|right|center|justify|char)        #IMPLIED
-        char            CDATA                                   #IMPLIED
-        charoff         NUTOKEN                                 #IMPLIED
-        %secur;
->
-
-<!ELEMENT colspec - O EMPTY >
-
-<!ATTLIST colspec
-        colnum          NUMBER                                  #IMPLIED
-        colname         NMTOKEN                                 #IMPLIED
-        colwidth        CDATA                                   #IMPLIED
-        colsep          %yesorno;                               #IMPLIED
-        rowsep          %yesorno;                               #IMPLIED
-        align           (left|right|center|justify|char)        #IMPLIED
-        char            CDATA                                   #IMPLIED
-        charoff         NUTOKEN                                 #IMPLIED
->
-
-<!ELEMENT spanspec - O EMPTY >
-
-<!ATTLIST spanspec
-        namest          NMTOKEN                                 #REQUIRED
-        nameend         NMTOKEN                                 #REQUIRED
-        spanname        NMTOKEN                                 #REQUIRED
-        colsep          %yesorno;                               #IMPLIED
-        rowsep          %yesorno;                               #IMPLIED
-        align           (left|right|center|justify|char)        #IMPLIED
-        char            CDATA                                   #IMPLIED
-        charoff         NUTOKEN                                 #IMPLIED
->
-
-
-<!--
-     Default declarations previously defined in this entity and
-     referenced below include:
-     ENTITY % tbl.hdft.name     "(thead|tfoot)"
-     ENTITY % tbl.hdft.mdl      "colspec*,row+"
-     ENTITY % tbl.hdft.excep    "-(entrytbl)"
--->
-
-<!ELEMENT %tbl.hdft.name; - O (%tbl.hdft.mdl;)  %tbl.hdft.excep;>
-
-<!ATTLIST %tbl.hdft.name;
-        valign          (top|middle|bottom)                     #IMPLIED
-        %secur;
->
-
-
-<!ELEMENT tbody - O (row+)>
-
-<!ATTLIST tbody
-        valign          (top|middle|bottom)                     #IMPLIED
-        %secur;
->
-
-<!--
-     Default declarations previously defined in this entity and
-     referenced below include:
-     ENTITY % tbl.row.mdl       "(entry|entrytbl)+"
-     ENTITY % tbl.row.excep     "-(pgbrk)"
--->
-
-<!ELEMENT row - O (%tbl.row.mdl;) %tbl.row.excep;>
-
-<!ATTLIST row
-        rowsep          %yesorno;                               #IMPLIED
-        valign          (top|middle|bottom)                     #IMPLIED
-        %secur;
->
-
-<!--
-     Default declarations previously defined in this entity and
-     referenced below include:
-     ENTITY % tbl.entrytbl.mdl  "colspec*,spanspec*,thead?,tbody"
-     ENTITY % tbl.entrytbl.excep "-(entrytbl|pgbrk)"
-     ENTITY % tbl.tgroup.att    '
-                        tgroupstyle     NMTOKEN         #IMPLIED '
--->
-
-<!ELEMENT entrytbl - - (%tbl.entrytbl.mdl) %tbl.entrytbl.excep; >
-
-<!ATTLIST entrytbl
-        cols            NUMBER                                  #REQUIRED
-        %tbl.tgroup.att;
-        colname         NMTOKEN                                 #IMPLIED
-        spanname        NMTOKEN                                 #IMPLIED
-        namest          NMTOKEN                                 #IMPLIED
-        nameend         NMTOKEN                                 #IMPLIED
-        colsep          %yesorno;                               #IMPLIED
-        rowsep          %yesorno;                               #IMPLIED
-        align           (left|right|center|justify|char)        #IMPLIED
-        char            CDATA                                   #IMPLIED
-        charoff         NUTOKEN                                 #IMPLIED
-        %secur;
->
-
-
-<!--
-     Default declarations previously defined in this entity and
-     referenced below include:
-     ENTITY % paracon           "#PCDATA"
-     ENTITY % tbl.entry.mdl     "(para|warning|caution|note|legend|%paracon;)*"
-     ENTITY % tbl.entry.excep   "-(pgbrk)"
--->
-
-<!ELEMENT entry - O (%tbl.entry.mdl;) %tbl.entry.excep; >
-
-<!ATTLIST entry
-        colname         NMTOKEN                                 #IMPLIED
-        namest          NMTOKEN                                 #IMPLIED
-        nameend         NMTOKEN                                 #IMPLIED
-        spanname        NMTOKEN                                 #IMPLIED
-        morerows        NUMBER                                  #IMPLIED
-        colsep          %yesorno;                               #IMPLIED
-        rowsep          %yesorno;                               #IMPLIED
-        align           (left|right|center|justify|char)        #IMPLIED
-        char            CDATA                                   #IMPLIED
-        charoff         NUTOKEN                                 #IMPLIED
-        rotate          %yesorno;                               #IMPLIED
-        valign          (top|middle|bottom)                     #IMPLIED
-        %secur;
->
-
-
-<!--end of table.module-->]]>
-
-<!ENTITY % informaltable.module "INCLUDE">
-<![ %informaltable.module; [
-
-<!-- Note that InformalTable is dependent on some of the entity
-     declarations that customize Table. -->
-
-<!ENTITY % local.informaltable.attrib "">
-<!ELEMENT InformalTable - - (Graphic+|TGroup+) %tbl.table.excep;>
-<!ATTLIST InformalTable
-                -- Frame, Colsep, and Rowsep must be repeated because
-                they are not in entities in the table module. --
-                Frame                (Top
-                                |Bottom
-                                |Topbot
-                                |All
-                                |Sides
-                                |None)                        #IMPLIED
-                Colsep                %yesorno.attvals;        #IMPLIED
-                Rowsep                %yesorno.attvals;        #IMPLIED
-                -- tbl.table.att includes TabStyle, ToCentry, ShortEntry, 
-                Orient, and PgWide. --
-                %tbl.table.att;
-                -- bodyatt includes Label. --
-                %bodyatt;
-                -- secur includes common attributes. --
-                %secur;
-                %local.informaltable.attrib;
->
-<!--end of informaltable.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Synopses ............................................................. -->
-
-<!-- Synopsis ......................... -->
-
-<!ENTITY % synopsis.module "INCLUDE">
-<![ %synopsis.module; [
-<!ENTITY % local.synopsis.attrib "">
-<!ENTITY % synopsis.role.attrib "%role.attrib;">
-<!ELEMENT Synopsis - - ((LineAnnotation | %small.para.char.mix; | Graphic)+)>
-<!ATTLIST Synopsis
-                %linespecific.attrib;
-                %common.attrib;
---        Role    (Solaris | XPG4 | POSIX)        #IMPLIED --
--- temporarily removed from Synopsis till OS/Role conflict resolved 1/25/96 --
-                %local.synopsis.attrib;
->
-
-<!--ELEMENT LineAnnotation (defined in the Inlines section, below)-->
-<!--end of synopsis.module-->]]>
-
-<!-- CmdSynopsis ...................... -->
-
-<!ENTITY % cmdsynopsis.content.module "INCLUDE">
-<![ %cmdsynopsis.content.module; [
-<!ENTITY % cmdsynopsis.module "INCLUDE">
-<![ %cmdsynopsis.module; [
-<!ENTITY % local.cmdsynopsis.attrib "">
-<!ENTITY % cmdsynopsis.role.attrib "%role.attrib;">
-<!ELEMENT CmdSynopsis - - ((Command | Arg | Group)+, SynopFragment*)>
-<!ATTLIST CmdSynopsis
-        %common.attrib;
---        Role        (Solaris | XPG4 | POSIX)        #IMPLIED --        
-        -- THE ABOVE LIST OF PRODUCT NAMES WILL GROW --
->
-<!--end of cmdsynopsis.module-->]]>
-
-<!ENTITY % arg.module "INCLUDE">
-<![ %arg.module; [
-<!ENTITY % local.arg.attrib "">
-<!ENTITY % arg.role.attrib "%role.attrib;">
-<!ELEMENT Arg - - ((#PCDATA 
-                | Arg 
-                | Group 
-                | Option 
-                | SynopFragmentRef 
-                | Replaceable)+)>
- <!ATTLIST Arg
-                --Choice: whether Arg must be supplied:
-                        Opt: optional to supply (e.g. [arg])
-                        Req: required to supply (e.g. {arg})
-                        Plain: required to supply (e.g. arg)--
-                Choice                (Opt
-                                |Req
-                                |Plain)                Opt
-
-                --Rep: whether Arg is repeatable:
-                        Norepeat: no (e.g. arg without ellipsis)
-                        Repeat: yes (e.g. arg...)--
-                Rep                (Norepeat
-                                |Repeat)        Norepeat
-                %common.attrib;
-                Role (Startline) #IMPLIED
->
-<!--end of arg.module-->]]>
-
-<!ENTITY % group.module "INCLUDE">
-<![ %group.module; [
-<!ENTITY % local.group.attrib "">
-<!ENTITY % group.role.attrib "%role.attrib;">
-<!ELEMENT Group - - ((Arg | Group | Option | SynopFragmentRef 
-                | Replaceable)+)>
-<!ATTLIST Group
-                -- Choice: whether Group must be supplied:
-                        Opt: optional to supply (e.g. [g1|g2|g3])
-                        Req: required to supply (e.g. {g1|g2|g3})
-                        Plain: required to supply (e.g. g1|g2|g3) --
-                Choice                (Opt
-                                |Req
-                                |Plain)         Opt
-
-                -- Rep: whether Group is repeatable:
-                        Norepeat: no (e.g. group without ellipsis)
-                        Repeat: yes (e.g. group...) --
-                Rep                (Norepeat
-                                |Repeat)        Norepeat
-                %common.attrib;
->
-<!--end of group.module-->]]>
-
-<!ENTITY % synopfragmentref.module "INCLUDE">
-<![ %synopfragmentref.module; [
-<!ENTITY % local.synopfragmentref.attrib "">
-<!ENTITY % synopfragmentref.role.attrib "%role.attrib;">
-<!ELEMENT SynopFragmentRef - - RCDATA >
-<!ATTLIST SynopFragmentRef
-                %linkendreq.attrib; --to SynopFragment of complex synopsis
-                material for separate referencing--
-                %common.attrib;
->
-<!--end of synopfragmentref.module-->]]>
-
-<!ENTITY % synopfragment.module "INCLUDE">
-<![ %synopfragment.module; [
-<!ENTITY % local.synopfragment.attrib "">
-<!ENTITY % synopfragment.role.attrib "%role.attrib;">
-<!ELEMENT SynopFragment - - ((Arg | Group)+)>
-<!ATTLIST SynopFragment
-                %idreq.common.attrib;
-                %synopfragment.role.attrib;
->
-<!--end of synopfragment.module-->]]>
-
-<!--ELEMENT Command (defined in the Inlines section, below)-->
-<!--ELEMENT Option (defined in the Inlines section, below)-->
-<!--ELEMENT Replaceable (defined in the Inlines section, below)-->
-<!--end of cmdsynopsis.content.module-->]]>
-
-<!-- FuncSynopsis ..................... -->
-
-<!ENTITY % funcsynopsis.content.module "INCLUDE">
-<![ %funcsynopsis.content.module; [
-<!ENTITY % funcsynopsis.module "INCLUDE">
-<![ %funcsynopsis.module; [
-
-<!ENTITY % local.funcsynopsis.attrib "">
-<!ENTITY % funcsynopsis.role.attrib "%role.attrib;">
-<!ELEMENT FuncSynopsis - - (FuncSynopsisInfo?, (FuncPrototype+ |
-                (FuncDef, (Void | VarArgs | ParamDef+))+), FuncSynopsisInfo?)>
-<!ATTLIST FuncSynopsis
-                %common.attrib;
---        Role        (Solaris | XPG4 | POSIX)         #IMPLIED        --
->
-<!--end of funcsynopsis.module-->]]>
-
-<!ENTITY % funcsynopsisinfo.module "INCLUDE">
-<![ %funcsynopsisinfo.module; [
-<!ENTITY % local.funcsynopsisinfo.attrib "">
-<!ENTITY % funcsynopsisinfo.role.attrib "%role.attrib;">
-<!ELEMENT FuncSynopsisInfo - O ((LineAnnotation | %cptr.char.mix;)* )>
-<!ATTLIST FuncSynopsisInfo
-                %linespecific.attrib;
-                %common.attrib;
->
-<!--end of funcsynopsisinfo.module-->]]>
-
-<!ENTITY % funcprototype.module "INCLUDE">
-<![ %funcprototype.module; [
-<!ENTITY % local.funcprototype.attrib "">
-<!ENTITY % funcprototype.role.attrib "%role.attrib;">
-<!ELEMENT FuncPrototype - O (FuncDef, (Void | VarArgs | ParamDef+))>
-<!ATTLIST FuncPrototype
-                %common.attrib;
->
-<!--end of funcprototype.module-->]]>
-
-<!ENTITY % funcdef.module "INCLUDE">
-<![ %funcdef.module; [
-<!ENTITY % local.funcdef.attrib "">
-<!ENTITY % funcdef.role.attrib "%role.attrib;">
-<!ELEMENT FuncDef - - ((#PCDATA 
-                | Replaceable 
-                | Function)*)>
-<!ATTLIST FuncDef
-                %common.attrib;
->
-<!--end of funcdef.module-->]]>
-
-<!ENTITY % void.module "INCLUDE">
-<![ %void.module; [
-<!ENTITY % local.void.attrib "">
-<!ENTITY % void.role.attrib "%role.attrib;">
-<!ELEMENT Void - O EMPTY>
-<!ATTLIST Void
-                %common.attrib;
->
-<!--end of void.module-->]]>
-
-<!ENTITY % varargs.module "INCLUDE">
-<![ %varargs.module; [
-<!ENTITY % local.varargs.attrib "">
-<!ENTITY % varargs.role.attrib "%role.attrib;">
-<!ELEMENT VarArgs - O EMPTY>
-<!ATTLIST VarArgs
-                %common.attrib;
->
-<!--end of varargs.module-->]]>
-
-<!-- Processing assumes that only one Parameter will appear in a
-     ParamDef, and that FuncParams will be used at most once, for
-     providing information on the "inner parameters" for parameters that
-     are pointers to functions. -->
-
-<!ENTITY % paramdef.module "INCLUDE">
-<![ %paramdef.module; [
-<!ENTITY % local.paramdef.attrib "">
-<!ENTITY % paramdef.role.attrib "%role.attrib;">
-<!ELEMENT ParamDef - - ((#PCDATA 
-                | Replaceable 
-                | Parameter 
-                | FuncParams)*)>
-<!ATTLIST ParamDef
-                %common.attrib;
->
-<!--end of paramdef.module-->]]>
-
-<!ENTITY % funcparams.module "INCLUDE">
-<![ %funcparams.module; [
-<!ENTITY % local.funcparams.attrib "">
-<!ENTITY % funcparams.role.attrib "%role.attrib;">
-<!ELEMENT FuncParams - - ((%cptr.char.mix;)*)>
-<!ATTLIST FuncParams
-                %common.attrib;
->
-<!--end of funcparams.module-->]]>
-
-<!--ELEMENT LineAnnotation (defined in the Inlines section, below)-->
-<!--ELEMENT Replaceable (defined in the Inlines section, below)-->
-<!--ELEMENT Function (defined in the Inlines section, below)-->
-<!--ELEMENT Parameter (defined in the Inlines section, below)-->
-<!--end of funcsynopsis.content.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Document information entities and elements ........................... -->
-
-<!-- The document information elements include some elements that are
-     currently used only in the document hierarchy module. They are
-     defined here so that they will be available for use in customized
-     document hierarchies. -->
-
-<!-- .................................. -->
-
-<!ENTITY % docinfo.content.module "INCLUDE">
-<![ %docinfo.content.module; [
-
-<!-- Address .......................... -->
-
-<!ENTITY % address.content.module "INCLUDE">
-<![ %address.content.module; [
-<!ENTITY % address.module "INCLUDE">
-<![ %address.module; [
-<!ENTITY % local.address.attrib "">
-<!ENTITY % address.role.attrib "%role.attrib;">
-<!ELEMENT Address - - (Street|POB|Postcode|City|State|Country|Phone
-                |Fax|Email|OtherAddr)*>
-<!ATTLIST Address
-                %common.attrib;
->
-<!--end of address.module-->]]>
-
-  <!ENTITY % street.module "INCLUDE">
-  <![ %street.module; [
- <!ENTITY % local.street.attrib "">
-  <!ENTITY % street.role.attrib "%role.attrib;">
-  <!ELEMENT Street - - ((%docinfo.char.mix;)+)>
-  <!ATTLIST Street
-                %common.attrib;
->
-  <!--end of street.module-->]]>
-
-  <!ENTITY % pob.module "INCLUDE">
-  <![ %pob.module; [
-  <!ENTITY % local.pob.attrib "">
-  <!ENTITY % pob.role.attrib "%role.attrib;">
-  <!ELEMENT POB - - ((%docinfo.char.mix;)+)>
-  <!ATTLIST POB
-                %common.attrib;
->
-  <!--end of pob.module-->]]>
-
-  <!ENTITY % postcode.module "INCLUDE">
-  <![ %postcode.module; [
-  <!ENTITY % local.postcode.attrib "">
-  <!ENTITY % postcode.role.attrib "%role.attrib;">
-  <!ELEMENT Postcode - - ((%docinfo.char.mix;)+)>
-  <!ATTLIST Postcode
-                %common.attrib;
->
-  <!--end of postcode.module-->]]>
-
-  <!ENTITY % city.module "INCLUDE">
-  <![ %city.module; [
-  <!ENTITY % local.city.attrib "">
-  <!ENTITY % city.role.attrib "%role.attrib;">
-  <!ELEMENT City - - ((%docinfo.char.mix;)+)>
-  <!ATTLIST City
-                %common.attrib;
->
-  <!--end of city.module-->]]>
-
-  <!ENTITY % state.module "INCLUDE">
-  <![ %state.module; [
-  <!ENTITY % local.state.attrib "">
-  <!ENTITY % state.role.attrib "%role.attrib;">
-  <!ELEMENT State - - ((%docinfo.char.mix;)+)>
-  <!ATTLIST State
-                %common.attrib;
->
-  <!--end of state.module-->]]>
-
-  <!ENTITY % country.module "INCLUDE">
-  <![ %country.module; [
-  <!ENTITY % local.country.attrib "">
-  <!ENTITY % country.role.attrib "%role.attrib;">
-  <!ELEMENT Country - - ((%docinfo.char.mix;)+)>
-  <!ATTLIST Country
-                %common.attrib;
->
-  <!--end of country.module-->]]>
-
-  <!ENTITY % phone.module "INCLUDE">
-  <![ %phone.module; [
-  <!ENTITY % local.phone.attrib "">
-  <!ENTITY % phone.role.attrib "%role.attrib;">
-  <!ELEMENT Phone - - ((%docinfo.char.mix;)+)>
-  <!ATTLIST Phone
-                %common.attrib;
->
-  <!--end of phone.module-->]]>
-
-  <!ENTITY % fax.module "INCLUDE">
-  <![ %fax.module; [
-  <!ENTITY % local.fax.attrib "">
-  <!ENTITY % fax.role.attrib "%role.attrib;">
-  <!ELEMENT Fax - - ((%docinfo.char.mix;)+)>
-  <!ATTLIST Fax
-                %common.attrib;
->
-  <!--end of fax.module-->]]>
-
-  <!--ELEMENT Email (defined in the Inlines section, below)-->
-
-  <!ENTITY % otheraddr.module "INCLUDE">
-  <![ %otheraddr.module; [
-  <!ENTITY % local.otheraddr.attrib "">
-  <!ENTITY % otheraddr.role.attrib "%role.attrib;">
-  <!ELEMENT OtherAddr - - ((%docinfo.char.mix;)+)>
-  <!ATTLIST OtherAddr
-                %common.attrib;
->
-  <!--end of otheraddr.module-->]]>
-<!--end of address.content.module-->]]>
-
-<!-- Affiliation ...................... -->
-
-<!ENTITY % affiliation.content.module "INCLUDE">
-<![ %affiliation.content.module; [
-<!ENTITY % affiliation.module "INCLUDE">
-<![ %affiliation.module; [
-<!ENTITY % local.affiliation.attrib "">
-<!ENTITY % affilication.role.attrib "%role.attrib;">
-<!ELEMENT Affiliation - - (ShortAffil?, JobTitle*, OrgName?, OrgDiv*,
-                Address*)>
-<!ATTLIST Affiliation 
-                %common.attrib;  
->
-<!--end of affiliation.module-->]]>
-
-<!ENTITY % shortaffil.module "INCLUDE">
-<![ %shortaffil.module; [
-<!ENTITY % local.shortaffil.attrib "">
-<!ENTITY % shortaffil.role.attrib "%role.attrib;">
-<!ELEMENT ShortAffil - - ((%docinfo.char.mix;)+)>
-<!ATTLIST ShortAffil
-                %common.attrib;
->
-<!--end of shortaffil.module-->]]>
-
-<!ENTITY % jobtitle.module "INCLUDE">
-<![ %jobtitle.module; [
-<!ENTITY % local.jobtitle.attrib "">
-<!ENTITY % jobtitle.role.attrib "%role.attrib;">
-<!ELEMENT JobTitle - - ((%docinfo.char.mix;)+)>
-<!--end of jobtitle.module-->]]>
-
-<!--ELEMENT OrgName (defined elsewhere in this section)-->
-
-<!ENTITY % orgdiv.module "INCLUDE">
-<![ %orgdiv.module; [
-<!ENTITY % local.orgdiv.attrib "">
-<!ELEMENT OrgDiv - - ((%docinfo.char.mix;)+)>
-<!ATTLIST OrgDiv
-                %common.attrib;
-                %local.orgdiv.attrib;
->
-  <!--end of orgdiv.module-->]]>
-
-  <!--ELEMENT Address (defined elsewhere in this section)-->
-<!--end of affiliation.content.module-->]]>
-
-<!-- ArtPageNums ...................... -->
-
-<!-- Author ........................... -->
-
-<!ENTITY % author.module "INCLUDE">
-<![ %author.module; [
-<!ENTITY % local.author.attrib "">
-<!ENTITY % author.role.attrib "%role.attrib;">
-<!ELEMENT Author - - ((%person.ident.mix;)+)>
-<!--(see "Personal identity elements" for %person.ident.mix;)-->
-<!ATTLIST Author 
-                %common.attrib;   
->
-<!--end of author.module-->]]>
-<!-- AuthorGroup ...................... -->
-
-<!ENTITY % authorgroup.content.module "INCLUDE">
-<![ %authorgroup.content.module; [
-<!ENTITY % authorgroup.module "INCLUDE">
-<![ %authorgroup.module; [
-<!ENTITY % local.authorgroup.attrib "">
-<!ENTITY % authorgroup.role.attrib "%role.attrib;">
-<!ELEMENT AuthorGroup - - ((Author|Editor|Collab)+)>
-<!ATTLIST AuthorGroup
-                %common.attrib;
->
-<!--end of authorgroup.module-->]]>
-
-  <!--ELEMENT Author (defined elsewhere in this section)-->
-  <!--ELEMENT Editor (defined elsewhere in this section)-->
-
-  <!ENTITY % collab.content.module "INCLUDE">
-  <![ %collab.content.module; [
-  <!ENTITY % collab.module "INCLUDE">
-  <![ %collab.module; [
-  <!ENTITY % local.collab.attrib "">
-  <!ENTITY % collab.role.attrib "%role.attrib;">
-  <!ELEMENT Collab - - (CollabName, Affiliation*)>
-  <!ATTLIST Collab
-                %common.attrib;
->
-  <!--end of collab.module-->]]>
-
-    <!ENTITY % collabname.module "INCLUDE">
-  <![ %collabname.module; [
-  <!ENTITY % local.collabname.attrib "">
-  <!ENTITY % collabname.role.attrib "%role.attrib;">
-    <!ELEMENT CollabName - - ((%docinfo.char.mix;)+)>
-    <!ATTLIST CollabName
-                %common.attrib;
->
-    <!--end of collabname.module-->]]>
-
-    <!--ELEMENT Affiliation (defined elsewhere in this section)-->
-  <!--end of collab.content.module-->]]>
-
-  <!--ELEMENT CorpAuthor (defined elsewhere in this section)-->
-  <!--ELEMENT OtherCredit (defined elsewhere in this section)-->
-
-<!--end of authorgroup.content.module-->]]>
-
-<!-- AuthorInitials ................... -->
-
-<!ENTITY % authorinitials.module "INCLUDE">
-<![ %authorinitials.module; [
-<!ENTITY % local.authorinitials.attrib "">
-<!ENTITY % authorinitials.role.attrib "%role.attrib;">
-<!ELEMENT AuthorInitials - - ((%docinfo.char.mix;)+)>
-<!ATTLIST AuthorInitials 
-                %common.attrib;   
->
-<!--end of authorinitials.module-->]]>
-
-<!-- Copyright ........................ -->
-
-<!ENTITY % copyright.content.module "INCLUDE">
-<![ %copyright.content.module; [
-<!ENTITY % copyright.module "INCLUDE">
-<![ %copyright.module; [
-<!ENTITY % local.copyright.attrib "">
-<!ENTITY % copyright.role.attrib "%role.attrib;">
-<!ELEMENT Copyright - - (Year+, Holder*)>
-<!ATTLIST Copyright 
-                %common.attrib;   
->
-<!--end of copyright.module-->]]>
-
-<!ENTITY % year.module "INCLUDE">
-<![ %year.module; [
-<!ENTITY % local.year.attrib "">
-<!ENTITY % year.role.attrib "%role.attrib;">
-<!ELEMENT Year - - ((%docinfo.char.mix;)+)>
-<!ATTLIST Year 
-                %common.attrib;   
->
-<!--end of year.module-->]]>
-
-<!ENTITY % holder.module "INCLUDE">
-<![ %holder.module; [
-<!ENTITY % local.holder.attrib "">
-<!ENTITY % holder.role.attrib "%role.attrib;">
-<!ELEMENT Holder - - ((%docinfo.char.mix;)+)>
-<!ATTLIST Holder 
-                %common.attrib;   
->  
-<!--end of holder.module-->]]>
-<!--end of copyright.content.module-->]]>
-
-<!-- CorpAuthor ....................... -->
-
-<!ENTITY % corpauthor.module "INCLUDE">
-<![ %corpauthor.module; [
-<!ENTITY % local.corpauthor.attrib "">
-<!ENTITY % corpauthor.role.attrib "%role.attrib;">
-<!ELEMENT CorpAuthor - - ((%docinfo.char.mix;)+)>
-<!ATTLIST CorpAuthor 
-                %common.attrib;   
->
-<!--end of corpauthor.module-->]]>
-
-<!-- CorpName ......................... -->
-
-<!ENTITY % corpname.module "INCLUDE">
-<![ %corpname.module; [
-<!ENTITY % local.corpname.attrib "">
-<!ELEMENT CorpName - - ((%docinfo.char.mix;)+)>
-<!ENTITY % corpname.role.attrib "%role.attrib;">
-<!ATTLIST CorpName 
-                %common.attrib;   
->
-<!--end of corpname.module-->]]>
-
-<!-- Date ............................. -->
-
-<!ENTITY % date.module "INCLUDE">
-<![ %date.module; [
-<!ENTITY % local.date.attrib "">
-<!ENTITY % date.role.attrib "%role.attrib;">
-<!ELEMENT Date - - ((%docinfo.char.mix;)+)>
-<!ATTLIST Date 
-                %common.attrib;   
->
-<!--end of date.module-->]]>
-
-<!-- Edition .......................... -->
-
-<!ENTITY % edition.module "INCLUDE">
-<![ %edition.module; [
-<!ENTITY % local.edition.attrib "">
-<!ENTITY % edition.role.attrib "%role.attrib;">
-<!ELEMENT Edition - - ((%docinfo.char.mix;)+)>
-<!ATTLIST Edition 
-                %common.attrib;   
->
-<!--end of edition.module-->]]>
-
-<!-- Editor ........................... -->
-
-<!ENTITY % editor.module "INCLUDE">
-<![ %editor.module; [
-<!ENTITY % local.editor.attrib "">
-<!ENTITY % editor.role.attrib "%role.attrib;">
-<!ELEMENT Editor - - ((%person.ident.mix;)+)>
-  <!--(see "Personal identity elements" for %person.ident.mix;)-->
-<!ATTLIST Editor 
-                %common.attrib;   
->
-<!--end of editor.module-->]]>
-
-<!-- ISBN ............................. -->
-
-<!ENTITY % isbn.module "INCLUDE">
-<![ %isbn.module; [
-<!ENTITY % local.isbn.attrib "">
-<!ENTITY % isbn.role.attrib "%role.attrib;">
-<!ELEMENT ISBN - - ((%docinfo.char.mix;)+)>
-<!ATTLIST ISBN 
-                %common.attrib;   
->
-<!--end of isbn.module-->]]>
-
-<!-- IssueNum ......................... -->
-
-<!ENTITY % issuenum.module "INCLUDE">
-<![ %issuenum.module; [
-<!ENTITY % local.issuenum.attrib "">
-<!ELEMENT IssueNum - - ((%docinfo.char.mix;)+)>
-<!ATTLIST IssueNum
-                %common.attrib;
-                %local.issuenum.attrib;
->
-<!--end of issuenum.module-->]]>
-
-<!-- LegalNotice ...................... -->
-
-<!ENTITY % legalnotice.module "INCLUDE">
-<![ %legalnotice.module; [
-<!ENTITY % local.legalnotice.attrib "">
-<!ENTITY % legalnotice.role.attrib "%role.attrib;">
-<!ELEMENT LegalNotice - - ((%legalnotice.mix;)+) -(%formal.class;)>
-<!ATTLIST LegalNotice
-                %common.attrib;
-                Role        (EVEN | ODD)         #IMPLIED
-                %local.legalnotice.attrib;
->
-
-<!--end of legalnotice.module-->]]>
-
-<!-- ModeSpec ......................... -->
-
-<!ENTITY % modespec.module "INCLUDE">
-<![ %modespec.module; [
-<!ENTITY % local.modespec.attrib "">
-<!ENTITY % modespec.role.attrib "%role.attrib;">
-<!ELEMENT ModeSpec - - ((%docinfo.char.mix;)+) -(%ubiq.mix;)>
-<!ATTLIST ModeSpec
-                --Application: type of retrieval query--
-                Application        NOTATION
-                                (%notation.class;)        #IMPLIED
-                %common.attrib;
->
-<!--end of modespec.module-->]]>
-
-<!-- OrgName .......................... -->
-
-<!ENTITY % orgname.module "INCLUDE">
-<![ %orgname.module; [
-<!ENTITY % local.orgname.attrib "">
-<!ELEMENT OrgName - - ((%docinfo.char.mix;)+)>
-<!ATTLIST OrgName
-                %common.attrib;
-                %local.orgname.attrib;
->
-<!--end of orgname.module-->]]>
-
-<!-- OtherCredit ...................... -->
-
-<!ENTITY % othercredit.module "INCLUDE">
-<![ %othercredit.module; [
-<!ENTITY % local.othercredit.attrib "">
-<!ENTITY % othercredit.role.attrib "%role.attrib;">
-<!ELEMENT OtherCredit - - ((%person.ident.mix;)+)>
-  <!--(see "Personal identity elements" for %person.ident.mix;)-->
-<!--end of othercredit.module-->]]>
-
-<!-- PageNums ......................... -->
-
-<!-- Personal identity elements ....... -->
-
-<!-- These elements are used only within Author, Editor, and 
-OtherCredit. -->
-
-<!ENTITY % person.ident.module "INCLUDE">
-<![ %person.ident.module; [
-<!ENTITY % contrib.module "INCLUDE">
-<![ %contrib.module; [
-<!ENTITY % local.contrib.attrib "">
-<!ENTITY % contrib.role.attrib "%role.attrib;">
-<!ELEMENT Contrib - - ((%docinfo.char.mix;)+)>
-<!ATTLIST Contrib 
-                %common.attrib;   
->  
-<!--end of contrib.module-->]]>
-
-<!ENTITY % firstname.module "INCLUDE">
-<![ %firstname.module; [
-<!ENTITY % local.firstname.attrib "">
-<!ENTITY % firstname.role.attrib "%role.attrib;">
-<!ELEMENT FirstName - - ((%docinfo.char.mix;)+)>
-<!ATTLIST FirstName 
-                %common.attrib;   
->
-<!--end of firstname.module-->]]>
-
-<!ENTITY % othername.module "INCLUDE">
-<![ %othername.module; [
-<!ENTITY % local.othername.attrib "">
-<!ENTITY % othername.role.attrib "%role.attrib;">
-<!ELEMENT OtherName - - ((%docinfo.char.mix;)+)>
-<!ATTLIST OtherName 
-                %common.attrib;   
-> 
-<!--end of othername.module-->]]>
-
-<!ENTITY % surname.module "INCLUDE">
-<![ %surname.module; [
-<!ENTITY % local.surname.attrib "">
-<!ENTITY % surname.role.attrib "%role.attrib;">
-<!ELEMENT Surname - - ((%docinfo.char.mix;)+)>
-<!ATTLIST Surname 
-                %common.attrib;   
->
-<!--end of surname.module-->]]>
-<!--end of person.ident.module-->]]>
-
-<!-- ProductName ...................... -->
-
-<!ENTITY % productname.module "INCLUDE">
-<![ %productname.module; [
-<!ENTITY % local.productname.attrib "">
-<!ENTITY % productname.role.attrib "%role.attrib;">
-<!ELEMENT ProductName - - ((%small.para.char.mix;)+)>
-<!ATTLIST ProductName
-                Class                (Service
-                                |Trade
-                                |Registered
-                                |Copyright)        Trade
-                %common.attrib;
->
-<!--end of productname.module-->]]>
-
-<!-- ProductNumber .................... -->
-
-<!ENTITY % productnumber.module "INCLUDE">
-<![ %productnumber.module; [
-<!ENTITY % local.productnumber.attrib "">
-<!ENTITY % productnumber.role.attrib "%role.attrib;">
-<!ELEMENT ProductNumber - - ((%docinfo.char.mix;)+)>
-<!ATTLIST ProductNumber 
-                %common.attrib;   
->
-<!--end of productnumber.module-->]]>
-
-<!-- PubDate .......................... -->
-
-<!ENTITY % pubdate.module "INCLUDE">
-<![ %pubdate.module; [
-<!ENTITY % local.pubdate.attrib "">
-<!ENTITY % pubdate.role.attrib "%role.attrib;">
-<!ELEMENT PubDate - - ((%docinfo.char.mix;)+)>
-<!ATTLIST PubDate
-                %common.attrib;
->
-<!--end of pubdate.module-->]]>
-
-<!-- Publisher ........................ -->
-
-<!ENTITY % publisher.content.module "INCLUDE">
-<![ %publisher.content.module; [
-<!ENTITY % publisher.module "INCLUDE">
-<![ %publisher.module; [
-<!ENTITY % local.publisher.attrib "">
-<!ENTITY % publisher.role.attrib "%role.attrib;">
-<!ELEMENT Publisher - - (PublisherName, Address*)>
-<!ATTLIST Publisher
-                %common.attrib;
->
-<!--end of publisher.module-->]]>
-
-  <!ENTITY % publishername.module "INCLUDE">
-  <![ %publishername.module; [
-  <!ENTITY % local.publishername.attrib "">
-  <!ENTITY % publishername.role.attrib "%role.attrib;">
-  <!ELEMENT PublisherName - - ((%docinfo.char.mix;)+)>
-  <!ATTLIST PublisherName
-                %common.attrib;
->
-  <!--end of publishername.module-->]]>
-
-  <!--ELEMENT Address (defined elsewhere in this section)-->
-<!--end of publisher.content.module-->]]>
-
-<!-- PubsNumber ....................... -->
-
-<!ENTITY % pubsnumber.module "INCLUDE">
-<![ %pubsnumber.module; [
-<!ENTITY % local.pubsnumber.attrib "">
-<!ENTITY % pubsnumber.role.attrib "%role.attrib;">
-<!ELEMENT PubsNumber - - ((%docinfo.char.mix;)+)>
-<!ATTLIST PubsNumber
-                %common.attrib;
->
-<!--end of pubsnumber.module-->]]>
-
-<!-- ReleaseInfo ...................... -->
-
-<!ENTITY % releaseinfo.module "INCLUDE">
-<![ %releaseinfo.module; [
-<!ENTITY % local.releaseinfo.attrib "">
-<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
-<!ELEMENT ReleaseInfo - - ((%docinfo.char.mix;)+)>
-<!ATTLIST ReleaseInfo
-        %common.attrib;
-        Role        (CONFIDENTIAL | NEED-TO-KNOW | REGISTERED) #IMPLIED        
->
-<!--end of releaseinfo.module-->]]>
-
-<!-- RevHistory ....................... -->
-
-<!ENTITY % revhistory.content.module "INCLUDE">
-<![ %revhistory.content.module; [
-<!ENTITY % revhistory.module "INCLUDE">
-<![ %revhistory.module; [
-<!ENTITY % local.revhistory.attrib "">
-<!ENTITY % revhistory.role.attrib "%role.attrib;">
-<!ELEMENT RevHistory - - (Revision+)>
-<!ATTLIST RevHistory
-                %common.attrib;  
->
-
-<!--end of revhistory.module-->]]>
-
-<!ENTITY % revision.module "INCLUDE">
-<![ %revision.module; [
-<!ENTITY % local.revision.attrib "">
-<!ENTITY % revision.role.attrib "%role.attrib;">
-<!ELEMENT Revision - - (RevNumber, Date, AuthorInitials+, RevRemark?)>
-<!ATTLIST Revision
-                %common.attrib;
->
-<!--end of revision.module-->]]>
-
-<!ENTITY % revnumber.module "INCLUDE">
-<![ %revnumber.module; [
-<!ENTITY % local.revnumber.attrib "">
-<!ENTITY % revnumber.role.attrib "%role.attrib;">
-<!ELEMENT RevNumber - - ((%docinfo.char.mix;)+)>
-<!ATTLIST RevNumber 
-                %common.attrib;   
-> 
-<!--end of revnumber.module-->]]>
-
-<!--ELEMENT Date (defined elsewhere in this section)-->
-<!--ELEMENT AuthorInitials (defined elsewhere in this section)-->
-
-<!ENTITY % revremark.module "INCLUDE">
-<![ %revremark.module; [
-<!ENTITY % local.revremark.attrib "">
-<!ENTITY % revremark.role.attrib "%role.attrib;">
-<!ELEMENT RevRemark - - ((%docinfo.char.mix;)+)>
-<!ATTLIST RevRemark 
-                %common.attrib;   
->
-<!--end of revremark.module-->]]>
-<!--end of revhistory.content.module-->]]>
-
-<!-- VolumeNum ........................ -->
-
-<!ENTITY % volumenum.module "INCLUDE">
-<![ %volumenum.module; [
-<!ENTITY % local.volumenum.attrib "">
-<!ENTITY % volumenum.role.attrib "%role.attrib;">
-<!ELEMENT VolumeNum - - ((%docinfo.char.mix;)+)>
-<!ATTLIST VolumeNum
-                %common.attrib;
->
-<!--end of volumenum.module-->]]>
-
-<!--end of docinfo.content.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Inline, link, and ubiquitous elements ................................ -->
-
-<!-- Computer terms ....................................................... -->
-
-<!ENTITY % application.module "INCLUDE">
-<![ %application.module; [
-<!ENTITY % local.application.attrib "">
-<!ENTITY % application.role.attrib "%role.attrib;">
-<!ELEMENT Application - - ((%small.para.char.mix;)+)>
-<!ATTLIST Application
-        Class                 (Hardware | Software)        #IMPLIED
-        MoreInfo        (RefEntry | None)         None
-        %common.attrib;
->
-<!--end of application.module-->]]>
-
-<!ENTITY % classname.module "INCLUDE">
-<![ %classname.module; [
-<!ENTITY % local.classname.attrib "">
-<!ENTITY % classname.role.attrib "%role.attrib;">
-<!ELEMENT ClassName - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST ClassName
-                %common.attrib;
-                %local.classname.attrib;
->
-<!--end of classname.module-->]]>
-
-<!ENTITY % command.module "INCLUDE">
-<![ %command.module; [
-<!ENTITY % local.command.attrib "">
-<!ENTITY % command.role.attrib "%role.attrib;">
-<!ELEMENT Command - - ((%cptr.char.mix;)+)>
-<!ATTLIST Command
-        MoreInfo        (RefEntry | None)        None        
-        %common.attrib;
->
-<!--end of command.module-->]]>
-
-<!ENTITY % computeroutput.module "INCLUDE">
-<![ %computeroutput.module; [
-<!ENTITY % local.computeroutput.attrib "">
-<!ENTITY % computeroutput.role.attrib "%role.attrib;">
-<!ELEMENT ComputerOutput - - ((%cptr.char.mix;)+)>
-<!ATTLIST ComputerOutput
-        MoreInfo        (RefEntry | None)         None
-        %common.attrib;
->
-<!--end of computeroutput.module-->]]>
-
-<!ENTITY % email.module "INCLUDE">
-<![ %email.module; [
-<!ENTITY % local.email.attrib "">
-<!ELEMENT Email - - ((%docinfo.char.mix;)+)>
-<!ATTLIST Email
-                %common.attrib;
-                %local.email.attrib;
->
-<!--end of email.module-->]]>
-
-<!ENTITY % envar.module "INCLUDE">
-<![ %envar.module; [
-<!ENTITY % local.envar.attrib "">
-<!ENTITY % envar.role.attrib "%role.attrib;">
-<!ELEMENT EnVar - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST EnVar
-                %common.attrib;
-                %envar.role.attrib;
-                %local.envar.attrib;
->
-<!--end of envar.module-->]]>
-
-<!ENTITY % errorcode.module "INCLUDE">
-<![ %errorcode.module; [
-<!ENTITY % local.errorcode.attrib "">
-<!ENTITY % errorcode.role.attrib "%role.attrib;">
-<!ELEMENT ErrorCode - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST ErrorCode
-                %moreinfo.attrib;
-                %common.attrib;
-                %errorcode.role.attrib;
-                %local.errorcode.attrib;
->
-<!--end of errorcode.module-->]]>
-
-<!ENTITY % errorname.module "INCLUDE">
-<![ %errorname.module; [
-<!ENTITY % local.errorname.attrib "">
-<!ENTITY % errorname.role.attrib "%role.attrib;">
-<!ELEMENT ErrorName - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST ErrorName
-                %common.attrib;
->
-<!--end of errorname.module-->]]>
-
-<!ENTITY % errortype.module "INCLUDE">
-<![ %errortype.module; [
-<!ENTITY % local.errortype.attrib "">
-<!ENTITY % errortype.role.attrib "%role.attrib;">
-<!ELEMENT ErrorType - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST ErrorType
-                %common.attrib;
->
-<!--end of errortype.module-->]]>
-
-<!ENTITY % filename.module "INCLUDE">
-<![ %filename.module; [
-<!ENTITY % local.filename.attrib "">
-<!ENTITY % filename.role.attrib "%role.attrib;">
-<!ELEMENT Filename - - ((%cptr.char.mix;)+)>
-<!ATTLIST Filename
-        Class                (HeaderFile | SymLink | Directory)        #IMPLIED
-
-        --Path: search path (possibly system-specific) in which 
-        file can be found--
-        Path                CDATA                #IMPLIED
-        MoreInfo        (RefEntry | None)         None        
-                %common.attrib;
->
-<!--end of filename.module-->]]>
-
-<!ENTITY % function.module "INCLUDE">
-<![ %function.module; [
-<!ENTITY % local.function.attrib "">
-<!ENTITY % function.role.attrib "%role.attrib;">
-<!ELEMENT Function - - ((%cptr.char.mix;)+)>
-<!ATTLIST Function
-        MoreInfo        (RefEntry | None)         None        
-        %common.attrib;
->
-<!--end of function.module-->]]>
-
-<!ENTITY % keysym.module "INCLUDE">
-<![ %keysym.module; [
-<!ENTITY % local.keysym.attrib "">
-<!ENTITY % keysysm.role.attrib "%role.attrib;">
-<!ELEMENT KeySym - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST KeySym
-                %common.attrib;
->
-<!--end of keysym.module-->]]>
-
-<!ENTITY % lineannotation.module "INCLUDE">
-<![ %lineannotation.module; [
-<!ENTITY % local.lineannotation.attrib "">
-<!ENTITY % lineannotation.role.attrib "%role.attrib;">
-<!ELEMENT LineAnnotation - - ((%docinfo.char.mix;)+)>
-<!ATTLIST LineAnnotation
-                %common.attrib;
->
-<!--end of lineannotation.module-->]]>
-
-<!ENTITY % literal.module "INCLUDE">
-<![ %literal.module; [
-<!ENTITY % local.literal.attrib "">
-<!ENTITY % literal.role.attrib "%role.attrib;">
-<!ELEMENT Literal - - ((%cptr.char.mix;)+)>
-<!ATTLIST Literal
-        MoreInfo        (RefEntry | None)        None
-        %common.attrib;
->
-<!--end of literal.module-->]]>
-
-<!ENTITY % medialabel.module "INCLUDE">
-<![ %medialabel.module; [
-<!ENTITY % local.medialabel.attrib "">
-<!ENTITY % medialabel.role.attrib "%role.attrib;">
-<!ELEMENT MediaLabel - - (#PCDATA) >
-<!ATTLIST MediaLabel
-                Class                 (Cartridge
-                                |CDRom
-                                |Disk
-                                |Tape)                #IMPLIED
-                %common.attrib;
->
-<!--end of medialabel.module-->]]>
-
-<!ENTITY % msgtext.module "INCLUDE">
-<![ %msgtext.module; [
-<!ENTITY % local.msgtext.attrib "">
-<!ENTITY % msgtext.role.attrib "%role.attrib;">
-<!ELEMENT MsgText - - ((%component.mix;)+)>
-<!ATTLIST MsgText
-                %common.attrib;
->
-<!--end of msgtext.module-->]]>
-
-<!ENTITY % option.module "INCLUDE">
-<![ %option.module; [
-<!ENTITY % local.option.attrib "">
-<!ENTITY % option.role.attrib "%role.attrib;">
-<!ELEMENT Option - - ((%cptr.char.mix;)+)>
-<!ATTLIST Option
-        Role        (nodash | plus)                #IMPLIED
-        %common.attrib;
->
-<!--end of option.module-->]]>
-
-<!ENTITY % optional.module "INCLUDE">
-<![ %optional.module; [
-<!ENTITY % local.optional.attrib "">
-<!ENTITY % optional.role.attrib "%role.attrib;">
-<!ELEMENT Optional - - ((%cptr.char.mix;)+)>
-<!ATTLIST Optional
-                %common.attrib;
->
-<!--end of optional.module-->]]>
-
-<!ENTITY % parameter.module "INCLUDE">
-<![ %parameter.module; [
-<!ENTITY % local.parameter.attrib "">
-<!ENTITY % parameter.role.attrib "%role.attrib;">
-<!ELEMENT Parameter - - ((%cptr.char.mix;)+)>
-<!ATTLIST Parameter
-        Class                (Command | Function | Option)        #IMPLIED
-        MoreInfo        (RefEntry | None)        None        
-        %common.attrib;
->
-<!--end of parameter.module-->]]>
-
-<!ENTITY % prompt.module "INCLUDE">
-<![ %prompt.module; [
-<!ENTITY % local.prompt.attrib "">
-<!ENTITY % prompt.role.attrib "%role.attrib;">
-<!ELEMENT Prompt - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST Prompt
-                %moreinfo.attrib;
-                %common.attrib;
-                %prompt.role.attrib;
-                %local.prompt.attrib;
->
-<!--end of prompt.module-->]]>
-
-<!ENTITY % property.module "INCLUDE">
-<![ %property.module; [
-<!ENTITY % local.property.attrib "">
-<!ENTITY % property.role.attrib "%role.attrib;">
-<!ELEMENT Property - - ((%cptr.char.mix;)+)>
-<!ATTLIST Property
-        MoreInfo        (RefEntry | None)         None        
-        %common.attrib;
->
-<!--end of property.module-->]]>
-
-<!ENTITY % replaceable.module "INCLUDE">
-<![ %replaceable.module; [
-<!ENTITY % local.replaceable.attrib "">
-<!ENTITY % replaceable.role.attrib "%role.attrib;">
-<!ELEMENT Replaceable - - ((#PCDATA 
-                | %link.char.class; 
-                | %other.char.class; )+)>
-<!ATTLIST Replaceable
-                Class                (Command
-                                |Function
-                                |Option
-                                |Parameter)        #IMPLIED
-                %common.attrib;
->
-<!--end of replaceable.module-->]]>
-
-<!ENTITY % returnvalue.module "INCLUDE">
-<![ %returnvalue.module; [
-<!ENTITY % local.returnvalue.attrib "">
-<!ENTITY % returnvalue.role.attrib "%role.attrib;">
-<!ELEMENT ReturnValue - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST ReturnValue
-                %common.attrib;
->
-<!--end of returnvalue.module-->]]>
-
-<!ENTITY % structfield.module "INCLUDE">
-<![ %structfield.module; [
-<!ENTITY % local.structfield.attrib "">
-<!ENTITY % structfield.role.attrib "%role.attrib;">
-<!ELEMENT StructField - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST StructField
-                %common.attrib;
->
-<!--end of structfield.module-->]]>
-
-<!ENTITY % structname.module "INCLUDE">
-<![ %structname.module; [
-<!ENTITY % local.structname.attrib "">
-<!ENTITY % structname.role.attrib "%role.attrib;">
-<!ELEMENT StructName - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST StructName
-                %common.attrib;
->
-<!--end of structname.module-->]]>
-
-<!ENTITY % symbol.module "INCLUDE">
-<![ %symbol.module; [
-<!ENTITY % local.symbol.attrib "">
-<!ENTITY % symbol.role.attrib "%role.attrib;">
-<!ELEMENT Symbol - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST Symbol
-                Class                (Limit)                #IMPLIED
-                %common.attrib;
->
-<!--end of symbol.module-->]]>
-
-<!ENTITY % systemitem.module "INCLUDE">
-<![ %systemitem.module; [
-<!ENTITY % local.systemitem.attrib "">
-<!ENTITY % systemitem.role.attrib "%role.attrib;">
-<!ELEMENT SystemItem - - ((%cptr.char.mix; | Acronym)+)>
-<!ATTLIST SystemItem
-        Class      (Constant | EnvironVar | Macro | OSname
-                   |Prompt | Resource | SystemName)        #IMPLIED
-        MoreInfo   (RefEntry | None)         None        
-                   %common.attrib;
->
-<!--end of systemitem.module-->]]>
-
-<!ENTITY % type.module "INCLUDE">
-<![ %type.module; [
-<!ENTITY % local.type.attrib "">
-<!ENTITY % type.role.attrib "%role.attrib;">
-<!ELEMENT Type - - ((%smallcptr.char.mix;)+)>
-<!ATTLIST Type
-                %common.attrib;
->
-<!--end of type.module-->]]>
-
-<!ENTITY % userinput.module "INCLUDE">
-<![ %userinput.module; [
-<!ENTITY % local.userinput.attrib "">
-<!ENTITY % userinput.role.attrib "%role.attrib;">
-<!ELEMENT UserInput - - ((%cptr.char.mix;)+)>
-<!ATTLIST UserInput
-        MoreInfo        (RefEntry | None)         None        
-        %common.attrib;
->
-<!--end of userinput.module-->]]>
-
-<!-- Words ................................................................ -->
-
-<!ENTITY % acronym.module "INCLUDE">
-<![ %acronym.module; [
-<!ENTITY % local.acronym.attrib "">
-<!ENTITY % acronym.role.attrib "%role.attrib;">
-<!ELEMENT Acronym - - ((%word.char.mix;)+) -(Acronym)>
-<!ATTLIST Acronym
-                %common.attrib;
->
-<!--end of acronym.module-->]]>
-
-<!ENTITY % citerefentry.module "INCLUDE">
-<![ %citerefentry.module; [
-<!ENTITY % local.citerefentry.attrib "">
-<!ENTITY % citerefentry.role.attrib "%role.attrib;">
-<!ELEMENT CiteRefEntry - - (RefEntryTitle, ManVolNum?)>
-<!ATTLIST CiteRefEntry
-                %common.attrib;
->
-<!--end of citerefentry.module-->]]>
-
-<!ENTITY % refentrytitle.module "INCLUDE">
-<![ %refentrytitle.module; [
-<!ENTITY % local.refentrytitle.attrib "">
-<!ENTITY % refentrytitle.role.attrib "%role.attrib;">
-<!ELEMENT RefEntryTitle - O ((%small.para.char.mix;)+)>
-<!ATTLIST RefEntryTitle
-                %common.attrib;
->
-<!--end of refentrytitle.module-->]]>
-
-<!ENTITY % manvolnum.module "INCLUDE">
-<![ %manvolnum.module; [
-<!ENTITY % local.manvolnum.attrib "">
-<!ENTITY % namvolnum.role.attrib "%role.attrib;">
-<!ELEMENT ManVolNum - O ((%word.char.mix;)+)>
-<!ATTLIST ManVolNum
-                %common.attrib;
->
-<!--end of manvolnum.module-->]]>
-
-<!ENTITY % citetitle.module "INCLUDE">
-<![ %citetitle.module; [
-<!ENTITY % local.citetitle.attrib "">
-<!ENTITY % citetitle.role.attrib "%role.attrib;">
-<!ELEMENT CiteTitle - - ((%small.para.char.mix;)+)>
-<!ATTLIST CiteTitle
-                --Pubwork: type of published work being cited--
-                Pubwork                (Article | Book)  #IMPLIED
-                %common.attrib;
->
-<!--end of citetitle.module-->]]>
-
-<!ENTITY % emphasis.module "INCLUDE">
-<![ %emphasis.module; [
-<!ENTITY % local.emphasis.attrib "">
-<!ENTITY % emphasis.role.attrib "%role.attrib;">
-<!ELEMENT Emphasis - - ((%docinfo.char.mix;)+)>
-<!ATTLIST Emphasis
-        %common.attrib;
-        Role        (Strong)        #IMPLIED        
-        %local.emphasis.attrib;
->
-<!--end of emphasis.module-->]]>
-
-<!ENTITY % firstterm.module "INCLUDE">
-<![ %firstterm.module; [
-<!ENTITY % local.firstterm.attrib "">
-<!ENTITY % firstterm.role.attrib "%role.attrib;">
-<!ELEMENT FirstTerm - - ((%word.char.mix;)+)>
-<!ATTLIST FirstTerm
-                %linkend.attrib; --to GlossEntry or other explanation--
-                %common.attrib;
->
-<!--end of firstterm.module-->]]>
-
-<!ENTITY % glossterm.module "INCLUDE">
-<![ %glossterm.module; [
-<!ENTITY % local.glossterm.attrib "">
-<!ENTITY % glossterm.role.attrib "%role.attrib;">
-<!ELEMENT GlossTerm - O ((%para.char.mix;)+)>
-<!ATTLIST GlossTerm
-                %linkend.attrib; --to GlossEntry if Glossterm used in text--
-
-                --BaseForm: the form of the term in GlossEntry when this
-                GlossTerm is used in text in alternate form (e.g. plural),
-                for doing automatic linking--
-                BaseForm        CDATA                #IMPLIED
-                %common.attrib;
->
-<!--end of glossterm.module-->]]>
-
-<!ENTITY % phrase.module "INCLUDE">
-<![ %phrase.module; [
-<!ENTITY % local.phrase.attrib "">
-<!ENTITY % phrase.role.attrib "%role.attrib;">
-<!ELEMENT Phrase - - ((%docinfo.char.mix;)+)>
-<!ATTLIST Phrase
-                %common.attrib;
->
-<!--end of phrase.module-->]]>
-
-<!ENTITY % quote.module "INCLUDE">
-<![ %quote.module; [
-<!ENTITY % local.quote.attrib "">
-<!ENTITY % quote.role.attrib "%role.attrib;">
-<!ELEMENT Quote - - ((%small.para.char.mix;)+)>
-<!ATTLIST Quote
-                %common.attrib;
->
-<!--end of quote.module-->]]>
-
-<!ENTITY % ssscript.module "INCLUDE">
-<![ %ssscript.module; [
-<!ENTITY % local.ssscript.attrib "">
-<!ENTITY % ssscript.role.attrib "%role.attrib;">
-<!ELEMENT (Subscript | Superscript) - - ((#PCDATA 
-                | %link.char.class;
-                | Replaceable 
-                | Symbol 
-                | %other.char.class;)+)
-                -(%ubiq.mix;)>
-<!ATTLIST (Subscript | Superscript)
-                %common.attrib;
->
-<!--end of ssscript.module-->]]>
-
-<!ENTITY % trademark.module "INCLUDE">
-<![ %trademark.module; [
-<!ENTITY % local.trademark.attrib "">
-<!ENTITY % trademark.role.attrib "%role.attrib;">
-<!ELEMENT Trademark - - ((#PCDATA 
-                | %link.char.class; 
-                | %cptr.char.class;
-                | %other.char.class;)+)> 
-<!ATTLIST Trademark
-                Class                (Service
-                                |Trade
-                                |Registered
-                                |Copyright)        Trade
-                %common.attrib;
->
-<!--end of trademark.module-->]]>
-
-<!-- Links and cross-references ........................................... -->
-
-<!ENTITY % link.module "INCLUDE">
-<![ %link.module; [
-<!ENTITY % local.link.attrib "">
-<!ELEMENT Link - - ((%small.para.char.mix;)+)>
-<!ATTLIST Link
-                --Endterm: pointer to description of linked-to object--
-                Endterm                IDREF                #IMPLIED
-
-                %linkendreq.attrib; --to linked-to object--
-
-                --Type: user-defined role of link--
-                Type                CDATA                #IMPLIED
-                %common.attrib;
-                %local.link.attrib;
->
-<!--end of link.module-->]]>
-
-<!ENTITY % olink.module "INCLUDE">
-<![ %olink.module; [
-<!ENTITY % local.olink.attrib "">
-<!ENTITY % olink.role.attrib "%role.attrib;">
-<!ELEMENT OLink - - ((%para.char.mix;)+)>
-<!ATTLIST OLink
-        --TargetDocEnt: HyTimeish Docorsub pointer--
-        TargetDocEnt        ENTITY                 #REQUIRED
-
-        --LinkMode: points to a ModeSpec containing app-specific info--
-        LinkMode        IDREF                #IMPLIED
-        LocalInfo         CDATA                #IMPLIED
-
-        --Type: user-defined role of link--
-        --CHANGED OLink attribute Type from CDATA to
-          (V-ONLY | V-ANY).  This allows writers in the future
-          to determine whether a given link should go to the
-          current target only (that is, only that version of the
-          target) or whether the user should be given a list of
-          possible other versions if the target specified by the
-          olink cannot be found.--
-        --ADDED V-LAST: (V-ONLY | V-ANY | V-LAST), this will permit
-          to determine whether a given links should go to the last
-          available version of the target --
-        Type            (V-ONLY | V-ANY | V-LAST)       #IMPLIED
->
-<!--end of olink.module-->]]>
-
-<!ENTITY % ulink.module "INCLUDE">
-<![ %ulink.module; [
-<!ENTITY % local.ulink.attrib "">
-<!ENTITY % ulink.role.attrib "%role.attrib;">
-<!ELEMENT ULink - - ((%small.para.char.mix;)+)>
-<!ATTLIST ULink
-                --URL: uniform resource locator--
-                URL                CDATA                #REQUIRED
-
-                --Type: user-defined role of link--
-                Type                CDATA                #IMPLIED
->
-<!--end of ulink.module-->]]>
-
-<!ENTITY % footnoteref.module "INCLUDE">
-<![ %footnoteref.module; [
-<!ENTITY % local.footnoteref.attrib "">
-<!ENTITY % footnoteref.role.attrib "%role.attrib;">
-<!ELEMENT FootnoteRef - O EMPTY>
-<!ATTLIST FootnoteRef
-                %linkendreq.attrib; --to footnote content already supplied--
-                --Label: symbol (e.g. dagger) for use in pointing to
-                footnote in text; default is whatever was used
-                in original footnote being referenced--
-                Label                CDATA                #IMPLIED
-                id                ID                #IMPLIED
->
-<!--end of footnoteref.module-->]]>
-
-<!ENTITY % xref.module "INCLUDE">
-<![ %xref.module; [
-<!ENTITY % local.xref.attrib "">
-<!ENTITY % xref.role.attrib "%role.attrib;">
-<!ELEMENT XRef - O EMPTY>
-<!ATTLIST XRef
-                --Endterm: pointer to description of linked-to object--
-                Endterm                IDREF                #IMPLIED
-
-                %linkendreq.attrib; --to linked-to object--
->
-<!--end of xref.module-->]]>
-
-<!-- Ubiquitous elements .................................................. -->
-
-<!ENTITY % beginpage.module "INCLUDE">
-<![ %beginpage.module; [
-<!ENTITY % local.beginpage.attrib "">
-<!ENTITY % beginpage.role.attrib "%role.attrib;">
-<!ELEMENT BeginPage - O EMPTY>
-<!ATTLIST BeginPage
-                --PageNum: number of page that begins at this point--
-                %pagenum.attrib;
-                %common.attrib;
-                %beginpage.role.attrib;
-                %local.beginpage.attrib;
->
-<!--end of beginpage.module-->]]>
-
-<!-- IndexTerms appear in the text flow for generating or linking an
-     index. -->
-
-<!ENTITY % indexterm.content.module "INCLUDE">
-<![ %indexterm.content.module; [
-<!ENTITY % indexterm.module "INCLUDE">
-<![ %indexterm.module; [
-<!ENTITY % local.indexterm.attrib "">
-<!ELEMENT IndexTerm - O (Primary, ((Secondary, ((Tertiary, (See|SeeAlso+)?)
-                | See | SeeAlso+)?) | See | SeeAlso+)?) -(%ubiq.mix;)>
-<!ATTLIST IndexTerm
-                %pagenum.attrib;
-
-                --Scope: indexing applies to this doc (Local), whole doc
-                set (Global), or both (All)--
-                Scope                (All
-                                |Global
-                                |Local)                #IMPLIED
-
-                --Significance: whether term is best source of info for
-                this topic (Preferred) or not (Normal)--
-                Significance        (Preferred
-                                |Normal)        Normal
-
-                --Class: indicates type of IndexTerm; default is Singular, 
-                or EndOfRange if StartRef is supplied; StartOfRange value 
-                must be supplied explicitly on starts of ranges--
-
-                Class                (Singular
-                                |StartOfRange
-                                |EndOfRange)        #IMPLIED
-
-                --StartRef: points to the IndexTerm that starts
-                the indexing range ended by this IndexTerm--
-
-                StartRef                IDREF                #CONREF
-
-                --Zone: points to elements where IndexTerms originated;
-                for use if IndexTerms are assembled together in source
-                instance--
-
-                Zone                IDREFS                #IMPLIED
-                %common.attrib;
-                %local.indexterm.attrib;
->
-<!--end of indexterm.module-->]]>
-
-<!ENTITY % primsecter.module "INCLUDE">
-<![ %primsecter.module; [
-<!ENTITY % local.primsecter.attrib "">
-<!ENTITY % primsecter.role.attrib "%role.attrib;">
-<!ELEMENT (Primary | Secondary | Tertiary) - O ((%ndxterm.char.mix;)+)>
-<!ATTLIST (Primary | Secondary | Tertiary)
-                --SortAs: alternate sort string for index sorting--
-                SortAs                CDATA                #IMPLIED
-                %common.attrib;
->
-<!--end of primsecter.module-->]]>
-
-<!ENTITY % seeseealso.module "INCLUDE">
-<![ %seeseealso.module; [
-<!ENTITY % local.seeseealso.attrib "">
-<!ENTITY % seeseealso.role.attrib "%role.attrib;">
-<!ELEMENT (See | SeeAlso) - O ((%ndxterm.char.mix;)+)>
-<!ATTLIST (See | SeeAlso)
-                %common.attrib;
->
-<!--end of seeseealso.module-->]]>
-<!--end of indexterm.content.module-->]]>
-
-<!-- End of SolBook V2.0 information pool module .......................... -->
-<!-- ...................................................................... -->
-
-
-<!-- Redeclaration placeholder ..... -->
-
-<!ENTITY % intermod.redecl.module "IGNORE">
-<![ %intermod.redecl.module; [
-%rdbmods;
-<!--end of intermod.redecl.module-->]]>
-
-<!-- Document hierarchy ............ -->
-
-<!ENTITY % dbhier PUBLIC 
-  "-//Sun Microsystems//ELEMENTS DocBook Document Hierarchy V3.0-Based SolBook Subset V2.0//EN" >
-<!-- ...................................................................... -->
-<!-- SolBook V2.0 document hierarchy module ............................... -->
-<!-- File dbhier.mod ...................................................... -->
-
-<!-- This is SolBook 2.0, a subset of DocBook V3.0.
-     Copyright 1999 Sun Microsystems, Inc., All rights reserved.
-     $Id: @(#)dbhier.mod 1.12 99/06/18 SMI $
-
-     DocBook V3.0
-     Copyright 1992,1993,1994,1995,1996 HaL Computer Systems, Inc.,
-     O'Reilly & Associates, Inc., ArborText, Inc., and Fujitsu Software Corp.
-
-     Permission to use, copy, modify and distribute the DocBook DTD and its
-     accompanying documentation for any purpose and without fee is hereby
-     granted in perpetuity, provided that the above copyright notice and
-     this paragraph appear in all copies. The copyright holders make no
-     representation about the suitability of the DTD for any purpose.
-     It is provided "as is" without expressed or implied warranty.
--->
-
-<!-- ...................................................................... -->
-
-<!-- This module contains the definitions for the overall document
-     hierarchies of SolBook documents. It covers computer documentation
-     manuals and manual fragments, as well as reference entries (such as
-     man pages) and technical journals or anthologies containing articles.
-
-     This module depends on the SolBook information pool module.  All
-     elements and entities referenced but not defined here are assumed
-     to be defined in the information pool module.
-
-     In DTD driver files referring to this module, please use an entity
-     declaration that uses the public identifier shown below:
-
-     <!ENTITY % dbhier PUBLIC
-       "-//Sun Microsystems//ELEMENTS DocBook Document Hierarchy V3.0-Based SolBook Subset V2.0//EN">
-     %dbhier;
-
-     See the documentation for detailed information on the parameter entity
-     and module scheme used in DocBook, customizing DocBook and planning
-     for interchange, and changes made since the last release of DocBook.
-
-#file: dbhier.mod
--->
-
-<!-- ...................................................................... -->
-<!-- Entities for module inclusions ....................................... -->
-
-<!ENTITY % dbhier.redecl.module         "IGNORE">
-<!ENTITY % dbhier.redecl2.module        "IGNORE">
-
-<!-- ...................................................................... -->
-<!-- Entities for element classes ......................................... -->
-
-<!ENTITY % local.appendix.class "">
-<!ENTITY % appendix.class        "Appendix %local.appendix.class;">
-
-<!--
-<!ENTITY % local.article.class "">
-<!ENTITY % article.class        "Article %local.article.class">
- -->
-
-<!ENTITY % local.book.class "">
-<!ENTITY % book.class           "Book %local.book.class;">
-
-<!ENTITY % local.chapter.class "">
-<!ENTITY % chapter.class        "Chapter %local.chapter.class;">
-
-<!ENTITY % local.index.class "">
-<!ENTITY % index.class          "Index %local.index.class;">
-
-<!--
-<!ENTITY % local.info.class "">
-<!ENTITY % info.class           "DocInfo|Sect1Info|Sect2Info|Sect3Info
-                                |Sect4Info|Sect5Info %local.index.class;">
- -->
-
-<!ENTITY % local.refentry.class "">
-<!ENTITY % refentry.class       "RefEntry %local.refentry.class;">
-
-<!ENTITY % local.nav.class "">
-<!ENTITY % nav.class            "ToC|Index|Glossary|Bibliography 
-                                %local.nav.class;">
-
-<!-- Redeclaration placeholder ............................................ -->
-
-<!-- For redeclaring entities that are declared after this point while
-     retaining their references to the entities that are declared before
-     this point -->
-
-<![ %dbhier.redecl.module; [
-%rdbhier;
-<!--end of dbhier.redecl.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Entities for element mixtures ........................................ -->
-<!--BETA Removed descobj.class from divcomponent.mix-->
-
-<!ENTITY % local.divcomponent.mix "">
-<!ENTITY % divcomponent.mix
-                "%list.class;            |%admon.class;
-                |%linespecific.class;    |%synop.class;
-                |%para.class;            |%informal.class;
-                |%formal.class;          |%compound.class;
-                |%genobj.class           |Caution
-                |Note        |Tip        %local.divcomponent.mix;">
-
-<!--BETA Removed descobj.class from refcomponent.mix-->
-<!ENTITY % local.refcomponent.mix "">
-<!ENTITY % refcomponent.mix
-                "%list.class;            |%admon.class;
-                |%linespecific.class;    |%synop.class;
-                |%para.class;            |%informal.class;
-                |%formal.class;          |%compound.class;
-                |%genobj.class;          |Caution        
-                |Note        |Tip        %local.refcomponent.mix;">
-
-<!ENTITY % local.indexdivcomponent.mix "">
-<!ENTITY % indexdivcomponent.mix
-                "ItemizedList|OrderedList|VariableList
-                |%linespecific.class;    |%synop.class;
-                |%para.class;            |%informal.class;
-                |Comment
-                |%link.char.class;
-                %local.indexdivcomponent.mix;">
-
-<!ENTITY % local.refname.char.mix "">
-<!ENTITY % refname.char.mix
-                "#PCDATA
-                |%cptr.char.class;
-                %local.refname.char.mix;">
-
-<!ENTITY % local.partcontent.mix "">
-<!ENTITY % partcontent.mix
-                "%appendix.class;|%chapter.class;|%nav.class;
-                |Preface|%refentry.class;|Reference %local.partcontent.mix;">
-
-<!ENTITY % local.refinline.char.mix "">
-<!ENTITY % refinline.char.mix
-                "#PCDATA
-                |%xref.char.class;        |%word.char.class;
-                |%link.char.class;        |%cptr.char.class;
-                |%docinfo.char.class;
-                |%other.char.class;
-                %local.refinline.char.mix;">
-
-<!ENTITY % local.refclass.char.mix "">
-<!ENTITY % refclass.char.mix
-                "#PCDATA
-                |Application
-                %local.refclass.char.mix;">
-
-<!ENTITY % local.setinfo.char.mix "">
-<!ENTITY % setinfo.char.mix
-                "#PCDATA
-                |%docinfo.char.class;|Title|Copyright|CorpName|Date|Editor
-                |Edition|ISBN|LegalNotice|OrgName|PrintHistory|Publisher
-                |PubsNumber|ReleaseInfo|Subtitle|VolumeNum
-                %local.setinfo.char.mix;">
-
-<!-- Redeclaration placeholder 2 .......................................... -->
-
-<!-- For redeclaring entities that are declared after this point while
-     retaining their references to the entities that are declared before
-     this point -->
-
-<![ %dbhier.redecl2.module; [
-%rdbhier2;
-<!--end of dbhier.redecl2.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Entities for content models .......................................... -->
-
-<!ENTITY % div.title.content
-        "Title, TitleAbbrev?">
-
-<!ENTITY % bookcomponent.title.content
-        "Title, TitleAbbrev?">
-
-<!ENTITY % sect.title.content
-        "Title, TitleAbbrev?">
-
-<!ENTITY % refsect.title.content
-        "Title, TitleAbbrev?">
-
-<!ENTITY % bookcomponent.content
-        "((%divcomponent.mix;)+, 
-        (Sect1*|(%refentry.class;)*))
-        | (Sect1+|(%refentry.class;)+)">
-
-<!-- ...................................................................... -->
-
-<!-- ...................................................................... -->
-<!-- Book and BookInfo .................................................... -->
-
-<!ENTITY % book.content.module "INCLUDE">
-<![ %book.content.module; [
-<!ENTITY % book.module "INCLUDE">
-<![ %book.module; [
-<!ENTITY % local.book.attrib "">
-<!ENTITY % book.role.attrib "%role.attrib;">
-<!ELEMENT Book - O ((%div.title.content;), BookInfo, ToC?, Preface*,
-                (((%chapter.class;)+, Reference*) | (Part,Part+) | Reference+), 
-                (%appendix.class;)*, Glossary?, Bibliography?, 
-                (%index.class;)*)
-                +(%ubiq.mix;)>
-<!ATTLIST Book        
-                --FPI: Preferred formal public ID of book--
-                FPI                CDATA                #IMPLIED
-                Role    (SINGLE | NUMBERED | NUMBERED-NonConsecutivePg | 
-                        UNNUMBERED | UNNUMBERED-NonConsecutivePg )  #IMPLIED
-                Label         (ALPHA | BETA | PRE-FCS | FCS)          #IMPLIED
-                %common.attrib;                
->
-<!--end of book.module-->]]>
-
-<!ENTITY % bookinfo.module "INCLUDE">
-<![ %bookinfo.module; [
-<!ENTITY % local.bookinfo.attrib "">
-<!ENTITY % bookinfo.role.attrib "%role.attrib;">
-<!ELEMENT BookInfo - - (BookBiblio, (LegalNotice)+,
-        SubjectSet* , KeywordSet*, ModeSpec*)
-        -(IssueNum, %ubiq.mix;)>
-<!ATTLIST BookInfo
-        -- Contents: points to the IDs of the book pieces
-           in the order of their appearance--
-        Contents        IDREFS                #IMPLIED
-        Role ( None | All | LOT | LOF | LOC 
-               | LOT-LOF | LOT-LOC |  LOC-LOF) #IMPLIED
->
-<!--end of bookinfo.module-->]]>
-<!--end of book.content.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Dedication, ToC, and LoT ............................................. -->
-
-<!ENTITY % toc.content.module "INCLUDE">
-<![ %toc.content.module; [
-<!ENTITY % toc.module "INCLUDE">
-<![ %toc.module; [
-<!ENTITY % local.toc.attrib "">
-<!ENTITY % toc.role.attrib "%role.attrib;">
-<!ELEMENT ToC - O (ToCfront*)>
-<!--end of toc.module-->]]>
-
-<!--Changed para.char.mix to small.para.char.mix-->
-<!ENTITY % tocfront.module "INCLUDE">
-<![ %tocfront.module; [
-<!ENTITY % local.tocfront.attrib "">
-<!ENTITY % tocfront.role.attrib "%role.attrib;">
-<!ELEMENT ToCfront - O ((%small.para.char.mix;)+)>
-<!ATTLIST ToCfront
-                %label.attrib;
-                %pagenum.attrib;
-                %common.attrib;
->
-<!--end of tocfront.module-->]]>
-
-<!--end of toc.content.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->
-
-<!ENTITY % appendix.module "INCLUDE">
-<![ %appendix.module; [
-<!ENTITY % local.appendix.attrib "">
-<!ENTITY % appendix.role.attrib "%role.attrib;">
-<!ELEMENT Appendix - O ((%bookcomponent.title.content;), 
-                (%bookcomponent.content;)) +(%ubiq.mix;)>
-<!ATTLIST Appendix
-        %common.attrib;
-        Label           CDATA           #IMPLIED
-        Role            (MANPAGES)      #IMPLIED
-
->
-<!--end of appendix.module-->]]>
-
-<!ENTITY % chapter.module "INCLUDE">
-<![ %chapter.module; [
-<!ENTITY % local.chapter.attrib "">
-<!ENTITY % chapter.role.attrib "%role.attrib;">
-<!ELEMENT Chapter - O ((%bookcomponent.title.content;),
-                (%bookcomponent.content;), (Glossary | Bibliography)*)
-                +(%ubiq.mix;)>
-<!ATTLIST Chapter
-        %common.attrib;
-         Label           CDATA           #IMPLIED
-        Role            (MANPAGES)      #IMPLIED
-
->
-<!--end of chapter.module-->]]>
-
-<!ENTITY % part.module "INCLUDE">
-<![ %part.module; [
-<!ENTITY % local.part.attrib "">
-<!ENTITY % part.role.attrib "%role.attrib;">
-<!ELEMENT Part - - ((%bookcomponent.title.content;), PartIntro?,
-                (((Bibliography | %chapter.class; | Glossary | Reference)+ ) |
-                  (%appendix.class;)+ )) +(%ubiq.mix;)>
-<!ATTLIST Part
-                %common.attrib;
->
-<!--ELEMENT PartIntro (defined below)-->
-<!--end of part.module-->]]>
-
-<!ENTITY % preface.module "INCLUDE">
-<![ %preface.module; [
-<!ENTITY % local.preface.attrib "">
-<!ENTITY % preface.role.attrib "%role.attrib;">
-<!ELEMENT Preface - O ((%bookcomponent.title.content;), 
-                (%bookcomponent.content;)) +(%ubiq.mix;)>
-<!ATTLIST Preface
-        %common.attrib;
-        Role    (PREFACE | INTRODUCTION) PREFACE
->
-<!--end of preface.module-->]]>
-
-<!ENTITY % reference.module "INCLUDE">
-<![ %reference.module; [
-<!ENTITY % local.reference.attrib "">
-<!ENTITY % reference.role.attrib "%role.attrib;">
-<!ELEMENT Reference - O ((%bookcomponent.title.content;), PartIntro?,
-                (%refentry.class;)+) +(%ubiq.mix;)>
-<!ATTLIST Reference
-        %common.attrib;
-        Label                CDATA                #IMPLIED        
->
-<!--ELEMENT PartIntro (defined below)-->
-<!--end of reference.module-->]]>
-
-<!ENTITY % partintro.module "INCLUDE">
-<![ %partintro.module; [
-<!ENTITY % local.partintro.attrib "">
-<!ENTITY % partintro.role.attrib "%role.attrib;">
-<!ELEMENT PartIntro - O (%bookcomponent.content;) +(%ubiq.mix;)>
-<!ATTLIST PartIntro        
-        %common.attrib;
-        Role    (MANPAGES | NO-MANPAGES) NO-MANPAGES        
->
-<!--end of partintro.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Info elements ........................................................ -->
-
-
-<!-- ...................................................................... -->
-<!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->
-
-<!ENTITY % sect1.module "INCLUDE">
-<![ %sect1.module; [
-<!ENTITY % local.sect1.attrib "">
-<!ENTITY % sect1.role.attrib "%role.attrib;">
-<!ELEMENT Sect1 - O ((%sect.title.content;), (((%divcomponent.mix;)+, 
-                ((%refentry.class;)* | Sect2*))
-                | (%refentry.class;)+ | Sect2+)) +(%ubiq.mix;)>
-<!ATTLIST Sect1
-                %label.attrib;
-                %common.attrib;
->
-<!--end of sect1.module-->]]>
-
-<!ENTITY % sect2.module "INCLUDE">
-<![ %sect2.module; [
-<!ENTITY % local.sect2.attrib "">
-<!ENTITY % sect2.role.attrib "%role.attrib;">
-<!ELEMENT Sect2 - O ((%sect.title.content;), (((%divcomponent.mix;)+, 
-                ((%refentry.class;)* | Sect3*)) | (%refentry.class;)+ 
-                | Sect3+))>
-<!ATTLIST Sect2
-        %label.attrib;
-        %common.attrib;
-        Role                (PROCEDURE)                #IMPLIED        
->
-<!--end of sect2.module-->]]>
-
-<!ENTITY % sect3.module "INCLUDE">
-<![ %sect3.module; [
-<!ENTITY % local.sect3.attrib "">
-<!ENTITY % sect3.role.attrib "%role.attrib;">
-<!ELEMENT Sect3 - O ((%sect.title.content;), (((%divcomponent.mix;)+, 
-                ((%refentry.class;)* | Sect4*)) | (%refentry.class;)+ 
-                | Sect4+))>
-<!ATTLIST Sect3
-                %label.attrib;
-                %common.attrib;
-        Role                (PROCEDURE)                #IMPLIED
->
-<!--end of sect3.module-->]]>
-
-<!ENTITY % sect4.module "INCLUDE">
-<![ %sect4.module; [
-<!ENTITY % local.sect4.attrib "">
-<!ENTITY % sect4.role.attrib "%role.attrib;">
-<!ELEMENT Sect4 - O ((%sect.title.content;), ((%divcomponent.mix;)+)) > 
-<!ATTLIST Sect4
-                %label.attrib;
-                %common.attrib;
->
-<!--end of sect4.module-->]]>
-
-
-
-<!-- ...................................................................... -->
-<!-- Bibliography ......................................................... -->
-
-<!ENTITY % bibliography.content.module "INCLUDE">
-<![ %bibliography.content.module; [
-<!ENTITY % bibliography.module "INCLUDE">
-<![ %bibliography.module; [
-<!ENTITY % local.bibliography.attrib "">
-<!ENTITY % bibliography.role.attrib "%role.attrib;">
-<!ELEMENT Bibliography - O ((%bookcomponent.title.content;),
-                (%component.mix;)*, 
-                (BiblioDiv+ | (BiblioEntry)+))>
-<!ATTLIST Bibliography
-                %status.attrib;
-                %common.attrib;
->
-<!--end of bibliography.module-->]]>
-
-<!ENTITY % bibliodiv.module "INCLUDE">
-<![ %bibliodiv.module; [
-<!ENTITY % local.bibliodiv.attrib "">
-<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
-<!ELEMENT BiblioDiv - O ((%sect.title.content;), (%component.mix;)*,
-                (BiblioEntry)+)>
-<!ATTLIST BiblioDiv
-                %status.attrib;
-                %common.attrib;
->
-<!--end of bibliodiv.module-->]]>
-<!--end of bibliography.content.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Glossary ............................................................. -->
-
-<!ENTITY % glossary.content.module "INCLUDE">
-<![ %glossary.content.module; [
-<!ENTITY % glossary.module "INCLUDE">
-<![ %glossary.module; [
-<!ENTITY % local.glossary.attrib "">
-<!ENTITY % glossary.role.attrib "%role.attrib;">
-<!ELEMENT Glossary - O ((%bookcomponent.title.content;)?, (%component.mix;)*,
-                (GlossDiv+ | GlossEntry+), Bibliography?)>
-<!ATTLIST Glossary
-                %status.attrib;
-                %common.attrib;
->
-<!--end of glossary.module-->]]>
-
-<!ENTITY % glossdiv.module "INCLUDE">
-<![ %glossdiv.module; [
-<!ENTITY % local.glossdiv.attrib "">
-<!ENTITY % glossdiv.role.attrib "%role.attrib;">
-<!ELEMENT GlossDiv - O ((%sect.title.content;), (%component.mix;)*,
-                GlossEntry+)>
-<!ATTLIST GlossDiv
-                %status.attrib;
-                %common.attrib;
->
-<!--end of glossdiv.module-->]]>
-<!--end of glossary.content.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Index and SetIndex ................................................... -->
-
-<!ENTITY % index.content.module "INCLUDE">
-<![ %index.content.module; [
-<!ENTITY % indexes.module "INCLUDE">
-<![ %indexes.module; [
-<!ENTITY % local.indexes.attrib "">
-<!ENTITY % indexes.role.attrib "%role.attrib;">
-<!ELEMENT (%index.class;) - O ((%bookcomponent.title.content;)?,
-                (%component.mix;)*, (IndexDiv+ | IndexEntry+))
-                -(%ndxterm.class;)>
-<!ATTLIST (%index.class;)
-                %common.attrib;
->
-<!--end of indexes.module-->]]>
-
-<!ENTITY % indexdiv.module "INCLUDE">
-<![ %indexdiv.module; [
-
-<!-- SegmentedList in this content is useful for marking up permuted
-     indices. -->
-
-<!ENTITY % local.indexdiv.attrib "">
-<!ENTITY % indexdiv.role.attrib "%role.attrib;">
-<!ELEMENT IndexDiv - O ((%sect.title.content;)?, ((%indexdivcomponent.mix;)*,
-                (IndexEntry+ | SegmentedList)))>
-<!ATTLIST IndexDiv
-                %common.attrib;
->
-<!--end of indexdiv.module-->]]>
-
-<!ENTITY % indexentry.module "INCLUDE">
-<![ %indexentry.module; [
-<!-- Index entries appear in the index, not the text. -->
-
-<!ENTITY % local.indexentry.attrib "">
-<!ENTITY % indexentry.role.attrib "%role.attrib;">
-<!ELEMENT IndexEntry - O (PrimaryIE, (SeeIE|SeeAlsoIE)*,
-                (SecondaryIE, (SeeIE|SeeAlsoIE|TertiaryIE)*)*)>
-<!ATTLIST IndexEntry
-                %common.attrib;
->
-<!--end of indexentry.module-->]]>
-
-<!ENTITY % primsecterie.module "INCLUDE">
-<![ %primsecterie.module; [
-<!ENTITY % local.primsecterie.attrib "">
-<!ENTITY % primsecterie.role.attrib "%role.attrib;">
-<!ELEMENT (PrimaryIE | SecondaryIE | TertiaryIE) - O ((%ndxterm.char.mix;)+)>
-<!ATTLIST (PrimaryIE | SecondaryIE | TertiaryIE)
-                %linkends.attrib; --to IndexTerms that these entries represent--
-                %common.attrib;
->
-<!--end of primsecterie.module-->]]>
-        
-<!ENTITY % seeie.module "INCLUDE">
-<![ %seeie.module; [
-<!ENTITY % local.seeie.attrib "">
-<!ENTITY % seeie.role.attrib "%role.attrib;">
-<!ELEMENT SeeIE - O ((%ndxterm.char.mix;)+)>
-<!ATTLIST SeeIE
-                %linkend.attrib; --to IndexEntry to look up--
-                %common.attrib;
->
-<!--end of seeie.module-->]]>
-
-<!ENTITY % seealsoie.module "INCLUDE">
-<![ %seealsoie.module; [
-<!ENTITY % local.seealsoie.attrib "">
-<!ENTITY % seealsoie.role.attrib "%role.attrib;">
-<!ELEMENT SeeAlsoIE - O ((%ndxterm.char.mix;)+)>
-<!ATTLIST SeeAlsoIE
-                %linkends.attrib; --to related IndexEntries--
-                %common.attrib;
->
-<!--end of seealsoie.module-->]]>
-<!--end of index.content.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- RefEntry ............................................................. -->
-
-<!ENTITY % refentry.content.module "INCLUDE">
-<![ %refentry.content.module; [
-<!ENTITY % refentry.module "INCLUDE">
-<![ %refentry.module; [
-<!ENTITY % local.refentry.attrib "">
-<!ENTITY % refentry.role.attrib "%role.attrib;">
-<!ELEMENT RefEntry - O (RefMeta, (Comment|%link.char.class;)*,
-                RefNameDiv, RefSynopsisDiv?, RefSect1+) +(%ubiq.mix;)>
-<!ATTLIST RefEntry
-                %status.attrib;
-                %common.attrib;
->
-<!--end of refentry.module-->]]>
-
-<!ENTITY % refmeta.module "INCLUDE">
-<![ %refmeta.module; [
-<!ENTITY % local.refmeta.attrib "">
-<!ENTITY % refmeta.role.attrib "%role.attrib;">
-<!ELEMENT RefMeta - - (RefEntryTitle, ManVolNum?, (RefMiscInfo,
-                RefMiscInfo, RefMiscInfo, RefMiscInfo, RefMiscInfo),
-                RefMiscInfo*) -(BeginPage)>
-<!ATTLIST RefMeta
-                %common.attrib;
->
-<!--end of refmeta.module-->]]>
-
-<!ENTITY % refmiscinfo.module "INCLUDE">
-<![ %refmiscinfo.module; [
-<!ENTITY % local.refmiscinfo.attrib "">
-<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
-<!ELEMENT RefMiscInfo - - ((%docinfo.char.mix;)+)>
-<!ATTLIST RefMiscInfo
-        Class        (Date | SectDesc | Software | Arch | Copyright)        #REQUIRED
-                %common.attrib;
->
-<!--end of refmiscinfo.module-->]]>
-
-<!ENTITY % refnamediv.module "INCLUDE">
-<![ %refnamediv.module; [
-<!ENTITY % local.refnamediv.attrib "">
-<!ENTITY % refnamediv.role.attrib "%role.attrib;">
-<!ELEMENT RefNameDiv - O (RefDescriptor?, RefName+, RefPurpose,
-                (Comment|%link.char.class;)*)>
-<!ATTLIST RefNameDiv
-                %common.attrib;
->
-<!--end of refnamediv.module-->]]>
-
-<!ENTITY % refdescriptor.module "INCLUDE">
-<![ %refdescriptor.module; [
-<!ENTITY % local.refdescriptor.attrib "">
-<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
-<!ELEMENT RefDescriptor - O ((%refname.char.mix;)+)>
-<!ATTLIST RefDescriptor
-                %common.attrib;
->
-<!--end of refdescriptor.module-->]]>
-
-<!ENTITY % refname.module "INCLUDE">
-<![ %refname.module; [
-<!ENTITY % local.refname.attrib "">
-<!ENTITY % refname.role.attrib "%role.attrib;">
-<!ELEMENT RefName - O ((%refname.char.mix;)+)>
-<!ATTLIST RefName
-                %common.attrib;
->
-<!--end of refname.module-->]]>
-
-<!ENTITY % refpurpose.module "INCLUDE">
-<![ %refpurpose.module; [
-<!ENTITY % local.refpurpose.attrib "">
-<!ENTITY % refpurpose.role.attrib "%role.attrib;">
-<!ELEMENT RefPurpose - O ((%refinline.char.mix;)+)>
-<!ATTLIST RefPurpose
-                %common.attrib;
->
-<!--end of refpurpose.module-->]]>
-
-<!ENTITY % refsynopsisdiv.module "INCLUDE">
-<![ %refsynopsisdiv.module; [
-<!ENTITY % local.refsynopsisdiv.attrib "">
-<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
-<!ELEMENT RefSynopsisDiv - O ((%refsect.title.content;)?,
-                (((Synopsis | CmdSynopsis | FuncSynopsis)+, RefSect2*) 
-                | (RefSect2+)))>
-<!ATTLIST RefSynopsisDiv
-                %common.attrib;
->
-<!--end of refsynopsisdiv.module-->]]>
-
-<!ENTITY % refsect1.module "INCLUDE">
-<![ %refsect1.module; [
-<!ENTITY % local.refsect1.attrib "">
-<!ENTITY % refsect1.role.attrib "%role.attrib;">
-<!ELEMENT RefSect1 - O ((%refsect.title.content;),
-                (((%refcomponent.mix;)+, RefSect2*) | RefSect2+))>
-<!ATTLIST RefSect1
-                %status.attrib;
-                %common.attrib;
->
-<!--end of refsect1.module-->]]>
-
-<!ENTITY % refsect2.module "INCLUDE">
-<![ %refsect2.module; [
-<!ENTITY % local.refsect2.attrib "">
-<!ENTITY % refsect2.role.attrib "%role.attrib;">
-<!ELEMENT RefSect2 - O ((%refsect.title.content;),
-                (((%refcomponent.mix;)+, RefSect3*) | RefSect3+))>
-<!ATTLIST RefSect2
-                %status.attrib;
-                %common.attrib;
->
-<!--end of refsect2.module-->]]>
-
-<!ENTITY % refsect3.module "INCLUDE">
-<![ %refsect3.module; [
-<!ENTITY % local.refsect3.attrib "">
-<!ENTITY % refsect3.role.attrib "%role.attrib;">
-<!ELEMENT RefSect3 - O ((%refsect.title.content;), (%refcomponent.mix;)+)>
-<!ATTLIST RefSect3
-                %status.attrib;
-                %common.attrib;
->
-<!--end of refsect3.module-->]]>
-<!--end of refentry.content.module-->]]>
-
-<!-- ...................................................................... -->
-<!-- Article .............................................................. -->
-
-<!-- End of SolBook V2.0 document hierarchy module ........................ -->
-<!-- ...................................................................... -->
-
-<!-- End of DocBook DTD V3.0-Based SolBook Subset V2.0 .................... -->
-<!-- ...................................................................... -->
--- a/usr/src/cmd/man/src/util/sun_iso.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +0,0 @@
-<!-- Character entity set for use with the SolBook v.2 DTD.
- ident	"%Z%%M%	%I%	%E% SMI"
-	 This is a subset of the ISO entities
-	 (C) 1997, Sun Microsystems Inc.
--->
-<!-- (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-
-<!ENTITY AElig  SDATA "[AElig ]"--=capital AE diphthong (ligature)-->
-<!ENTITY Aacute SDATA "[Aacute]"--=capital A, acute accent-->
-<!ENTITY Acirc  SDATA "[Acirc ]"--=capital A, circumflex accent-->
-<!ENTITY Agrave SDATA "[Agrave]"--=capital A, grave accent-->
-<!ENTITY Aring  SDATA "[Aring ]"--=capital A, ring-->
-<!ENTITY Atilde SDATA "[Atilde]"--=capital A, tilde-->
-<!ENTITY Auml   SDATA "[Auml  ]"--=capital A, dieresis or umlaut mark-->
-<!ENTITY Ccedil SDATA "[Ccedil]"--=capital C, cedilla-->
-<!ENTITY ETH    SDATA "[ETH   ]"--=capital Eth, Icelandic-->
-<!ENTITY Eacute SDATA "[Eacute]"--=capital E, acute accent-->
-<!ENTITY Ecirc  SDATA "[Ecirc ]"--=capital E, circumflex accent-->
-<!ENTITY Egrave SDATA "[Egrave]"--=capital E, grave accent-->
-<!ENTITY Iacute SDATA "[Iacute]"--=capital I, acute accent-->
-<!ENTITY Icirc  SDATA "[Icirc ]"--=capital I, circumflex accent-->
-<!ENTITY Igrave SDATA "[Igrave]"--=capital I, grave accent-->
-<!ENTITY Iuml   SDATA "[Iuml  ]"--=capital I, dieresis or umlaut mark-->
-<!ENTITY Ntilde SDATA "[Ntilde]"--=capital N, tilde-->
-<!ENTITY Oacute SDATA "[Oacute]"--=capital O, acute accent-->
-<!ENTITY Ocirc  SDATA "[Ocirc ]"--=capital O, circumflex accent-->
-<!ENTITY Ograve SDATA "[Ograve]"--=capital O, grave accent-->
-<!ENTITY Oslash SDATA "[Oslash]"--=capital O, slash-->
-<!ENTITY Otilde SDATA "[Otilde]"--=capital O, tilde-->
-<!ENTITY Ouml   SDATA "[Ouml  ]"--=capital O, dieresis or umlaut mark-->
-<!ENTITY THORN  SDATA "[THORN ]"--=capital THORN, Icelandic-->
-<!ENTITY Uacute SDATA "[Uacute]"--=capital U, acute accent-->
-<!ENTITY Ucirc  SDATA "[Ucirc ]"--=capital U, circumflex accent-->
-<!ENTITY Ugrave SDATA "[Ugrave]"--=capital U, grave accent-->
-<!ENTITY Uuml   SDATA "[Uuml  ]"--=capital U, dieresis or umlaut mark-->
-<!ENTITY Yacute SDATA "[Yacute]"--=capital Y, acute accent-->
-<!ENTITY aacute SDATA "[aacute]"--=small a, acute accent-->
-<!ENTITY acirc  SDATA "[acirc ]"--=small a, circumflex accent-->
-<!ENTITY acute  SDATA "[acute ]"--=acute accent-->
-<!ENTITY aelig  SDATA "[aelig ]"--=small ae diphthong (ligature)-->
-<!ENTITY agrave SDATA "[agrave]"--=small a, grave accent-->
-<!ENTITY amp    SDATA "[amp   ]"--=ampersand-->
-<!ENTITY and    SDATA "[and   ]"--/wedge /land B: =logical and-->
-<!ENTITY ap     SDATA "[ap    ]"--/approx R: =approximate-->
-<!ENTITY aring  SDATA "[aring ]"--=small a, ring-->
-<!ENTITY ast    SDATA "[ast   ]"--/ast B: =asterisk-->
-<!ENTITY atilde SDATA "[atilde]"--=small a, tilde-->
-<!ENTITY auml   SDATA "[auml  ]"--=small a, dieresis or umlaut mark-->
-<!ENTITY brvbar SDATA "[brvbar]"--=broken (vertical) bar-->
-<!ENTITY bsol   SDATA "[bsol  ]"--/backslash =reverse solidus-->
-<!ENTITY boxv   SDATA "[boxv  ]"--vertical line-->
-<!ENTITY bull   SDATA "[bull  ]"--/bullet B: =round bullet, filled-->
-<!ENTITY caret  SDATA "[caret ]"--=caret (insertion mark)-->
-<!ENTITY ccedil SDATA "[ccedil]"--=small c, cedilla-->
-<!ENTITY cedil  SDATA "[cedil ]"--=cedilla-->
-<!ENTITY cent   SDATA "[cent  ]"--=cent sign-->
-<!ENTITY check  SDATA "[check ]"--/checkmark =tick, check mark-->
-<!ENTITY auml   SDATA "[auml  ]"--=small a, dieresis or umlaut mark-->
-<!ENTITY brvbar SDATA "[brvbar]"--=broken (vertical) bar-->
-<!ENTITY bull   SDATA "[bull  ]"--/bullet B: =round bullet, filled-->
-<!ENTITY ccedil SDATA "[ccedil]"--=small c, cedilla-->
-<!ENTITY cedil  SDATA "[cedil ]"--=cedilla-->
-<!ENTITY cent   SDATA "[cent  ]"--=cent sign-->
-<!ENTITY check  SDATA "[check ]"--/checkmark =tick, check mark-->
-<!ENTITY circ   SDATA "[circ  ]"--=circumflex accent-->
-<!ENTITY colon  SDATA "[colon ]"--/colon P:-->
-<!ENTITY comma  SDATA "[comma ]"--P: =comma-->
-<!ENTITY commat SDATA "[commat]"--=commercial at-->
-<!ENTITY cong   SDATA "[cong  ]"--/cong R: =congruent with-->
-<!ENTITY copy   SDATA "[copy  ]"--=copyright sign-->
-<!ENTITY cross  SDATA "[ballot]"--=ballot cross-->
-<!ENTITY curren SDATA "[curren]"--=general currency sign-->
-<!ENTITY dash   SDATA "[dash  ]"--=hyphen (true graphic)-->
-<!ENTITY deg    SDATA "[deg   ]"--=degree sign-->
-<!ENTITY diam   SDATA "[diam  ]"--/diamond B: open diamond-->
-<!ENTITY diams  SDATA "[diams ]"--/diamondsuit =diamond suit symbol-->
-<!ENTITY divide SDATA "[divide]"--/div B: =divide sign-->
-<!ENTITY dollar SDATA "[dollar]"--=dollar sign-->
-<!ENTITY eacute SDATA "[eacute]"--=small e, acute accent-->
-<!ENTITY ecirc  SDATA "[ecirc ]"--=small e, circumflex accent-->
-<!ENTITY egrave SDATA "[egrave]"--=small e, grave accent-->
-<!ENTITY emsp   SDATA "[emsp  ]"--=em space-->
-<!ENTITY emsp13 SDATA "[emsp3 ]"--=1/3-em space-->
-<!ENTITY emsp14 SDATA "[emsp4 ]"--=1/4-em space-->
-<!ENTITY ensp   SDATA "[ensp  ]"--=en space (1/2-em)-->
-<!ENTITY equals SDATA "[equals]"--=equals sign R:-->
-<!ENTITY eth    SDATA "[eth   ]"--=small eth, Icelandic-->
-<!ENTITY euml   SDATA "[euml  ]"--=small e, dieresis or umlaut mark-->
-<!ENTITY excl   SDATA "[excl  ]"--=exclamation mark-->
-<!ENTITY exist  SDATA "[exist ]"--/exists =at least one exists-->
-<!ENTITY forall SDATA "[forall]"--/forall =for all-->
-<!ENTITY frac12 SDATA "[frac12]"--=fraction one-half-->
-<!ENTITY frac13 SDATA "[frac13]"--=fraction one-third-->
-<!ENTITY frac14 SDATA "[frac14]"--=fraction one-quarter-->
-<!ENTITY frac15 SDATA "[frac15]"--=fraction one-fifth-->
-<!ENTITY frac34 SDATA "[frac34]"--=fraction three-quarters-->
-<!ENTITY ge     SDATA "[ge    ]"--/geq /ge R: =greater-than-or-equal-->
-<!ENTITY gl     SDATA "[gl    ]"--/gtrless R: greater, less-->
-<!ENTITY grave  SDATA "[grave ]"--=grave accent-->
-<!ENTITY gt     SDATA "[gt    ]"--=greater-than sign R:-->
-<!ENTITY hairsp SDATA "[hairsp]"--=hair space-->
-<!ENTITY harr   SDATA "[harr  ]"--/leftrightarrow A: l&r arrow -->
-<!ENTITY hellip SDATA "[hellip]"--=ellipsis (horizontal)-->
-<!ENTITY hyphen SDATA "[hyphen]"--=hyphen-->
-<!ENTITY iacute SDATA "[iacute]"--=small i, acute accent-->
-<!ENTITY icirc  SDATA "[icirc ]"--=small i, circumflex accent-->
-<!ENTITY iexcl  SDATA "[iexcl ]"--=inverted exclamation mark-->
-<!ENTITY igrave SDATA "[igrave]"--=small i, grave accent-->
-<!ENTITY infin  SDATA "[infin ]"--/infty =infinity-->
-<!ENTITY iquest SDATA "[iquest]"--=inverted question mark-->
-<!ENTITY iuml   SDATA "[iuml  ]"--=small i, dieresis or umlaut mark-->
-<!ENTITY lAarr  SDATA "[lAarr ]"--/Lleftarrow A: left triple arrow -->
-<!ENTITY lArr   SDATA "[lArr  ]"--/Leftarrow A: =is implied by-->
-<!ENTITY laquo  SDATA "[laquo ]"--=angle quotation mark, left-->
-<!ENTITY larr   SDATA "[larr  ]"--/leftarrow /gets A: =leftward arrow-->
-<!ENTITY lcub   SDATA "[lcub  ]"--/lbrace O: =left curly bracket-->
-<!ENTITY ldquo  SDATA "[ldquo ]"--=double quotation mark, left-->
-<!ENTITY ldquor SDATA "[ldquor]"--=rising dbl quote, left (low)-->
-<!ENTITY le     SDATA "[le    ]"--/leq /le R: =less-than-or-equal-->
-<!ENTITY lg     SDATA "[lg    ]"--/lessgtr R: less, greater-->
-<!ENTITY lgr    SDATA "[lgr   ]"--=small lambda, Greek-->
-<!ENTITY lowbar SDATA "[lowbar]"--=low line-->
-<!ENTITY loz    SDATA "[loz   ]"--/lozenge - lozenge or total mark-->
-<!ENTITY lpar   SDATA "[lpar  ]"--O: =left parenthesis-->
-<!ENTITY lsqb   SDATA "[lsqb  ]"--/lbrack O: =left square bracket-->
-<!ENTITY lsquo  SDATA "[lsquo ]"--=single quotation mark, left-->
-<!ENTITY lsquor SDATA "[lsquor]"--=rising single quote, left (low)-->
-<!ENTITY lt     SDATA "[lt    ]"--=less-than sign R:-->
-<!ENTITY macr   SDATA "[macr  ]"--=macron-->
-<!ENTITY mdash  SDATA "[mdash ]"--=em dash-->
-<!ENTITY micro  SDATA "[micro ]"--=micro sign-->
-<!ENTITY middot SDATA "[middot]"--/centerdot B: =middle dot-->
-<!ENTITY minus  SDATA "[minus ]"--B: =minus sign-->
-<!ENTITY mnplus SDATA "[mnplus]"--/mp B: =minus-or-plus sign-->
-<!ENTITY nabla  SDATA "[nabla ]"--/nabla =del, Hamilton operator-->
-<!ENTITY nbsp   SDATA "[nbsp  ]"--=no break (required) space-->
-<!ENTITY ndash  SDATA "[ndash ]"--=en dash -->
-<!ENTITY ne     SDATA "[ne    ]"--/ne /neq R: =not equal-->
-<!ENTITY not    SDATA "[not   ]"--/neg /lnot =not sign-->
-<!ENTITY ntilde SDATA "[ntilde]"--=small n, tilde-->
-<!ENTITY num    SDATA "[num   ]"--=number sign-->
-<!ENTITY numsp  SDATA "[numsp ]"--=digit space (width of a number)-->
-<!ENTITY oacute SDATA "[oacute]"--=small o, acute accent-->
-<!ENTITY ocirc  SDATA "[ocirc ]"--=small o, circumflex accent-->
-<!ENTITY ograve SDATA "[ograve]"--=small o, grave accent-->
-<!ENTITY or     SDATA "[or    ]"--/vee /lor B: =logical or-->
-<!ENTITY ordf   SDATA "[ordf  ]"--=ordinal indicator, feminine-->
-<!ENTITY ordm   SDATA "[ordm  ]"--=ordinal indicator, masculine-->
-<!ENTITY oslash SDATA "[oslash]"--=small o, slash-->
-<!ENTITY otilde SDATA "[otilde]"--=small o, tilde-->
-<!ENTITY ouml   SDATA "[ouml  ]"--=small o, dieresis or umlaut mark-->
-<!ENTITY para   SDATA "[para  ]"--=pilcrow (paragraph sign)-->
-<!ENTITY percnt SDATA "[percnt]"--=percent sign-->
-<!ENTITY period SDATA "[period]"--=full stop, period-->
-<!ENTITY plus   SDATA "[plus  ]"--=plus sign B:-- >
-<!ENTITY plusmn SDATA "[plusmn]"--/pm B: =plus-or-minus sign-->
-<!ENTITY pound  SDATA "[pound ]"--=pound sign-->
-<!ENTITY quest  SDATA "[quest ]"--=question mark-->
-<!ENTITY quot   SDATA "[quot  ]"--=quotation mark-->
-<!ENTITY rAarr  SDATA "[rAarr ]"--/Rrightarrow A: right triple arrow -->
-<!ENTITY rArr   SDATA "[rArr  ]"--/Rightarrow A: =implies-->
-<!ENTITY rarr   SDATA "[rarr  ]"--/rightarrow /to A: =rightward arrow-->
-<!ENTITY raquo  SDATA "[raquo ]"--=angle quotation mark, right-->
-<!ENTITY rcub   SDATA "[rcub  ]"--/rbrace C: =right curly bracket-->
-<!ENTITY rdquo  SDATA "[rdquo ]"--=double quotation mark, right-->
-<!ENTITY rdquor SDATA "[rdquor]"--rising dbl quote, right (high)-->
-<!ENTITY reg    SDATA "[reg   ]"--/circledR =registered sign-->
-<!ENTITY ring   SDATA "[ring  ]"--=ring-->
-<!ENTITY rpar   SDATA "[rpar  ]"--C: =right parenthesis-->
-<!ENTITY rsqb   SDATA "[rsqb  ]"--/rbrack C: =right square bracket-->
-<!ENTITY rsquo  SDATA "[rsquo ]"--=single quotation mark, right-->
-<!ENTITY rsquor SDATA "[rsquor]"--rising single quote, right (high)-->
-<!ENTITY sect   SDATA "[sect  ]"--=section sign-->
-<!ENTITY semi   SDATA "[semi  ]"--=semicolon P:-->
-<!ENTITY shy    SDATA "[shy   ]"--=soft hyphen-->
-<!ENTITY sol    SDATA "[sol   ]"--=solidus-->
-<!ENTITY sup1   SDATA "[sup1  ]"--=superscript one-->
-<!ENTITY sup2   SDATA "[sup2  ]"--=superscript two-->
-<!ENTITY sup3   SDATA "[sup3  ]"--=superscript three-->
-<!ENTITY szlig  SDATA "[szlig ]"--=small sharp s, German (sz ligature)-->
-<!ENTITY thorn  SDATA "[thorn ]"--=small thorn, Icelandic-->
-<!ENTITY tilde  SDATA "[tilde ]"--=tilde-->
-<!ENTITY thinsp SDATA "[thinsp]"--=thin space (1/6-em)-->
-<!ENTITY times  SDATA "[times ]"--/times B: =multiply sign-->
-<!ENTITY trade  SDATA "[trade ]"--=trade mark sign-->
-<!ENTITY uacute SDATA "[uacute]"--=small u, acute accent-->
-<!ENTITY ucirc  SDATA "[ucirc ]"--=small u, circumflex accent-->
-<!ENTITY ugrave SDATA "[ugrave]"--=small u, grave accent-->
-<!ENTITY uml    SDATA "[uml   ]"--=umlaut mark-->
-<!ENTITY uuml   SDATA "[uuml  ]"--=small u, dieresis or umlaut mark-->
-<!ENTITY vellip SDATA "[vellip]"--vertical ellipsis-->
-<!ENTITY verbar SDATA "[verbar]"--/vert =vertical bar-->
-<!ENTITY yacute SDATA "[yacute]"--=small y, acute accent-->
-<!ENTITY yen    SDATA "[yen   ]"--/yen =yen sign-->
-<!ENTITY yuml   SDATA "[yuml  ]"--=small y, dieresis or umlaut mark-->
--- a/usr/src/cmd/man/src/util/synref.gml	Fri Aug 17 14:11:30 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-<!--
-    Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License, Version 1.0 only
-    (the "License").  You may not use this file except in compliance
-    with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!-- SCCS keyword
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
--->
-SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
-		18 19 20 21 22 23 24 25 26 27 28 29 30 31 127 255
-BASESET  "ISO 646-1983//CHARSET
-          International Reference Version (IRV)//ESC 2/5 4/0"
-DESCSET  0	128	0
-FUNCTION RE	13
-	 RS	10
-	 SPACE	32
-	 TAB	SEPCHAR	9
-NAMING	 LCNMSTRT ""
-	 UCNMSTRT ""
-	 LCNMCHAR "-."
-	 UCNMCHAR "-."
-	 NAMECASE GENERAL YES
-		  ENTITY  NO
-DELIM	 GENERAL SGMLREF
-	 SHORTREF SGMLREF
-NAMES	 SGMLREF
-QUANTITY SGMLREF
-	ATTCNT		40
-	ATTSPLEN	960
-	BSEQLEN		960
-	DTAGLEN		16
-	DTEMPLEN	16
-	ENTLVL		16
-	GRPCNT		32
-	GRPGTCNT	96
-	GRPLVL		16
-	LITLEN		240
-	NAMELEN		8
-	NORMSEP		2
-	PILEN		240
-	TAGLEN		960
-	TAGLVL		24
Binary file usr/src/cmd/man/src/util/warn.eps has changed
--- a/usr/src/pkg/manifests/developer-build-onbld.mf	Fri Aug 17 14:11:30 2012 -0400
+++ b/usr/src/pkg/manifests/developer-build-onbld.mf	Sat Aug 18 05:52:16 2012 -0500
@@ -59,7 +59,6 @@
 dir path=opt/onbld/lib/python2.6/onbld/hgext
 dir path=opt/onbld/man
 dir path=opt/onbld/man/man1
-dir path=opt/onbld/man/sman1
 $(i386_ONLY)file path=opt/onbld/bin/$(ARCH)/aw mode=0555
 $(sparc_ONLY)file path=opt/onbld/bin/$(ARCH)/chk4ubin mode=0555
 file path=opt/onbld/bin/$(ARCH)/codereview mode=0555
@@ -235,6 +234,7 @@
 file path=opt/onbld/man/man1/find_elf.1
 file path=opt/onbld/man/man1/findunref.1
 file path=opt/onbld/man/man1/flg.flp.1
+file path=opt/onbld/man/man1/get_depend_info.1
 file path=opt/onbld/man/man1/git-pbchk.1
 file path=opt/onbld/man/man1/hdrchk.1
 file path=opt/onbld/man/man1/hgsetup.1
@@ -242,6 +242,7 @@
 file path=opt/onbld/man/man1/interface_cmp.1
 file path=opt/onbld/man/man1/jstyle.1
 file path=opt/onbld/man/man1/lintdump.1
+file path=opt/onbld/man/man1/make_pkg_db.1
 file path=opt/onbld/man/man1/mapfilechk.1
 file path=opt/onbld/man/man1/ndrgen.1
 file path=opt/onbld/man/man1/nightly.1
@@ -254,8 +255,6 @@
 file path=opt/onbld/man/man1/ws.1
 file path=opt/onbld/man/man1/wsdiff.1
 file path=opt/onbld/man/man1/xref.1
-file path=opt/onbld/man/sman1/get_depend_info.1
-file path=opt/onbld/man/sman1/make_pkg_db.1
 hardlink path=opt/onbld/bin/$(ARCH)/install.bin target=./install
 legacy pkg=SUNWonbld desc="tools used to build the OS-Net consolidation" \
     name="OS-Net Build Tools" version=11.11,REV=2009.10.22
--- a/usr/src/pkg/manifests/text-doctools.mf	Fri Aug 17 14:11:30 2012 -0400
+++ b/usr/src/pkg/manifests/text-doctools.mf	Sat Aug 18 05:52:16 2012 -0500
@@ -21,6 +21,7 @@
 
 #
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright 2012 Nexenta Systems, Inc. All rights reserved.
 #
 
 set name=pkg.fmri value=pkg:/text/doctools@$(PKGVERS)
@@ -38,18 +39,10 @@
 dir path=usr/lib/font/devpost/charlib group=lp
 dir path=usr/lib/refer
 dir path=usr/lib/refer/papers
-dir path=usr/lib/sgml
 dir path=usr/share
 dir path=usr/share/lib
 dir path=usr/share/lib/nterm
 dir path=usr/share/lib/pub
-dir path=usr/share/lib/sgml
-dir path=usr/share/lib/sgml/locale
-dir path=usr/share/lib/sgml/locale/C
-dir path=usr/share/lib/sgml/locale/C/dtds
-dir path=usr/share/lib/sgml/locale/C/dtds/solbookv2
-dir path=usr/share/lib/sgml/locale/C/entities
-dir path=usr/share/lib/sgml/locale/C/transpec
 dir path=usr/share/lib/tmac
 dir path=usr/share/man
 dir path=usr/share/man/man1
@@ -245,9 +238,6 @@
 file path=usr/lib/refer/papers/Rbstjissue
 file path=usr/lib/refer/papers/Rv7man
 file path=usr/lib/refer/papers/runinv mode=0755
-file path=usr/lib/sgml/instant mode=0755
-file path=usr/lib/sgml/nsgmls mode=0755
-file path=usr/lib/sgml/sgml2roff mode=0755
 file path=usr/lib/vfontedpr mode=0555
 file path=usr/lib/vgrindefs mode=0444
 file path=usr/share/lib/nterm/tab.2631
@@ -271,50 +261,6 @@
 file path=usr/share/lib/pub/eqnchar
 file path=usr/share/lib/pub/greek
 file path=usr/share/lib/pub/iso
-file path=usr/share/lib/sgml/locale/C/dtds/catalog
-file path=usr/share/lib/sgml/locale/C/dtds/solbookv2/solbook.dcl
-file path=usr/share/lib/sgml/locale/C/dtds/solbookv2/solbook.dtd
-file path=usr/share/lib/sgml/locale/C/entities/aap-shortref.gml
-file path=usr/share/lib/sgml/locale/C/entities/allisoents.gml
-file path=usr/share/lib/sgml/locale/C/entities/ati-dflt.dcl
-file path=usr/share/lib/sgml/locale/C/entities/ati-eqn1.gml
-file path=usr/share/lib/sgml/locale/C/entities/ati-graph.gml
-file path=usr/share/lib/sgml/locale/C/entities/ati-math.elm
-file path=usr/share/lib/sgml/locale/C/entities/ati-num.gml
-file path=usr/share/lib/sgml/locale/C/entities/ati-tbl.elm
-file path=usr/share/lib/sgml/locale/C/entities/atilogo.eps
-file path=usr/share/lib/sgml/locale/C/entities/basic.dcl
-file path=usr/share/lib/sgml/locale/C/entities/cals-tbl.elm
-file path=usr/share/lib/sgml/locale/C/entities/capref.gml
-file path=usr/share/lib/sgml/locale/C/entities/caution.eps
-file path=usr/share/lib/sgml/locale/C/entities/core.gml
-file path=usr/share/lib/sgml/locale/C/entities/ereview.gml
-file path=usr/share/lib/sgml/locale/C/entities/html-latin.sgml
-file path=usr/share/lib/sgml/locale/C/entities/iso-amsa.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-amsb.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-amsc.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-amsn.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-amso.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-amsr.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-box.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-cyr1.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-cyr2.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-dia.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-grk1.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-grk2.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-grk3.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-grk4.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-lat1.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-lat2.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-num.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-pub.gml
-file path=usr/share/lib/sgml/locale/C/entities/iso-tech.gml
-file path=usr/share/lib/sgml/locale/C/entities/sun_iso.gml
-file path=usr/share/lib/sgml/locale/C/entities/synref.gml
-file path=usr/share/lib/sgml/locale/C/entities/warn.eps
-file path=usr/share/lib/sgml/locale/C/transpec/docbook-to-man.ts
-file path=usr/share/lib/sgml/locale/C/transpec/roff.cmap
-file path=usr/share/lib/sgml/locale/C/transpec/roff.sdata
 file path=usr/share/lib/tmac/acm.me
 file path=usr/share/lib/tmac/an
 file path=usr/share/lib/tmac/ansun
@@ -400,14 +346,6 @@
     license=usr/src/cmd/eqn/THIRDPARTYLICENSE
 license usr/src/cmd/man/src/THIRDPARTYLICENSE \
     license=usr/src/cmd/man/src/THIRDPARTYLICENSE
-license usr/src/cmd/man/src/util/THIRDPARTYLICENSE \
-    license=usr/src/cmd/man/src/util/THIRDPARTYLICENSE
-license usr/src/cmd/man/src/util/instant.src/THIRDPARTYLICENSE \
-    license=usr/src/cmd/man/src/util/instant.src/THIRDPARTYLICENSE
-license usr/src/cmd/man/src/util/nsgmls.src/COPYING \
-    license=usr/src/cmd/man/src/util/nsgmls.src/COPYING
-license usr/src/cmd/man/src/util/solbookv2/THIRDPARTYLICENSE \
-    license=usr/src/cmd/man/src/util/solbookv2/THIRDPARTYLICENSE
 license usr/src/cmd/refer/THIRDPARTYLICENSE \
     license=usr/src/cmd/refer/THIRDPARTYLICENSE
 license usr/src/cmd/soelim/THIRDPARTYLICENSE \
--- a/usr/src/tools/Makefile	Fri Aug 17 14:11:30 2012 -0400
+++ b/usr/src/tools/Makefile	Sat Aug 18 05:52:16 2012 -0500
@@ -105,8 +105,7 @@
 	$(ROOTONBLD)/etc/exception_lists \
 	$(ROOTONBLD)/gk \
 	$(ROOTONBLD)/man \
-	$(ROOTONBLD)/man/man1 \
-	$(ROOTONBLD)/man/sman1
+	$(ROOTONBLD)/man/man1
 
 all :=		TARGET= install
 install :=	TARGET= install
--- a/usr/src/tools/Makefile.tools	Fri Aug 17 14:11:30 2012 -0400
+++ b/usr/src/tools/Makefile.tools	Sat Aug 18 05:52:16 2012 -0500
@@ -44,7 +44,6 @@
 ROOTONBLDGK=		$(ROOTONBLD)/gk
 ROOTONBLDMAN=		$(ROOTONBLD)/man
 ROOTONBLDMAN1=		$(ROOTONBLD)/man/man1
-ROOTONBLDSMAN1=		$(ROOTONBLD)/man/sman1
 ROOTONBLDETCABI=	$(ROOTONBLD)/etc/abi
 ROOTONBLDETCEXCEPT=	$(ROOTONBLD)/etc/exception_lists
 
@@ -68,7 +67,6 @@
 ROOTONBLDPERLMODULES=	$(PERLMODULES:%=$(ROOTONBLDLIBPERL)/%)
 ROOTONBLDPYFILES=	$(PYFILES:%=$(ROOTONBLDBIN)/%)
 ROOTONBLDMAN1FILES=	$(MAN1FILES:%=$(ROOTONBLDMAN1)/%)
-ROOTONBLDSMAN1FILES=	$(SMAN1FILES:%=$(ROOTONBLDSMAN1)/%)
 ROOTONBLDABIAUDITFILES=	$(ABI_AUDITFILES:%=$(ROOTONBLDETCABI)/%)
 ROOTONBLDEXCEPTFILES=	$(EXCEPTFILES:%=$(ROOTONBLDETCEXCEPT)/%)
 
@@ -96,9 +94,6 @@
 $(ROOTONBLDMAN1)/%: %
 	$(INS.file)
 
-$(ROOTONBLDSMAN1)/%: %
-	$(INS.file)
-
 $(ROOTONBLDENV)/%: %
 	$(INS.file)
 
--- a/usr/src/tools/depcheck/Makefile	Fri Aug 17 14:11:30 2012 -0400
+++ b/usr/src/tools/depcheck/Makefile	Sat Aug 18 05:52:16 2012 -0500
@@ -31,21 +31,21 @@
 	SampleLinks \
 	SamplePkgLinks
 
-SMAN1FILES= \
+MAN1FILES= \
 	get_depend_info.1 \
 	make_pkg_db.1
 
 include ../Makefile.tools
 
 $(ROOTONBLDETCFILES) := FILEMODE=	644
-$(ROOTONBLDSMAN1FILES) := FILEMODE=	644
+$(ROOTONBLDMAN1FILES) := FILEMODE=	644
 
 .KEEP_STATE:
 
-all:	$(SHFILES) $(SMAN1FILES)
+all:	$(SHFILES) $(MAN1FILES)
 
 install: all .WAIT $(ROOTONBLDSHFILES) $(ROOTONBLDETCFILES) \
-	$(ROOTONBLDSMAN1FILES)
+	$(ROOTONBLDMAN1FILES)
 
 clean:
 	$(RM) $(CLEANFILES)
--- a/usr/src/tools/depcheck/get_depend_info.1	Fri Aug 17 14:11:30 2012 -0400
+++ b/usr/src/tools/depcheck/get_depend_info.1	Sat Aug 18 05:52:16 2012 -0500
@@ -1,105 +1,200 @@
-.\" ident	"%Z%%M%	%I%	%E% SMI"
-<!DOCTYPE REFENTRY PUBLIC "-//Sun Microsystems//DTD DocBook V3.0-Based SolBook Subset V2.0//EN" [
-<!--ArborText, Inc., 1988-1997, v.4001-->
-<!ENTITY % commonents SYSTEM "smancommon.ent">
-%commonents;
-]>
-<?Pub UDT _bookmark _target>
-<?Pub EntList brvbar bull cross dash diam diams frac12 frac13 frac14 hellip laquo lArr loz mdash nabla ndash para pound rArr raquo sect yen nbsp>
-<?Pub Inc>
-<refentry id="get-depend-info-1"><?Pub Caret1>
-<!-- GENERIC CmdSynopsis TEMPLATE      @(#)man1_template.sgm 1.6 97/09/23 SMI; -->
-<refmeta><refentrytitle>get_depend_info</refentrytitle><manvolnum>1</manvolnum>
-<refmiscinfo class="date">2 November 2000</refmiscinfo>
-<refmiscinfo class="sectdesc">&man1;</refmiscinfo>
-<refmiscinfo class="software">&release;</refmiscinfo>
-<refmiscinfo class="arch">generic</refmiscinfo>
-<refmiscinfo class="copyright">
-Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-Use is subject to license terms.
-
-CDDL HEADER START
-
-The contents of this file are subject to the terms of the
-Common Development and Distribution License, Version 1.0 only
-(the "License").  You may not use this file except in compliance
-with the License.
-
-You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-or http://www.opensolaris.org/os/licensing.
-See the License for the specific language governing permissions
-and limitations under the License.
-
-When distributing Covered Code, include this CDDL HEADER in each
-file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-If applicable, add the following below this CDDL HEADER, with the
-fields enclosed by brackets "[]" replaced with your own identifying
-information: Portions Copyright [yyyy] [name of copyright owner]
-
-CDDL HEADER END
-</refmiscinfo>
-</refmeta>
-<refnamediv><indexterm><primary sortas="blueprint">get_depend_info &mdash; get dependency information about a package or a file</primary></indexterm><indexterm><primary sortas="get dependency information about a package or a file">get dependency information about a package or a file &mdash; get_depend_info</primary></indexterm><refname>get_depend_info</refname><refpurpose>get dependency information about a package or a file</refpurpose></refnamediv>
-<refsynopsisdiv><title>&synp-tt;</title>
-<cmdsynopsis><command>get_depend_info</command><arg choice="opt"><option>cons</option></arg><arg choice="plain"><option>dbdir</option> <replaceable>dbm_database_pathname</replaceable>&nbsp;</arg><group><arg choice="plain"><option>f</option></arg><arg choice="plain"><option>p</option></arg></group><arg choice="opt"><option>h</option></arg><arg choice="opt"><option>root</option> <replaceable>root_pathname</replaceable></arg><arg choice="opt"><option>s</option></arg><group><arg choice="plain"><option>pkg</option> <replaceable>SUN_package</replaceable></arg><arg choice="plain" rep="repeat"><replaceable>filename</replaceable> </arg></group>
-</cmdsynopsis></refsynopsisdiv>
-<refsect1><title>&desc-tt;</title>
-<para>The <command>get_depend_info</command> command prints dependency information about a package, a file, or a set of files on the standard output.</para>
-</refsect1>
-<refsect1><title>&opts-tt;</title>
-<para>The following options are supported:</para>
-<variablelist termlength="narrow"><varlistentry><term><option>cons</option></term><listitem><para>Turns on conservative mode, that is, refrains from using <filename><?Pub _nolinebreak>/usr/bin/strings<?Pub /_nolinebreak></filename>.</para>
-</listitem></varlistentry>
-<varlistentry><term><option>dbdir</option></term><listitem><para>Specifies the directory in which the Perl DBM databases generated by <citerefentry><refentrytitle>make_pkg_db</refentrytitle><manvolnum>1</manvolnum></citerefentry> are located.</para>
-</listitem></varlistentry>
-<varlistentry><term><option>f</option></term><listitem><para>Outputs file dependencies only.</para>
-</listitem></varlistentry>
-<varlistentry><term><option>h</option></term><listitem><para>Displays help.</para>
-</listitem></varlistentry>
-<varlistentry><term><option>p</option></term><listitem><para>Outputs package dependencies only.</para>
-</listitem></varlistentry>
-<varlistentry><term><option>pkg</option></term><listitem><para>Specifies a particular package on which you want to run the dependency analysis. You must specify this option if you specify either a Sun software package or a third-party software package that conforms with the Sun package format (<replaceable>SUN_package</replaceable>).</para>
-</listitem></varlistentry>
-<varlistentry><term><option>root</option></term><listitem><para>Specifies an alternate root. You must also use the <option>pkg</option> option if you use this option.</para>
-</listitem></varlistentry>
-<varlistentry><term><option>s</option></term><listitem><para>Outputs symbolic links for files or packages only.</para>
-</listitem></varlistentry>
-</variablelist>
-</refsect1>
-<refsect1><title>&oper-tt;</title>
-<para>The following operands are supported:</para>
-<variablelist termlength="medium"><varlistentry><term><replaceable>dbm_database_pathname</replaceable></term><listitem><para>Specifies the path name of the directory in which the Perl DBM databases generated by <command>make_pkg_db</command> are located.</para>
-</listitem></varlistentry>
-<varlistentry><term><replaceable>filename</replaceable></term><listitem><para>Specifies the name of a file or files on which you want to run the dependency analysis.</para>
-</listitem></varlistentry>
-<varlistentry><term><replaceable>root_pathname</replaceable></term><listitem><para>Specifies the path name of an alternate root you want to use.</para>
-</listitem></varlistentry>
-<varlistentry><term><replaceable>SUN_package</replaceable></term><listitem><para>Specifies the name of a particular Sun software package (or any third-party software package that conforms with the Sun package format) on which you want to run the dependency analysis. You must use the <option>pkg</option> option if you specify this operand.</para>
-</listitem></varlistentry>
-</variablelist>
-<para>You can specify either a Sun software package or a file name, but not both.</para>
-</refsect1>
-<refsect1><title>&exam-tt;</title>
-<example role="example"><title>To Get a Dependency Analysis of Two Particular Files</title>
-<para><screen>% <userinput>get_depend_info -dbdir MyDir /usr/bin/ls /usr/bin/man</userinput></screen></para>
-</example>
-<example role="example"><title>To Get a Dependency Analysis of Files Using a Wild Card</title>
-<para><screen>% <userinput>get_depend_info -dbdir MyDir /usr/sbin/*</userinput></screen></para>
-</example>
-<example role="example"><title>To Get a Dependency Analysis of a Package in Sun Format</title>
-<para><screen>% <userinput>get_depend_info -dbdir MyDir -pkg NSCPcom</userinput>
-% <userinput>get_depend_info -dbdir MyDir -pkg SUNWnisu</userinput></screen></para>
-</example>
-<example role="example"><title>To Display Help</title>
-<para><screen>% <userinput>get_depend_info -h</userinput></screen></para>
-</example>
-</refsect1>
-<refsect1><title>&attr-tt;</title>
-<para>See <olink targetdocent="REFMAN5" localinfo="attributes-5"><citerefentry><refentrytitle>attributes</refentrytitle><manvolnum>5</manvolnum></citerefentry></olink> for descriptions of the following attributes:</para>
-<informaltable frame="all"><tgroup cols="2" colsep="1" rowsep="1"><colspec colwidth="198*"><colspec colwidth="198*"><tbody><row><entry align="left" valign="top">ATTRIBUTE TYPE</entry><entry align="left" valign="top">ATTRIBUTE VALUE</entry></row><row><entry align="left" valign="top">Availability</entry><entry align="left" valign="top">SUNWonbld</entry></row><row><entry align="left" valign="top">CSI</entry><entry align="left" valign="top">Enabled</entry></row><row><entry align="left" valign="top">Interface Stability</entry><entry align="left" valign="top">Evolving</entry></row><row><entry align="left" valign="top">MT-Level</entry><entry align="left" valign="top">Unsafe</entry></row></tbody></tgroup></informaltable>
-</refsect1>
-<refsect1><title>&also-tt;</title>
-<para><citerefentry><refentrytitle>make_pkg_db</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <olink targetdocent="REFMAN5" localinfo="attributes-5"><citerefentry><refentrytitle>attributes</refentrytitle><manvolnum>5</manvolnum></citerefentry></olink></para>
-</refsect1>
-</refentry>
-<?Pub *0000007505 480>
+'\" t
+.\" 
+.\" CDDL HEADER START
+.\" 
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License, Version 1.0 only
+.\" (the "License").  You may not use this file except in compliance
+.\" with the License.
+.\" 
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\" 
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.\" 
+.\" CDDL HEADER END
+.\" 
+.\" 
+.\" Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
+.\" Use is subject to license terms.
+.\" 
+.TH GET_DEPEND_INFO 1 "Nov 2, 2000"
+.SH "NAME"
+get_depend_info \- get dependency information about a package or a file
+.SH "SYNOPSIS"
+.PP
+.nf
+\fBget_depend_info\fR [-\fBcons\fR] \-\fBdbdir\fR \fIdbm_database_pathname\fR
+                [-\fBf\fR | -\fBp\fR] [-\fBh\fR] [-\fBroot\fR \fIroot_pathname\fR]
+                [-\fBs\fR] [-\fBpkg\fR \fISUN_package\fR | \fIfilename\fR \&...]
+.fi
+.SH "DESCRIPTION"
+.PP
+The \fBget_depend_info\fR command prints dependency information about a package,
+a file, or a set of files on the standard output\&.
+.SH "OPTIONS"
+.PP
+The following options are supported:
+.sp
+.ne 2
+\fB-\fBcons\fR\fR
+.in +16n
+Turns on conservative mode, that is, refrains from using
+\fB/usr/bin/strings\fR\&.
+.sp
+.sp 1
+.in -16n
+.sp
+.ne 2
+\fB-\fBdbdir\fR\fR
+.in +16n
+Specifies the directory in which the Perl DBM databases generated by
+\fBmake_pkg_db\fR(1) are located\&.
+.sp
+.sp 1
+.in -16n
+.sp
+.ne 2
+\fB-\fBf\fR\fR
+.in +16n
+Outputs file dependencies only\&.
+.sp
+.sp 1
+.in -16n
+.sp
+.ne 2
+\fB-\fBh\fR\fR
+.in +16n
+Displays help\&.
+.sp
+.sp 1
+.in -16n
+.sp
+.ne 2
+\fB-\fBp\fR\fR
+.in +16n
+Outputs package dependencies only\&.
+.sp
+.sp 1
+.in -16n
+.sp
+.ne 2
+\fB-\fBpkg\fR\fR
+.in +16n
+Specifies a particular package on which you want to run the dependency
+analysis\&. You must specify this option if you specify either a Sun software
+package or a third-party software package that conforms with the Sun package
+format (\fISUN_package\fR)\&.
+.sp
+.sp 1
+.in -16n
+.sp
+.ne 2
+\fB-\fBroot\fR\fR
+.in +16n
+Specifies an alternate root\&. You must also use the -\fBpkg\fR option if you
+use this option\&.
+.sp
+.sp 1
+.in -16n
+.sp
+.ne 2
+\fB-\fBs\fR\fR
+.in +16n
+Outputs symbolic links for files or packages only\&.
+.sp
+.sp 1
+.in -16n
+.SH "OPERANDS"
+.PP
+The following operands are supported:
+.sp
+.ne 2
+\fB\fIdbm_database_pathname\fR\fR
+.in +24n
+Specifies the path name of the directory in which the Perl DBM databases
+generated by \fBmake_pkg_db\fR are located\&.
+.sp
+.sp 1
+.in -24n
+.sp
+.ne 2
+\fB\fIfilename\fR\fR
+.in +24n
+Specifies the name of a file or files on which you want to run the dependency
+analysis\&.
+.sp
+.sp 1
+.in -24n
+.sp
+.ne 2
+\fB\fIroot_pathname\fR\fR
+.in +24n
+Specifies the path name of an alternate root you want to use\&.
+.sp
+.sp 1
+.in -24n
+.sp
+.ne 2
+\fB\fISUN_package\fR\fR
+.in +24n
+Specifies the name of a particular Sun software package (or any third-party
+software package that conforms with the Sun package format) on which you want
+to run the dependency analysis\&. You must use the -\fBpkg\fR option if you
+specify this operand\&.
+.sp
+.sp 1
+.in -24n
+.PP
+You can specify either a Sun software package or a file name, but not both\&.
+.SH "EXAMPLES"
+.PP
+\fBExample 1:\fR To Get a Dependency Analysis of Two Particular Files
+.PP
+.nf
+% get_depend_info -dbdir MyDir /usr/bin/ls /usr/bin/man
+.fi
+.PP
+\fBExample 2:\fR To Get a Dependency Analysis of Files Using a Wild Card
+.PP
+.nf
+% get_depend_info -dbdir MyDir /usr/sbin/*
+.fi
+.PP
+\fBExample 3:\fR To Get a Dependency Analysis of a Package in Sun Format
+.PP
+.nf
+% get_depend_info -dbdir MyDir -pkg NSCPcom
+% get_depend_info -dbdir MyDir -pkg SUNWnisu
+.fi
+.PP
+\fBExample 4:\fR To Display Help
+.PP
+.nf
+% get_depend_info -h
+.fi
+.SH "ATTRIBUTES"
+.PP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+.TS
+box;
+c | c
+l | l .
+ATTRIBUTE TYPE	ATTRIBUTE VALUE
+_
+Availability	SUNWonbld
+CSI	Enabled
+Interface Stability	Evolving
+MT-Level	Unsafe
+.TE
+.sp
+.SH "SEE ALSO"
+.PP
+\fBmake_pkg_db\fR(1), \fBattributes\fR(5)
--- a/usr/src/tools/depcheck/make_pkg_db.1	Fri Aug 17 14:11:30 2012 -0400
+++ b/usr/src/tools/depcheck/make_pkg_db.1	Sat Aug 18 05:52:16 2012 -0500
@@ -1,99 +1,196 @@
-.\" ident	"%Z%%M%	%I%	%E% SMI"
-<!DOCTYPE REFENTRY PUBLIC "-//Sun Microsystems//DTD DocBook V3.0-Based SolBook Subset V2.0//EN" [
-<!--ArborText, Inc., 1988-1997, v.4001-->
-<!ENTITY SolarisSoftwareCD1 "Solaris 8 Software 1 of 2 Intel Platform Edition">
-<!ENTITY % commonents SYSTEM "smancommon.ent">
-%commonents;
-]>
-<?Pub UDT _bookmark _target>
-<?Pub EntList brvbar bull cross dash diam diams frac12 frac13 frac14 hellip laquo lArr loz mdash nabla ndash para pound rArr raquo sect yen trade nbsp>
-<?Pub Inc>
-<refentry id="make-pkg-db-1"><?Pub Caret1>
-<!-- GENERIC CmdSynopsis TEMPLATE      @(#)man1_template.sgm 1.6 97/09/23 SMI; -->
-<refmeta><refentrytitle>make_pkg_db</refentrytitle><manvolnum>1</manvolnum>
-<refmiscinfo class="date">2 November 2000</refmiscinfo>
-<refmiscinfo class="sectdesc">&man1;</refmiscinfo>
-<refmiscinfo class="software">&release;</refmiscinfo>
-<refmiscinfo class="arch">generic</refmiscinfo>
-<refmiscinfo class="copyright">
-Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-Use is subject to license terms.
-
-CDDL HEADER START
-
-The contents of this file are subject to the terms of the
-Common Development and Distribution License, Version 1.0 only
-(the "License").  You may not use this file except in compliance
-with the License.
-
-You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-or http://www.opensolaris.org/os/licensing.
-See the License for the specific language governing permissions
-and limitations under the License.
-
-When distributing Covered Code, include this CDDL HEADER in each
-file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-If applicable, add the following below this CDDL HEADER, with the
-fields enclosed by brackets "[]" replaced with your own identifying
-information: Portions Copyright [yyyy] [name of copyright owner]
-
-CDDL HEADER END
-</refmiscinfo>
-</refmeta>
-<refnamediv><indexterm><primary sortas="blueprint">make_pkg_db &mdash; create a Perl DBM database of installed software</primary></indexterm><indexterm><primary sortas="create a Perl DBM database of installed software">create a Perl DBM database of installed software &mdash; make_pkg_db</primary></indexterm><refname>make_pkg_db</refname><refpurpose>create a Perl DBM database of installed software</refpurpose></refnamediv>
-<refsynopsisdiv><title>&synp-tt;</title>
-<cmdsynopsis><command>make_pkg_db</command><arg choice="plain">&nbsp;<option>dbdir</option> <replaceable>dbm_database_pathname</replaceable>&nbsp;</arg><arg choice="opt"><option>h</option></arg><arg choice="opt" rep="repeat"><option>ifiles</option> <replaceable>filename</replaceable></arg><arg choice="opt"><option>pkgdef</option> <replaceable>package_pool_pathname</replaceable></arg>
-</cmdsynopsis></refsynopsisdiv>
-<refsect1><title>&desc-tt;</title>
-<para>The <command>make_pkg_db</command> command (a Perl script) generates a Perl DBM database of software installed on a system based on <filename>/var/sadm/install/contents</filename> or the contents of a package pool directory. The Perl DBM database files are used by <citerefentry><refentrytitle>get_depend_info</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
-<para>The Perl DBM database files contain information keyed on a file name. Some files, for example, list the package in which a file is included and the permissions of the file.</para>
-<para>If you run <command>make_pkg_db&nbsp;-dbdir&nbsp;<replaceable>dbm_database_pathname</replaceable></command>, an error message such as:</para>
-<para><literal>***CANNOT RESOLVE ABSOLUTE PATH /usr/java/bin/appletviewer</literal></para>
-<para>is generated because the script cannot resolve symbolic links based on the information in <filename>/var/sadm/install/contents</filename>. In <filename>/var/sadm/install/contents</filename>, for example, <filename>appletviewer</filename> is specified as a symbolic link:</para>
-<programlisting>/usr/bin/appletviewer=../java/bin/appletviewer s none SUNWj2dev</programlisting>
-<para>Unfortunately, <filename>/usr/java</filename> is a symbolic link to <filename>/usr/java1.2</filename>. The correct file entry in <filename>/var/sadm/install/contents</filename> is therefore <filename>/usr/java1.2/bin/appletviewer</filename>. It is impossible for this script to resolve this link based on the information in <filename>/var/sadm/install/contents</filename>.</para>
-<para>To correct this problem, create a file named <filename>MyLinkResolution</filename> and add this entry:</para>
-<programlisting>/usr/bin/appletviewer=../java1.2/bin/appletviewer s none SUNWj2dev</programlisting>
-<para>Then enter this command:</para>
-<para><programlisting>make_pkg_db -dbdir <replaceable>dbm_database_pathname</replaceable> -ifiles MyLinkResolution</programlisting>When you execute this command, the following message is displayed:</para>
-<programlisting>...OVERRIDDEN: /usr/bin/appletviewer=
-../java/bin/appletviewer s none SUNWj2dev</programlisting>
-<para>This message indicates that the original entry in <filename>/var/sadm/install/contents</filename> is ignored and your new entry in <filename>MyLinkResolution</filename> is used instead. </para>
-<para><filename>SampleLinks</filename> is a file you can use to resolve links in <filename>/var/sadm/install/contents</filename> for Solaris (Intel Platform Edition). <filename>SamplePkgLinks</filename> is a file you can use to resolve some of the links used on the &SolarisSoftwareCD1; CD. You might want to modify these two preceding files for SPARC or for your particular environment.</para>
-<para>The <command>make_pkg_db</command> script verifies the files it finds against the software that is actually installed on the system. The more complete the information, the more accurate the output of the script.</para>
-</refsect1>
-<refsect1><title>&opts-tt;</title>
-<para>The following options are supported:</para>
-<variablelist termlength="narrow"><varlistentry><term><option>dbdir</option></term><listitem><para>Specifies the directory in which you want to place the output Perl DBM databases.</para>
-</listitem></varlistentry>
-<varlistentry><term><option>h</option></term><listitem><para>Displays help.</para>
-</listitem></varlistentry>
-<varlistentry><term><option>ifiles</option></term><listitem><para>Specifies the name of an input file you want to use to help in resolving symbolic links.</para>
-</listitem></varlistentry>
-<varlistentry><term><option>pkgdef</option></term><listitem><para>Specifies the path name of the package pool you want to use instead of <filename>/var/sadm/install/contents</filename>.</para>
-</listitem></varlistentry>
-</variablelist>
-</refsect1>
-<refsect1><title>&oper-tt;</title>
-<para>The following operands are supported:</para>
-<variablelist termlength="medium"><varlistentry><term><replaceable>dbm_database_pathname</replaceable></term><listitem><para>Specifies the directory in which you want to place the output Perl DBM databases.</para>
-</listitem></varlistentry>
-<varlistentry><term><replaceable>filename</replaceable></term><listitem><para>Specifies the name of a file or files that contain data in the format used in <filename>/var/sadm/install/contents</filename>.</para>
-</listitem></varlistentry>
-<varlistentry><term><replaceable>package_pool_pathname</replaceable></term><listitem><para>Specifies the path name of the package pool you want to use instead of <filename>/var/sadm/install/contents</filename>.</para>
-</listitem></varlistentry>
-</variablelist>
-</refsect1>
-<refsect1><title>&attr-tt;</title>
-<para>See <olink targetdocent="REFMAN5" localinfo="attributes-5"><citerefentry><refentrytitle>attributes</refentrytitle><manvolnum>5</manvolnum></citerefentry></olink> for descriptions of the following attributes:</para>
-<informaltable frame="all"><tgroup cols="2" colsep="1" rowsep="1"><colspec colwidth="198*"><colspec colwidth="198*"><tbody><row><entry align="left" valign="top">ATTRIBUTE TYPE</entry><entry align="left" valign="top">ATTRIBUTE VALUE</entry></row><row><entry align="left" valign="top">Availability</entry><entry align="left" valign="top">SUNWonbld</entry></row><row><entry align="left" valign="top">CSI</entry><entry align="left" valign="top">Enabled</entry></row><row><entry align="left" valign="top">Interface Stability</entry><entry align="left" valign="top">Evolving</entry></row><row><entry align="left" valign="top">MT-Level</entry><entry align="left" valign="top">Unsafe</entry></row></tbody></tgroup></informaltable>
-</refsect1>
-<refsect1><title>&also-tt;</title>
-<para><citerefentry><refentrytitle>get_depend_info</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <olink targetdocent="REFMAN5" localinfo="attributes-5"><citerefentry><refentrytitle>attributes</refentrytitle><manvolnum>5</manvolnum></citerefentry></olink></para>
-</refsect1>
-<refsect1><title>&note-tt;</title>
-<para>DBM database files are platform dependent. DBM database files you generate on a SPARC machine, for example, do not work on an IA machine (and vice-versa). </para>
-<para>This script might not resolve all symbolic links.</para>
-</refsect1>
-</refentry>
-<?Pub *0000008214 464>
+'\" t
+.\"
+.\" CDDL HEADER START
+.\"
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License, Version 1.0 only
+.\" (the "License").  You may not use this file except in compliance
+.\" with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.\"
+.\" CDDL HEADER END
+.\"
+.\"
+.\" Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
+.\" Use is subject to license terms.
+.\"
+.TH MAKE_PKG_DB 1 "Nov 2, 2000"
+.SH "NAME"
+make_pkg_db \- create a Perl DBM database of installed software
+.SH "SYNOPSIS"
+.PP
+.nf
+\fBmake_pkg_db\fR \-\fBdbdir\fR \fIdbm_database_pathname\fR\ [-\fBh\fR]
+            [-\fBifiles\fR \fIfilename\fR\&...]
+            [-\fBpkgdef\fR \fIpackage_pool_pathname\fR]
+.fi
+.SH "DESCRIPTION"
+.PP
+The \fBmake_pkg_db\fR command (a Perl script) generates a Perl DBM database of
+software installed on a system based on \fB/var/sadm/install/contents\fR or the
+contents of a package pool directory\&. The Perl DBM database files are used by
+\fBget_depend_info\fR(1)\&.
+.PP
+The Perl DBM database files contain information keyed on a file name\&. Some
+files, for example, list the package in which a file is included and the
+permissions of the file\&.
+.PP
+If you run \fBmake_pkg_db\ -dbdir\ \fIdbm_database_pathname\fR\fR, an error
+message such as:
+.PP
+\fB***CANNOT RESOLVE ABSOLUTE PATH /usr/java/bin/appletviewer\fR
+.PP
+is generated because the script cannot resolve symbolic links based on the
+information in \fB/var/sadm/install/contents\fR\&. In
+\fB/var/sadm/install/contents\fR, for example, \fBappletviewer\fR is specified
+as a symbolic link:
+.sp
+.nf
+\f(CW/usr/bin/appletviewer=\&.\&./java/bin/appletviewer s none SUNWj2dev\fR
+.fi
+.sp
+.PP
+Unfortunately, \fB/usr/java\fR is a symbolic link to \fB/usr/java1\&.2\fR\&.
+The correct file entry in \fB/var/sadm/install/contents\fR is therefore
+\fB/usr/java1\&.2/bin/appletviewer\fR\&. It is impossible for this script to
+resolve this link based on the information in
+\fB/var/sadm/install/contents\fR\&.
+.PP
+To correct this problem, create a file named \fBMyLinkResolution\fR and add
+this entry:
+.sp
+.nf
+\f(CW/usr/bin/appletviewer=\&.\&./java1\&.2/bin/appletviewer s none SUNWj2dev\fR
+.fi
+.sp
+.PP
+Then enter this command:
+.PP
+.sp
+.nf
+\f(CWmake_pkg_db -dbdir \fIdbm_database_pathname\fR -ifiles MyLinkResolution\fR
+.fi
+.sp
+When you execute this command, the following message is displayed:
+.sp
+.nf
+\f(CW\&.\&.\&.OVERRIDDEN: /usr/bin/appletviewer=
+\&.\&./java/bin/appletviewer s none SUNWj2dev\fR
+.fi
+.sp
+.PP
+This message indicates that the original entry in
+\fB/var/sadm/install/contents\fR is ignored and your new entry in
+\fBMyLinkResolution\fR is used instead\&.
+.PP
+\fBSampleLinks\fR is a file you can use to resolve links in
+\fB/var/sadm/install/contents\fR for Solaris (Intel Platform Edition)\&.
+\fBSamplePkgLinks\fR is a file you can use to resolve some of the links used on
+the Solaris 8 Software 1 of 2 Intel Platform Edition CD\&. You might want to
+modify these two preceding files for SPARC or for your particular environment\&.
+.PP
+The \fBmake_pkg_db\fR script verifies the files it finds against the software
+that is actually installed on the system\&. The more complete the information,
+the more accurate the output of the script\&.
+.SH "OPTIONS"
+.PP
+The following options are supported:
+.sp
+.ne 2
+\fB-\fBdbdir\fR\fR
+.in +16n
+Specifies the directory in which you want to place the output Perl DBM
+databases\&.
+.sp
+.sp 1
+.in -16n
+.sp
+.ne 2
+\fB-\fBh\fR\fR
+.in +16n
+Displays help\&.
+.sp
+.sp 1
+.in -16n
+.sp
+.ne 2
+\fB-\fBifiles\fR\fR
+.in +16n
+Specifies the name of an input file you want to use to help in resolving
+symbolic links\&.
+.sp
+.sp 1
+.in -16n
+.sp
+.ne 2
+\fB-\fBpkgdef\fR\fR
+.in +16n
+Specifies the path name of the package pool you want to use instead of
+\fB/var/sadm/install/contents\fR\&.
+.sp
+.sp 1
+.in -16n
+.SH "OPERANDS"
+.PP
+The following operands are supported:
+.sp
+.ne 2
+\fB\fIdbm_database_pathname\fR\fR
+.in +24n
+Specifies the directory in which you want to place the output Perl DBM
+databases\&.
+.sp
+.sp 1
+.in -24n
+.sp
+.ne 2
+\fB\fIfilename\fR\fR
+.in +24n
+Specifies the name of a file or files that contain data in the format used in
+\fB/var/sadm/install/contents\fR\&.
+.sp
+.sp 1
+.in -24n
+.sp
+.ne 2
+\fB\fIpackage_pool_pathname\fR\fR
+.in +24n
+Specifies the path name of the package pool you want to use instead of
+\fB/var/sadm/install/contents\fR\&.
+.sp
+.sp 1
+.in -24n
+.SH "ATTRIBUTES"
+.PP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+.TS
+box;
+cw | cw
+lw | lw .
+ATTRIBUTE TYPE	ATTRIBUTE VALUE
+Availability	SUNWonbld
+CSI	Enabled
+Interface Stability	Evolving
+MT-Level	Unsafe
+.TE
+.sp
+.SH "SEE ALSO"
+.PP
+\fBget_depend_info\fR(1), \fBattributes\fR(5)
+.SH "NOTES"
+.PP
+DBM database files are platform dependent\&. DBM database files you generate on
+a SPARC machine, for example, do not work on an IA machine (and vice-versa)\&.
+.PP
+This script might not resolve all symbolic links\&.